0

OpenGL では、texture3Dを使用して 8 つの 512x512 画像で地形をマッピングし、ブレンドされたテクスチャの変更を取得しようとしています。しかし、OpenGL により、512x512x8 ではなく 512x512x512 配列を割り当てるように強制されます

4

2 に答える 2

2

しかし、OpenGL は私に 512x512x512 を割り当てさせます。

何があなたにそのアイデアを与えましたか? 512×512×8 は、完全に有効な 3D テクスチャ サイズです。地形の場合、GL_TEXTURE_2D_ARRAY も確認できます。これは glTexImage3D で初期化されますが、レイヤー間で補間されないため、特定の状況で役立ちます。

于 2013-05-08T15:31:01.430 に答える
0

あるテクスチャを別のテクスチャにブレンドするには補間が必要ですが、GL_TEXTURE_2D_ARRAY を使用して、フラグメント シェーダでテクスチャを手動でブレンドする必要もあります。自動ハードウェア倍率フィルターを利用する方が良いように思えるかもしれませんが、GL_TEXTURE_3D の実装では、6 方向の隣接ピクセルがキャッシュされる可能性がはるかに高いことに注意してください。セット内の個々の 2D テクスチャとそれらに隣接するレイヤー。そのため、ハードウェアに 3 つのキャッシュ ラインをそれぞれ 4 方向に作成させる方がよいでしょう。両方を試して、どちらが優れているかを確認することをお勧めします

于 2013-05-08T16:24:01.527 に答える