是否可以将GLSL变量传递给javaScript。

时间:2015-03-25 20:19:24

标签: glsl webgl

我看到你可以将变量从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 个答案:

答案 0 :(得分:2)

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

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