0

私は最近、取り組んでいるプロジェクトの照明エンジンを書き直しましたが、テクスチャにバンディングが発生していて、面ごとに 1 方向だけであることに気付きました。

ライティングエンジンはディファードレンダリングになったため、シーンデータとして処理された3つのテクスチャで構成されています。これがテクスチャ バンディングの原因でしょうか?

スクリーンショットは次のとおりです。 バンディング テクスチャ

照明が近い場所でのみ発生するようです。

それが役立つ場合、私の 3 つのテクスチャは次の形式になっています。

World fragment position: GL_RGBA16F - GL_FLOAT
World normal direction: GL_RGBA16F - GL_FLOAT
Fragment diffuse texture: GL_RGBA - GL_UNSIGNED_INT
4

1 に答える 1

1

ラチェット フリークと Andon M. Coleman に感謝します。

ラチェットフリークは、おそらく光が表面に当たる角度の丸め誤差であると指摘しました(法線と方向の間の内積が低くなります)。

原因は、法線方向テクスチャの内部フォーマットが GL_RGBA16F - 丸めの原因となった 16 ビット浮動小数点数に設定されていたことです。フォーマットを GL_RGBA32F に設定すると、32 ビット浮動小数点数を保持することで丸めが修正されました。

Andon M. Coleman は、GL_RGBA はあいまいであり、GL_RGBA8 が適切であるため、GL_RGBA を内部フォーマットとして使用するのをやめるべきだと指摘しました。

于 2014-01-05T02:01:58.420 に答える