2

three.jsシェーダーマテリアルでこの頂点シェーダーを使用しています

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 の値をグローバル変数に渡すにはどうすればよいかということです。

4

1 に答える 1

0

フラグメント シェーダーから結果を取得する一般的な方法は、シーンをテクスチャにレンダリングし、(JavaScript プログラムで) このテクスチャから操作するデータを読み取ることです。ドキュメントで「テクスチャへのレンダリング」を探してください。

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

于 2013-03-28T16:55:04.310 に答える