1

OpenGLに単純な3Dキューブ(すべての辺が同じサイズ)と3Dテクスチャがあります。3Dテクスチャを立方体にマッピングしたいと思います。

結果は、キューブ内のすべてのポイントがテクスチャ内の対応するポイントから色を取得するように、ずっと色付けされたキューブになるはずです。これは、少なくとも3Dテクスチャの私の解釈です。

これを行う方法?GL_QUADS(6つのクワッド)で立方体を作成し、6つの側面のそれぞれに1つのテクスチャ座標を指定することは機能しないと思いますか?

キューブを作成する必要があり、glTexCoordを正しい方法で指定してキューブを作成していると思います。

4

2 に答える 2

2

あなたが説明していることは、通常、レイトレーシングで行われるボクセル レンダリングのように聞こえます。

残念ながら、3Dテクスチャはあなたが説明したことをしません。3D テクスチャはテクセル フェッチごとに U、V、W を使用しますが、OpenGL は依然としてプリミティブのフラット サーフェスに沿って描画します。3D テクスチャにキャストするには、フラグメント シェーダーにレイトレーシング コードを記述する必要があります。効果的にレイトレーシングを行うので、フラットな (回転していない) 単一のクワッド (さらに良いのは、クワッドは廃止されたため、疑似クワッドを作成する 2 つの三角形) を配置し、レイトレーシングのものを使用してフラグメント シェーダー コードを記述することです。 .

詳細については、「ダイレクト ボリューム レンダリング」を参照してください。

于 2013-02-24T23:43:31.630 に答える