我正在嘗試在著色器中混合兩個世界空間法線。一個來自使用經典TBN矩陣的切線空間法線貼圖轉換為世界空間,另一個是世界空間中的網格法線貼圖。
我在這裡找到了一些有趣的資源:
但是這些混合技術似乎僅適用於切線空間法線,尤其是重定向法線貼圖(RNM)。我嘗試將RNM技術應用到已經完成的拆包中。
n1 += vec3(0, 0, 1);
n2 *= vec3(-1, -1, 1);
return n1 * dot(n1, n2) / n1.z - n2;
但是,這並沒有給出預期的結果,我也不知道為什麼。有沒有辦法將RNM混合應用於世界空間法線?
非常感謝。
編輯:以下是一些輸出以及我在RNM上獲得的結果。A法線不受B法線的干擾,它給出了一些奇怪的大規模重定向結果。
float3 nv = dot(normal, viewDir);
color.rgb = nv;