我看到你可以将变量从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访问它们的方式输出两者的纹理坐标。我该怎么做呢?
答案 0 :(得分:2)
您无法直接将值从GLSL传递回JavaScript。 GLSL,至少在WebGL 1.0中,只能输出像素到纹理,渲染缓冲区和后备缓冲区。
您可以通过调用gl.readPixels
来读取像素,这样您就可以通过编写所需的值然后调用gl.readPixels
来间接地将数据从GLSL返回到JavaScript。