1

NPOT テクスチャをサポートするミップマップがある場合、長方形のテクスチャは何に使用されますか? パフォーマンス関連または画質関連の改善はありますか? また、ミップマッピングはレベルごとに作成するため、大量のメモリが必要になると思います。では、長方形のテクスチャを使用した方が良いのでしょうか?

4

1 に答える 1

3

長方形のテクスチャ:

  1. ミップマップはありません。
  2. 正規化されていないテクスチャ座標を使用します。

#1 はそれほど重要ではありません。glTexStorage2Dを使用してミップマップ レベルの数を 1設定するか、テクスチャのベース/最大レベルを適切に設定するか、最小フィルタリング パラメータを使用することで、同じ効果を実現できるためです。ミップマップを使用しないでください。

#2はエミュレートするのが難しいです。texelFetch関数はテクスチャ空間で機能しますが、これは整数のテクスチャ座標を使用します。Rectangle テクスチャ座標は浮動小数点値です。これにより、バイリニアおよび異方性フィルタリングを使用することができます。でそれを行うことはできませんtexelFetch

テクセル空間のテクスチャ座標を正規化することで、長方形のテクスチャをエミュレートできます。ただし、これには手作業が必要です。テクスチャのサイズをクエリするか、サイズをシェーダーtextureSizeに渡す必要があります。uniform次に、座標を正規化するために除算を行う必要があります。これは、最新のハードウェアが舞台裏で行っていることかもしれません (特に、Vulkan のような新しい API にはそれらがないため) が、長方形のテクスチャが明示的にサポートされている場合、手動作業はそれをバイパスする可能性があります。

#2は、最近長方形のテクスチャを使用する主な理由です。テクスチャ座標を正規化する必要なく、ウィンドウ空間座標を使用して値をフェッチできるため、レンダー ターゲットに最適です。しかし、一般的に、これらは非常に特殊なテクスチャ タイプです。

パフォーマンスの問題は、純粋に推測であり、ハードウェア固有のものです。

于 2013-01-03T09:51:08.783 に答える