13

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

4

1 に答える 1

17

フラグメント シェーダーには、ターゲット フラグメントのピクセル座標を提供する 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

于 2012-02-29T21:19:24.287 に答える