RGBA8 レンダー ターゲットにレンダリングすると、3D アプリケーションにカラー バンディング アーティファクトが発生します。どうすればそれらを取り除くことができますか(より高い精度でバッファにレンダリングする必要はありません)?
アップデート
レンダリング プロセスは基本的に次のとおりです。
1) ジオメトリをテクスチャにレンダリングする
2) フルスクリーンの後処理ステップ (コントラスト、明るさ、彩度、トーン マッピング、およびガンマ補正) を適用する
以下に 2 つのスクリーンショットを示します。1 つは rgba8 ターゲットを使用し、もう 1 つは rgba16f ターゲットを使用しています。どちらも後処理ステップを無効にしてレンダリングされました。ご覧のとおり、rgba8 レンダリングにはバンディング アーティファクトがあります。
ジオメトリは、次のシェーダーと加算ブレンディングを有効にして描画された 3 つの変形平面で構成されます。
float4 PlaneFP(VSOutput In) {
float3 normal = normalize(In.WorldNormal);
float3 eyeDirection = normalize(In.WorldPosition - scene.EyePosition.xyz);
float falloff = 1.0f - saturate(dot(normal, -eyeDirection));
falloff = pow(falloff, 4.0f);
return float4(MaterialDiffuse * falloff, 1.0f);
}
後処理ステップを有効にすると、バンディング アーティファクトがより目立ちます。rgba16f を使用するとバンディングが消えますが、PS3 用にこのアプリを開発していて、浮動小数点ターゲットで MSAA を処理できません。