将着色器值传递给全局变量

时间:2013-03-14 02:58:47

标签: three.js shader

在three.js shadermaterial中使用此顶点着色器

script id="vs" type="x-shader/x-vertex">

  uniform sampler2D map;
  varying vec2 vUv;

  void main() {

    vUv = uv;
    vec4 color = texture2D( map, vUv );

    float r=color.r;
    float g=color.g;
    float b=color.b;                    


    gl_Position = projectionMatrix * modelViewMatrix ;
  }

</script>

问题是:如何将r,g和b的值传递给全局变量?

1 个答案:

答案 0 :(得分:0)

从片段着色器获取结果的常见方法似乎是将场景渲染为纹理,然后从此纹理中读取(在javascript程序中)要操作的数据。在文档中查找“渲染到纹理”。

示例:http://mrdoob.github.com/three.js/examples/webgl_rtt.html