複数のライトで高速ライティングを実装するにはどうすればよいですか?
プレイヤーを拘束したくありません。彼は無制限の数を配置でき、場合によっては重なっている(ポイント)ライトをレベルに配置できます。
問題は、ライティングの計算に必要な動的ループを含むシェーダーが非常に遅くなる傾向があることです。
コンパイル時にシェーダーをn回コンパイルすることが可能である場合、nはライトの数であるという考えがありました。コンパイル時に数値nがわかっている場合は、ループを自動的に展開できます。これは、異なる数のライトで同じシェーダーのnバージョンを生成することは可能ですか?
実行時に、レベルのどの部分にどのシェーダーを使用するかを決定できます。
ライトがプレーヤーによって動的に追加される場合、「コンパイル時」シェーダーはどのようにして正解になりますか?
—
セスバティン2013年
私が書いたように、コンパイラーは1,2,3、.. lightsのシェーダーを生成でき、実行時にレベルのどの部分にどのシェーダーを使用するかを決定できます
—
codymanix
コンパイル時のシェーダーは、ライトが配置される場所を知る必要があります。ライトの動的性はそれらを台無しにします
—
ラチェットフリーク
ライトの数のみが動的である必要があります。位置はパラメータとして提供されます。
—
codymanix 2013年
答えがあるようですね。ライトの最大数と可能な位置の範囲がわかっています。
—
ashes999 2013年