ゲーム エンジンのレンダリング側を書いている間、私は現時点でマンネリに陥っているようです。私の当初の計画では、少なくとも HLSL を使用して動的なピクセルごとのライティングを実装し、最大 8 つのライトについてシェーダーと通信するライト バッファーを用意することでした。
現在、マップ全体が 3 次元のブロック配列 (64x64x64) になっていることに注意してください。非常に基本的な顔削減アルゴリズムの後、最悪のシナリオでレンダリングする 32x32x32x6 の顔を見ています。負荷を減らすために他の方法を使用するつもりですが、最初にこれを解決したかったのです。
現在、シェーダーに 8 つのライトがあり、まともなカードである GTX 470 で約 60 ~ 120 のフレーム レートを取得しています。他にも検討しなければならない最適化がたくさんあることは明らかですが、動的ライティングは私にとって重要ではないため (少なくとも 8 つのライトではそうではありません)、ライト マッピングを検討しています。
面ごとに 4x4 ルーメルがある場合、レベル全体のライト マップのテクスチャ アトラスを見ています。これは 32x32x32x6x16 の大きさで、ピクセルあたり 4 バイトです。これは、私が使用する 2048x2048 (2 乗に最も近い解像度) のテクスチャになります。
私はすでにいくつかのソース、特にこれhttp://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtmlを見てきました。基本的なシーンでそれを実装する方法を理解していますが、方法に困惑しています現在のジオメトリ状況で実装できました。
だからここに私の質問があります。これを行うより良い方法はありますか?このサイズのライト マップは使用しても問題ありませんか? バイリニアフィルタリングは最終的に物事を本当にスムーズにするように見えるので、面ごとに4x4ルーメルを使用することに満足しています。また、静的なライト マップ システムと HLSL を使用したピクセルごとの動的なライト マップ システムを組み合わせるのはかなり簡単でしょうか?