能否将GLSL变量传递给JavaScript?

3

我看到你可以从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 中访问它们。我应该怎么做呢?

1个回答

2

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

不过,你可以通过调用gl.readPixels来读取像素,因此你可以通过编写所需的值并调用gl.readPixels间接地将数据从GLSL传回JavaScript。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接