じゃあ良いよ。小さなゲーム エンジンにノーマル マッピングを実装しようとしていますが、うまく動作しません。
頂点ごとの法線だけでライティングを行うとすべて問題ありませんが、法線マップでそれを行おうとすると、すべてがバラバラになります。
テクスチャがきれいに見えるので、適切な UV があることはわかっていますが、法線マップ テクスチャに関して何が間違っているのかわかりません。
これは、ピクセル シェーダー (HLSL) のコードの一部です。...
float3 NormalSample(float3 normalMapSample, float3 unitNormalW, float3 tangentW)
{
//Uncompress each component from [0,1] to [-1,1]
float3 normalT = 2.0f*normalMapSample - 1.0f;
// Build orthonormal basis.
float3 N = unitNormalW;
float3 T = normalize(tangentW - dot(tangentW, N)*N);
float3 B = cross(N, T);
float3x3 TBN = float3x3(T, B, N);
// Transform from tangent space to world space.
float3 bumpedNormalW = mul(normalT, TBN);
return bumpedNormalW;
}
私が間違っている可能性があることについてのアイデアはありますか?