使用纹理(Texture)RGB数据来"干扰"法线(Normalize)的数据,强化材质表面质感

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

一般材质表面在渲染中的粗糙凹凸表现由法线控制,用上述算法使法线通过将rgb值(0.0~1.0)转换为rgb(-0.5~0.5), 这个结果就可以模拟法线所在的位置叠加了凹凸变化。也因此反射的光强发生了响应的强弱变化。这个方法可以扩展使用,参数和算法可以自己在调整。有些地方这个方案直接可以省去法线贴图。

下面有对比图

正常情况, 注意观察圆环表面高光,比较平滑均匀但是有些假(或者说反应的是这一类材料的表面):

使用了RGB数据"干扰"之后, 注意观察圆环表面高光的变化, 和纹理的明暗更匹配效果更真实了(或者说更像生锈的刷漆的金属表面):

这张图质感更强。

不同的纹理,因为rgb的数据不一样效果也会不一样,有些凹凸感会很强烈。

猜你喜欢

转载自blog.csdn.net/vily_lei/article/details/83038793