回答:
texelFetch
とはまったく異なりtexture
ます。
texture
は、フィルタリングと正規化([0,1]
)テクスチャ座標を処理する通常のテクスチャアクセス関数です。 texelFetch
非正規化座標を使用して、テクスチャ内のテクセルに直接アクセスします(フィルタリングなし)((64,64)
128x128テクスチャ(.5,.5)
と正規化座標の中間のテクセルなど)。
texture
が必要であるため使用する必要がありますtexelFetch
)。
texelFetch
高速で、かつ足りるをフィルタリング最も近い隣人は、あなたが何らかの理由でフィルタリングNNにコンテキストを変更することはできません、それを超える好むのが妥当だろうtexture
。
texelFetch
とtexture
の基本的な方法では異なる動作をします。入力も参照してください:テクスチャ座標と正規化座標。それらは異なる目的に役立ちます。一方は他方の最適化だけではありません。
受け入れられた答えがないので、いくつかの情報を追加します。ショーンがまだ答えていないことを追加したかっただけです。
TexelFetchはテクスチャを画像として扱うため、ピクセルのコンテンツに正確にアクセスできます。あなたは通常、そのコンテンツを正確に必要とするときにそれを行います。
Tex2Dは、テクスチャをテクスチャとして扱います。ピクセルの正確なコンテンツは必要ありませんが、最も現実的な結果が必要です。標準のテクスチャ読み取りは非常に複雑な操作であり、1つまたは複数のミップマップレベルから補間されたデータを読み取り、再度補間します。これらの高価な操作はすべて、視覚的なアーティファクトを回避することです。
GL_NEARESTは同じようには機能しません。最も遠いポリゴンでは、より小さなミップマップレベルでデータを読み取っているので、テクセルフェッチから読み取ったデータとまったく同じではありません。
Tex2D(ほぼ)がTexelFetchと同じように機能する場合が1つあります。