2012-02-29 6 views
7

私のシーンには3Dオブジェクトがあり、このオブジェクトのフラグメントシェーダは画面のサイズと同じサイズのテクスチャを受け取ります。私は、現在の断片から座標を取得し、同じ位置にある画像の色情報を探したいと思います。これは可能ですか?誰かが私に正しい方向を向けることができますか?GLSLを使用してsampler2Dから特定の座標のピクセルカラーを見つける

答えて

12

フラグメントシェーダには、ターゲットフラグメントのピクセル座標を供給するgl_FragCoordという組み込みの値があります。ルックアップのためにテクスチャ座標を取得するには、これをビューポートの幅と高さで分割する必要があります。ここでは簡単な例です:

uniform vec2 resolution; 
uniform sampler2D backbuffer; 

void main(void) { 
    vec2 position = (gl_FragCoord.xy/resolution.xy); 
    vec4 color = texture2D(backbuffer, position); 
    // ... do something with it ... 
} 

完全な作業例については、WebGLの対応ブラウザでこれを試してみてください。

http://glslsandbox.com/e#375.15

+0

が、私はそれがとても簡単だった信じることができない、おかげでたくさんの@emackey私はこれを何日もやろうとしていました。 –

関連する問題