1

フォワード レンダラーを遅延レンダラーに変換することを検討していますが、見つからない (または概念化できない) 問題が 1 つあります。それは、シーン内のすべてのライトが蓄積される方法です。フォワード レンダリングでは、すべてのライトをシェーダーにアップロードしますが、さまざまなオブジェクトのサイズのために 4 つに制限されていました。蓄積されたライト情報を最終的なコンポジット シェーダーに取得するにはどうすればよいですか? 各シーン オブジェクトのレンダリング方法と同様の方法で各ライトをレンダリングする必要がありますか? 各ポイント ライトを球体としてレンダリングする例をいくつか見てきましたが、この方法でどのように減衰できるかわかりません。

4

1 に答える 1

4

遅延シェーディングの考え方は、ライトごとに1つの画面サイズの画像操作で照明計算を実行することです。つまり、各ライトに対して独自の遅延シェーディングパスを実行します。光が加算されるため、加法ブレンドモードを使用します(アルファチャネルなし、合計するだけです)。これは、遅延シェーディングが不透明なジオメトリでのみ適切に機能し、半透明のジオメトリに適用する場合は追加の準備(シーンの深さの剥離など)が必要になる理由でもあります。

于 2012-03-29T00:41:51.240 に答える