3

なぜこれが可能なのか、理論的な理由を知りたいです: ジオメトリの変換がテクスチャ マッピングにどのように関連しているか。

  • この効果は、サブピクセルの変換を行ったときにのみわかります。テクスチャは、ピクセル全体で変換するときれいに見えます。
  • 正射投影を使用しています、、、GL_CLAMP_TO_EDGEフラグメントGL_NEARESTシェーダーはhighpです。
  • テクスチャ座標はアトラスのサブ領域ですが、アトラス全体をマッピングしても歪みが見られます。
  • OpenGL ES (Android および iOS) を使用していますが、再タグ付けする前に、これが OpenGL の問題ではないことを説明してください。

私が試したこと:

4

1 に答える 1

7

サブピクセル量で移動すると、常にテクスチャサンプリングが変更されます。最も近いサンプリングを使用することは、テクスチャのサンプリング方法に影響しますが、最初にどの座標でサンプリングされるかには影響しません。その座標は、ポリゴン全体で補間されたtex座標と、ポリゴンがスクリーンピクセルにラスター化される方法を決定する頂点の両方の関数です。

完全なテクスチャサンプリングを行うには、補間されたtex-coordsをピクセルの中心で評価する場合、正確にtexelの中心に配置する必要があることに注意してください。

そのため、ポリゴンをピクセルの何分の1かだけ移動すると、テクスチャがサンプリングされる場所が変わります。これは、ピクセルの中心がポリゴン内のわずかに異なるポイントにあるためです。

これで、最も近いサンプリングを使用すると、結果の座標が最も近いテクセルに効果的に丸められるため、座標が中心からそれほど遠くない場合は、おそらく機能します。ただし、座標がテクセルの約半分だけ移動したため、2つのテクセルがほぼ等距離にある点にある場合、計算の精度にわずかな誤差しかかからず、一部のピクセルを一方向に、他のピクセルを微調整します。

これが図です。チェックパターンでマッピングされた三角形を表示することを選択しましたが、スプライトなどにも同様に適用されます。

図の上部では、三角形がテクスチャにどのようにマッピングされているかを示しています。この三角形を非常に高解像度の画面(または非常に大きなサイズ)でレンダリングした場合、そのチェックパターンが正確に複製されていることが期待できます。

ただし、1:1など、より近い比率でマッピングする場合は、サンプリングが重要です。図の下部に、この状況を示します。

注目すべき重要な点は、画面のピクセルの中心がどこにあるかです。これにより、描画されるピクセルと、テクスチャがサンプリングされる場所が決まります。この場合、ポリゴンが正確に正しいサイズでマッピングされていることを示していますが、0.5ピクセルオフセットされています。これにより、隣接するテクセル間でピクセルの中心が正確に整列し、サンプリングがかなりひねります。

テクスチャサンプリングを示す図

于 2013-01-10T08:25:00.170 に答える