0
我想生成被高度貼圖置換的頂點的法線。我有相應的法線貼圖,但是我看過的示例顯示法線矢量等於法線貼圖上像素的RGB值。但是這意味着當一些向量應該具有負值時,所有的法向向量都是正向的。你如何使用法線貼圖來計算這些值?計算頂點法線fron法線貼圖
謝謝!
我想生成被高度貼圖置換的頂點的法線。我有相應的法線貼圖,但是我看過的示例顯示法線矢量等於法線貼圖上像素的RGB值。但是這意味着當一些向量應該具有負值時,所有的法向向量都是正向的。你如何使用法線貼圖來計算這些值?計算頂點法線fron法線貼圖
謝謝!
你剛纔範圍轉移到<-1.0,+1.0>
所以
如果你有在範圍內的顏色通道<0.0,1.0>
// a)
nx=(2.0*r)-1.0
ny=(2.0*g)-1.0
nz=(2.0*b)-1.0
或:
// b)
nx=2.0*(r-0.5)
ny=2.0*(g-0.5)
nz=2.0*(b-0.5)
如果你去每個通道噸8位則範圍是<0,255>
nx=(float(r)/127.5)-1.0
ny=(float(g)/127.5)-1.0
nz=(float(b)/127.5)-1.0
如果看一下正常地圖圖像你應該看到偏藍的顏色,因爲中性normal=(0,0,1)
從平坦面朝上被編碼爲color=(r=0.5,g=0.5,b=1.0)
像這裏:
也看看這裏:Normal mapping gone horribly wrong凡正常從這種紋理計算在GLSL通過#1B方法:
const vec4 v05=vec4(0.5,0.5,0.5,0.5);
texture2D(txr_normal,pixel_txr.st)-v05)*2.0;
另外的(r,g,b)
可以被映射到(nz,ny,nx)
代替(nx,ny,nz)
在這種情況下,只是交換r,b
(法線圖是紅色,然後肥胖型代替)