【问题标题】:Is it possible to pass a GLSL variable to javaScript.是否可以将 GLSL 变量传递给 javaScript。
【发布时间】:2015-03-26 15:35:10
【问题描述】:

我看到您可以将变量从 javaScript 传递到 GLSL,但是否可以反过来。基本上我有一个着色器,可以根据 Alpha 通道将纹理转换为红色、绿色和蓝色 3 种颜色。

if (texture.a == 1.0) {
    gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);    
}
if (texture.a == 0.0) {
    gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
    call0nce = 1;
}
if (texture.a > 0.0 && texture.a < 1.0) {
    "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);", 
}

我一直在使用颜色来帮助更好地可视化事物。我真正想做的是选择一个 alpha 为 1.0 的随机点和一个 alpha 为 0.0 的随机点,并以我可以从 javaScript 访问它们的方式输出两者的纹理坐标。我该怎么办?

【问题讨论】:

    标签: glsl webgl


    【解决方案1】:

    您不能直接将值从 GLSL 传递回 JavaScript。 GLSL,至少在 WebGL 1.0 中,只能将像素输出到纹理、渲染缓冲区和后台缓冲区。

    您可以通过调用gl.readPixels 来读取像素,这样您就可以通过写入所需的值然后调用gl.readPixels 间接将数据从GLSL 获取回JavaScript。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2019-04-19
      • 2012-12-02
      • 1970-01-01
      • 2022-11-20
      相关资源
      最近更新 更多