デカールに関する情報を見つけるのに問題があったので、この質問が他の人の役に立つかもしれません。この実装は、フォワードレンダラー用です。
デカールの実装が正しいかどうか誰かが確認できますか?
- 共通空間での投影ボリュームを定義する任意の次元の立方体を定義します。定義されたキューブとの三角形の交差をチェックして、投影が影響する三角形を受け取ります。
- これらの三角形をクリップして保存します。
- 次に、マトリックストリックを使用して、投影するテクスチャを参照する保存された三角形のUV座標を計算します。
- これを行うには、共通空間での立方体の高さ、幅、奥行きを表すベクトルを取り、左下隅が原点になるようにします。
- これをi、j、kの単位ベクトルとして行列に入れ、立方体の移動を設定してから、この行列を逆にします。
- 保存した三角形の頂点にこの行列を掛けます。これにより、UV座標として使用する0から1のサイズの立方体内の座標を取得できます。
- このようにして、投影している元の三角形があり、それらのUV座標があります(UV座標は、投影しているテクスチャを参照しています)。
- 次に、保存した三角形をシーンに再レンダリングすると、投影された画像で投影領域が上書きされます。
今、私が答えを見つけることができなかった質問。最後の点は正しいですか?私はソフトウェアクリッピングを行ったことがありませんが、精度に制限があるため、投影されたテクスチャに対してzファイティングが発生する可能性があるため、エラーが発生しやすいようです。また、UV座標を正しく取得する方法はありますか?