0

GLSL で textureCube() texturelookup を実行すると、reflectionray がルックアップ座標として取得されます。

GLSL 4.2 では、明らかにキューブマップでも動作する imageLoad/imageStore が導入されました。

しかし、ロード/ストア関数

imageStore(gimagecube image, ivec3 p, vec4 data) 

それぞれのテクセルにアクセスするために整数座標を取ります。

これらの座標はどのように解釈され、反射光線の方向に基づいてどのように計算されるのでしょうか?

4

1 に答える 1

1

基本的に、画像の読み込み/保存を伴うキューブ マップは、6 要素の配列テクスチャのように機能します。テクスチャ座標の z コンポーネントは、どの面を見るかを指定します。面の順序は、キューブ マップ面の列挙子と同じ順序です。これは、レイヤード レンダリングの場合と同じです。

方向についてそれらを計算する方法については、仕様に詳述されているアルゴリズムを使用して行うことができます。GL 4.2 コアのセクション 3.9.10 では、OpenGL がどのように方向を取得し、それを特定の面とテクスチャ座標に変換するかについて説明しています。投稿で説明したいよりも少し複雑で、実際にはテキストをコピーして貼り付けるだけです。

一般的な考え方は、表 3.17 に基づいて、最大のコンポーネントが使用する面を定義するというものです。次に、S および T テクスチャ座標がそのテーブルから取得され、[0, 1] テクスチャ座標に変換するために、それらに簡単な計算が適用されます。

于 2012-05-12T22:59:32.050 に答える