シーンに 3D オブジェクトがあり、このオブジェクトのフラグメント シェーダーは画面と同じサイズのテクスチャを受け取ります。現在のフラグメントから座標を取得し、同じ位置にある画像の色情報を見つけたいです。これは可能ですか?誰かが私を正しい方向に向けることができますか?
18079 次
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 対応のブラウザーでこれを試してください。
于 2012-02-29T21:19:24.287 に答える