[技术] 烘焙原理、完美烘焙法
我们先系统性的理解一下烘焙原理。
图1
烘焙的目的是将物体高模上的法线信息尽可能完好的记录下来。而做好烘焙的三要素为:平滑组,UV和Cage。
图2-3
什么是平滑组?如果两个面共享一条边并且共享一个平滑组,它们将被渲染成为平滑曲面。每个面片可以包含不超过32个平滑组。在一个平滑组中的面在它们相交的这个顶点的法线方向为它们三个面上法线方向的加权平均(见图2-3)。
2为分了UV分了平滑组,3为没分UV分了平滑组,4为分了UV没分平滑组,5为没分UV也没分平滑组(1为高模,其余的低模)
但如果我们把不同的面分到了不同的平滑组,立方体立刻就变好看了。表面平整,轮廓清晰。但是细看边角处,我们除了凹痕以外还看到了一条黑线。
上图3的不足之处:边角处有黑线和凹痕
造成这条黑线的罪魁祸首是没有分UV所造成的面与面之间法线信息的溢出(bleeding)。解决方法就是在边的相接处把UV切开,再隔开一定距离。如上上图的2。
解决了黑边以后我们得到这个结果
最后要讲的是cage。
烘焙时,低模的面向外发射射线,如果两个相接的面呈90°角,那么射线就不会通过两个面的边角处。而cage的作用是让射线也通过两个面向量的加权平均方向,通过面之间的边角处,从而使低模获得高模完整的法线信息。
第一步,把做好预备工作的高低模的初始状态放在第0帧,在下一帧把零件之间隔开一段距离,高低模的零件的位置要保证重合。这样做的原因是:一,你可以马上返回第0帧查看带有法线贴图的低模的效果;二,零件之间有距离间隔能防止零件之间法线信息的相互溢出。
UV在做好以后是不会变的,即使模型的零件发生了位移。在做到烘焙这一步时,跟模型和UV已经没有关系了,你现在所做的一切操作都只是为了制作一张有完整高模信息的法线贴图。
第二步,选择低模,Modifier->Projection->Cage。在Cage菜单下勾选Shaded。
第三步,选择某零件低模的顶点,在Cage菜单下上调Push里的Amount值,让低模的Cage刚刚好包裹住高模。有时候大部分区域都包裹好了,但有些地方却露了出来(如下右图)。这个时候只需将该区域的顶点选上后进行精调即可。
全部零件调完Cage以后进入第四步,烘焙测试(非最终渲染)。主菜单->Rendering->Render to Texture,选择输出路径,在Projection Mapping中选择Projection,pick里选择高模,点开Option,勾选Ray miss check以发现错误信息。暂时不选Global Supersampler,因为这不是最终渲染。(确保Light Tracer为开启状态)
稍微讲一下padding。一个UV图上,除了UV shell以外的黑色区域称为gutters。如果UV shell和gutter的颜色差别很大,也会造成贴图信息溢出的情况。padding的作用是在UV shell和gutters之间做一个保护层,防止贴图信息的外溢。根据贴图大小不同,padding的值也需调整。如下表。
返回Render To Texture菜单,添加法线贴图,因为只是测试给个1k分辨率就可以了,点击渲染。






posted on 2018-03-23 11:07 cainiao001 阅读(2009) 评论(0) 收藏 举报