法線バンプ マッピング、視差マッピングなどを含むマッピング テクニックの多くは、特別な頂点単位の接空間ベース(接線、法線、従法線 / 従接線) を必要とします。
これは明らかに、モデルが頂点位置、テクスチャ座標、頂点ごとの近似法線をエクスポートするだけでなく、接空間基底ベクトルの 1 つ (通常はtangent
)もエクスポートする必要があることを意味しますcross(tangent, normal)
。
位置、法線、UV、および接線は、実際には次のように相互に依存していることに注意してください(接線ベースを準備するには、頂点に関する他のすべてのことを知っておく必要があります)。
position -> normal -> tangents
uv ->
さて、現代の 3D ゲーム / レンダリング エンジンでは、この種の処理はどのように行われているのでしょうか?
それらは実際に各頂点ごとに法線、接線、およびuv 座標を提供しますか、それとも実行時に何らかの方法で計算できますか? それらはモデル データの一部であるべきですか、それとも実行時のみのプロパティであるべきですか?
また、ジオメトリ シェーダーを使用すると、実行時に法線と接線を実際に準備できることもわかっていDirect3D10+
ます (当然のことながら、各三角形の頂点にアクセスできるため) 。