如何使用和调整置换材质

对于高度差别比较的小的材质,通常使用法线贴图通过控制法线朝向的本身就能很好的表达材质表面的凹凸。

然而法线贴图只能提供材质表面的光照信息,对于高度差别比较大的材质,尤其是本身有一些遮挡关系的材质,具有一定的局限性。


当只有法线贴图没有高度贴图时的效果


新增了高度贴图的效果


高度贴图通过控制纹理的偏移量更好的表达材质的高度信息,通过修改纹理的坐标实现位移的效果。贴图中,白色代表高,黑色代表低。通过高度贴图和法线贴图的叠加运算最终得到获得置换的效果



在D5渲染器中在材质编辑栏中,将材质模板切换为“置换”上传相应贴图通过调整参数即可实现置换效果。

置换


综上,实现置换效果需要三张贴图

  1. 材质贴图(BaseColor/Diffuse):提供漫反射信息,对应参数材质贴图(Texture)

  2. 法线贴图(Normal):一张蓝紫色的贴图,提供光照计算所需要的的表面法线朝向信息,将法线参数设置为1,对应参数法线贴图(Normal)

  3. 高度贴图Displacement:一张黑白贴图,提供纹理的偏移信息。对应参数高度(Height)



:bulb: 提示:使用置换效果会提高显存占用,推荐在近景细节处使用



由于置换贴图纹理通常是完全对应的,在D5渲染器中不再对置换材质开放单独调整UV(Individual UV)功能。可以在UV面板中整体调整UV尺寸,提高效率。

推荐材质网站: CC0 Textures - Free Public Domain PBR Materials

参考: LearnOpenGL CN (learnopengl-cn.github.io)

  • 出于渲染效率的因素考虑,D5渲染器中的置换是使用优化过的视差算法实现的,根据教程的操作可以实现很不错的效果。
  • 一些离线渲染器使用的是曲面细分的方式(通过贴图改变了原本模型的面,生成了新的多边形面),然而这种算法性能消耗很大。
  • 实时渲染器如果采用曲面细分的方式对算法要求比较高,我们会考虑优化。
1 个赞

置换贴图在曲面地形上用不了,会出现重影的感觉,现在有办法解决吗