如何零成本实现硬表面细节?
2021-08-27薛山
薛山
所谓硬表面建模,也就是机甲类、武器类、载具类的3D建模,往往既需要横平竖直,又有大量倒角,属于相对有一定难度的建模类型,如果你经常玩游戏的话不难发现这些建模往往都会附着大量的表面细节,比如坑孔、折线、界面扭曲等等,这时候为了节约时间和降低顶点堆叠的风险,利用凹凸来实现局部位置的细节设计就非常有必要,而凹凸的根源就是法向图,它最大的优点就是可以实现环境光按法向图的方向来进行反射,从而起到“欺骗”视觉的效果(因为实际上并没有在该位置做任何的顶点操作),那么,我们要如何自己动手,做自己想要的法向图呢?
第一步:制作法向图需要的3D模型
虽然我们的目的是利用法向图来“欺骗”视觉,但法向本身源自3D模型,所以我们还是得自己做一个3D模型来烘焙法向图,这也正是DIY的意义所在。当然,为了图方便,我们在网上也能找到大量现成的法向图,或透明笔刷,后者可以通过线上工具转换成法向图,但现成的图可能并不一定适合你的模型,所以,能自己做就自己做吧。本教程就制作了如图1的模型图。
制作时需要注意,因为法向图最终是以俯视的角度进行烘焙,因此我们在制作朝内朝外挤出操作时,一定要让后边缘有一定的倾角,如图2所示,而不是垂直上下,不然会因为所有能看到的面都直指上方,法向图呈现一片纯色。
第二步:烘焙法向图
制作完3D模型后,我们在其上方新建一个平面,并赋予一个新材质,在着色器编辑器中新建一个图像材质,分辨率2K,其余默认,将色彩空间设置为“hlon-Color”,也就是无颜色,这时候切记不要把它连接到原理化BSDF上,具体设置如图3。
然后切换到Cycles渲染器,先选择之前做好的3D模型,再按住Shift选择平面,在渲染属性一烘焙中,选择烘焙属性为“法向”,再点选“所选物体一活动物体”后,进行烘焙。这时候新开一个图像编辑器或uv编辑器的窗口,就能看到我们烘焙好的法向图了,可参考图4。这时候一定要保存法向图,以免丢失。
第三步:使用法向图作为硬表面细节
法向图制作完成后,要怎样使用它呢?我们再新建一个平面,当然也可以是你的任何其他3D模型。这时候为新平面添加材质,在着色器编辑器中,为原理化BSDF的法向连接一个“法线贴图”模块,然后导入我们之前做好的法向图,将它与“法线贴图”的颜色连接,这时候如图5所示,可以惊喜地看到,即便我们的平面依然只有4个顶点,但通过法向图的影响,实现了仿佛有凹凸纹理的质感,对性能的要求几乎可以忽略不计,尤其是对于动辄数百上千帧的动画渲染来说,可以大幅提升工作效率,毕竟运动中的机甲动画你也很难察觉到它是否真的有做基于顶点的建模,仅仅靠法向的反光就足以满足视觉上的观赏需求。
有时候你会发现法向图形成的反光与其他的面并不一致,这时候就需要改变法向的方向,简单来说就是调整图片的RGB值,可以在法向图和法线贴图之间加入分离RGB、反转、合并RGB这三个功能模块,可以通过反转绿色或蓝色通道来实现法向的变化,具体设计可参考图6。
而且这个设计有一个好处就是跟随uv变化,我们只需要在UB编辑器中调整大小,就能实现如图7的细节重复,也可以一次烘焙数个硬表面细节的法向图,再在uv中调整选区,就能实现一张法向图搞定整个模型的目的啦。
本章小结:虽是“作弊”,但效率真香
这个方法虽然不能说是“万試万灵”,但大多数时候都是管用的,最重要的贡献就是大幅提升效率,经常需要进行硬表面建模的设计师还可以自己逐步打造一个法向图库,配合效率更高的EEVEE渲染器,可以实现动画的快速预览虽然从某种意义上来说这有点“作弊”的感觉,但架不住效率高,值得广大爱好者尝试!