Y'CbCrを使用して、2つのR11G11B10Fバッファーを1つにエンコードしますか?


8

照明を最適化しようとしています。統合グラフィックチップは、メモリアクセスが非常に遅いです。

2つのライトバッファーがあります。1つは拡散反射光用、もう1つは鏡面反射光用です。どちらもフォーマットR11G11B10Fを使用します。2つのバッファーを1つにパックする方法はありますか?たとえば、カラーモデルY'CbCrを使用します。ここに画像の説明を入力してください


これは遅延照明パイプライン用ですよね?タイル実装を使用して帯域幅を削減していますか?また、代わりにタイル状の遅延シェーディングまたはタイル状の前方シェーディングを検討しましたか?
JarkkoL 2016

回答:


5

あなたは見たいかもしれないコンパクトのYCoCgフレームバッファ。2チャネルバッファーを使用して、すべてのピクセルの輝度と2つのクロマコンポーネントをそれぞれ半分のピクセルに格納し、チェッカーボードを形成します。また、フレームの最後にエッジ対応のアップサンプリングフィルターを使用して、欠落しているクロマコンポーネントを再構築し、RGBに変換します。

これを単一の3チャネルバッファーに拡張して、拡散輝度、鏡面輝度、およびチェッカー盤の彩度を格納できます(質問の図に基づいて、彩度値のペアを1つだけ格納すれば十分であると想定しています)。

浮動小数点形式の範囲が本当に必要でない限り、代わりにR10G10B10A2形式の使用を検討することもできます。同じ量の帯域幅ですが、かなり高い精度が得られます(R11G11B10Fでは、コンポーネントごとに5〜6ビットの仮数しか得られません)。さらに、2ビットのアルファを使用して、拡散/鏡面反射フラグなどのいくつかのフラグを保存できます。


2

鏡面反射光が白だけでよい場合は、拡散反射光と鏡面反射光をRGBAに入れることができます。

それが延期されたレンダリングのために一体が何をしているように見えます。

この問題を発見した人:http : //forum.unity3d.com/threads/specular-color-based-on-light-color.134412/

それについて言及しているドキュメント:https : //docs.unity3d.com/Manual/RenderTech-DeferredLighting.html


おかげで、まだ拡散
反射光
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.