3D印刷用の小さな建物を作るために、単純な手続き型3Dモデリングをいじっています。例:
モデルを画面上で読みやすくするために、単一の指向性ライトの基本的なシャドウマッピングを実装しました。シーンは変わらないので、シーンの軸に合わせたボックスを使用してシャドウマップを1回レンダリングするだけで、シャドウマップの境界がどうあるべきかを把握します。影と境界線は、すべての行列が正しいように見えますが、少し近づくとひどく見えます:
私が行った読書から、私はピーターのパンニングとそれに対して何ができるかを理解していますが、ぼんやりしたエッジは射影エイリアシングの一種であると信じているため、私の基本的な実装では何かが間違っていると思います。
ピクセルシェーダーをハッキングして、シャドウテクセルの境界を表示しました。
テクスチャにバイリニアフィルタリングを適用しました(これがないと、深刻な影のにきびができます)。悲しいことに、PCFでの私の試みも失敗しました-それはちょうど不規則に見えます:
バイリニアフィルタリングを無効にした単一のサンプルケースを次に示します。
これは「典型的な」射影エイリアシングのように見えますか?おそらくカスケードでシーンにクリップされた視錐台を使用したシャドウマップの動的レンダリングは、問題に対処できますか?
編集:私が得るものを示すために、双線形フィルタリングのクローズアップ、ポストシャドウ比較を追加します。内側の端が原因で、悪い影のにきびが現れます。スタックされた仮想ブロックを使用してモデリングしており、適切な結合操作を行っていません。私の読書から、多面体にブール演算を実装することは簡単ではありませんが、静的なシャドウボリュームを実装するだけでなく、いくつかの3D印刷ソフトウェアをクリーンアップすることもできます。