1. 程式人生 > >使用紋理(Texture)RGB資料來"干擾"法線(Normalize)的資料,強化材質表面質感

使用紋理(Texture)RGB資料來"干擾"法線(Normalize)的資料,強化材質表面質感

演算法舉例: vec3 tnv = normalize(nv + rgb - 0.5);

一般材質表面在渲染中的粗糙凹凸表現由法線控制,用上述演算法使法線通過將rgb值(0.0~1.0)轉換為rgb(-0.5~0.5), 這個結果就可以模擬法線所在的位置疊加了凹凸變化。也因此反射的光強發生了響應的強弱變化。這個方法可以擴充套件使用,引數和演算法可以自己在調整。有些地方這個方案直接可以省去法線貼圖。

下面有對比圖

正常情況, 注意觀察圓環表面高光,比較平滑均勻但是有些假(或者說反應的是這一類材料的表面):

使用了RGB資料"干擾"之後, 注意觀察圓環表面高光的變化, 和紋理的明暗更匹配效果更真實了(或者說更像生鏽的刷漆的金屬表面):

這張圖質感更強。

不同的紋理,因為rgb的資料不一樣效果也會不一樣,有些凹凸感會很強烈。