高模烘焙低模 方法总结及常见问题解释
高模烘焙低模 方法总结及常见问题解释
在3D建模中,高模烘焙低模是一项重要的技术,能够将高分辨率模型的细节烘焙到低分辨率模型上,从而在保持模型轻量化的同时保留高质量的视觉效果。本文将详细介绍在不同场景下进行高模烘焙时的最佳实践和常见问题的解决方案。
高模部件展示
我们选取模型中最具代表性的一个部件,此部件包含了多种复杂情况:
挖洞 对称结构 圆环 网格穿插
开始前明确:低模制作规范
在制作低模时,实际上并无无硬性要求,但是高低模之间总存在三种情况:
①高模包裹低模 ②低模包裹高模 ③低模重叠高模
大多数情况下,低模略微包裹高模最为通用,即②③情况,这样可减少烘焙时的渲染伪影、缓解接缝、烘焙效果最佳。如果没有理由,应该尽量避免①高模包裹低模的情形。
前置注意事项
在导出低模模型前,若模型不含锐利棱角,可以对模型进行一次基于面的面积的平均顶点法向。在Blender中,使用Alt N快捷键,可选择此功能:
重新计算法向后,可减轻Normal贴图纠正固有顶点法向的负担。此举动有助于稳定烘焙后法线的质量,尤其是对于低分辨率、复杂布线下的表现(为突出效果,当前为256*256的极低分辨率):
平均后-烘焙效果 平均前-烘焙效果
不含锐利棱角指的是:所有相邻面夹角>90°(即对所有边角做过倒角处理)
1.烘焙挖洞类网格
高模情况
使用表面细分流程制作高模,同时刻意保留了较明显的圆滑拐角(或称为高光边)
最佳低模实践
- 尽量让低模包裹高模,在拐角处额外的添加一次倒角(内测外侧分别一次)。
- 沿着洞的边缘切割UV(设定裁剪线),并拉直UV
- 将位于洞边缘的UV裁切线标记锐边
高低模关系(黄色为高模,白色为低模):
外侧 内侧
让洞的边缘落在倒角所形成的范围之内
尽量让边缘线完全包裹高模
效果
解释
1.为什么要在洞边缘添加一阶倒角:
倒角添加新的面,洞边缘处的凹凸细节被烘焙到倒角产生的面上。若不添加倒角,则表面的一部分凹凸细节将被烘焙在洞壁上,洞壁的凹凸细节将被烘焙到表面上。
1.如果不添加外侧的倒角,则烘焙效果如下图所示:
原因:侧面观察时,对于能看到洞壁的一侧,可以保持极佳的效果。由于有一部分的凹凸细节被烘焙洞壁上,因此在看不到洞壁的一侧,无法呈现部分边缘的Normal细节,显示出生硬的网格边缘。
2.如果不添加内侧的倒角,则烘焙效果如下图所示:
原因:由于有一部分洞边缘的凹凸细节被烘焙洞壁上,因此无论在什么角度观察,只要能看到洞壁,都能看到洞边缘的凹凸细节。如果模型没有特写要求,则可以忽略此细节,无需添加倒角
2.为什么要低模包裹高模而不是高模包裹低模
如果你使用高模包裹低模,则会收获如下效果:
1.低分辨率下严重失真:
原因:高模表面积大于低模表面积,高模凹凸细节被迫压缩到更小的面积上,在低分辨率下这种影响尤为严重。
2.烘焙细节意外截断:
原因:烘焙过程中,低模的射线检测从cage表面(位于低模表面外侧)向内发射,探测并捕捉高模的细节。低模表面上的某些区域探测不到高模,导致烘焙结果中出现“截断”或“漏烘焙”的现象。
3.为什么要在洞的边缘处切割UV?为什么要拉直UV?
如果不切割UV,让洞壁的UV与洞边缘相连接。
在低分辨率贴图中,则会出现明显的锯齿
原因:UV存在拉伸,分辨率与相邻的UV面不同,边界处的一个normal像素被共享,因此出现异常的凹凸。只要存在UV裁切线,则接缝通常只能通过提高UV面积、增加分辨率缓解,因为分离的UV孤岛可能存在不同的拉伸、缩放,从而导致边界像素无法完美匹对。
如果在边缘UV和洞壁UV之间设定裁切线(点击查看大图):
左:裁切线位于边界与洞壁之间 - - - - - - - - - - - - 右:裁切线位于表面与边界之间
虽然没有UV裁切线,但是由于边缘处UV存在拉伸,导致出现不太明显的边界,这同样是由于UV边界处采样问题导致的。此边界无法通过提高分辨率来解决,越高的图像分辨率,代表更多的边界处像素被采样,产生更加明显的痕迹:
此边界无法通过拉高分辨率消除:
UV裁切线产生的边界可以通过拉高分辨率缓解:
如果不拉直UV,则会在边缘处粗糙 拉直UV,粗糙有所减少
4.为什么UV裁切线要设定锐边?
在洞边缘处:
不标记锐边,UV接缝处光照突变明显 标记锐边,效果有所好转
标记锐边在中高分辨率下的表现:
标记锐边在低分辨率的表现:
原因:可能是因为:Normal 效果在不标记锐边时,斜面需要额外考虑与平面的法向过渡:这导致了边缘处额外的凸起:
当标记锐边后,斜面与平面视为独立的网格,互不相干,只需考虑高模法向:这只会产生极其细微的裁切线导致的边界:
此处仅考虑了UV面积充足的情况。低分辨率中效果会有所不同。
⚠️**并非所有UV裁切线都需要锐边标记,如果UV裁切线两侧都为圆滑的表面(可粗略的通过角度>90°判别,下文有额外的评判原则),并且UV比例均匀,则无需标记锐边。**例如在洞璧上的UV裁切线,由于左右两侧都为光滑的表面,所以不标记锐边:
2.烘焙环状网格
高模情况
最佳低模实践
环状等包含圆形的形状,为维持网格形状,只能增加网格面数。
- 通常只需四段线即可维持各方向上的体积相似。
- UV接缝位于内侧减少视觉影响,将UV进行拉直。
- 根据需求增加或减少环体段数
纯粹的环形、球形是最为简单的结构,甚至无需烘焙,只需平滑法线就能得到最佳的结果。
效果
3.烘焙镜像类网格
高模情况
最佳低模实践
- 遵循②②规范,尽量包裹高模即可。
- 将左右两侧共用的线段标记为锐边
效果
解释
1.为什么要在对称轴上标记锐边
标记锐边,表面左右两侧的顶点将被视为独立的网格,左右两侧的顶点法向将不会试图平滑过渡。不标记锐边,若两侧法向位置不同,顶点的法向会自动的平滑过渡。生成的Normal会试图补齐差异来符合高模的表面。由于两侧共用的相同的UV数据,导致另一侧Normal是错误的。
4.烘焙穿插类网格
高模中不应出现网格穿插,因为Normal无法描述突变的值
应确保网格交界处受遮挡而不可见,因为交界处的Normal是不准确的
最佳低模实践
- 遵循②②规范,尽量包裹高模即可。
- 对UV裁切线处理:
- 对于高锐度的结构,必须标记锐边
- 对于大平面与小圆角的交界处,可标记锐边提高细节质量
注意:对于复杂结构的空心盒体,可能会有模型面沿法向缩放不均匀的问题,这将导致cage的计算错误,从而引发烘焙问题。在低模构建时应避免①类情况。
锐边标记 UV裁切线标记
内部尽量完整包裹高模,避免cage计算出错
效果
你可能注意到,虽然高模网格是交叉的,但是烘焙出的Normal却呈现出”连续“的视觉效果:这是一种巧合,其生成的Normal是不准确的,不能保证与上半部分的Normal连续。当更改分辨率,或更改UV重新烘焙时,则可能会出现不连续的接缝。在实际工程中,你应该使用掩盖交界处,确保不可见。
解释
1.为什么锐度高的UV裁切线需要锐边
对于高锐度的角落,若不标记锐边,则会出现异常的结果:
原因:若不标记锐边,顶点的法向会自动的平滑过渡。烘焙时生成的Normal会试图补齐差异来符合高模的表面:由于高锐度网格中法向差距大,Normal贴图所能表示的范围有限,因此不能烘焙出高模的表面细节。
2.为什么要给位于大平面与小圆角的交界处的UV裁切线标记锐边
若不标记此处锐边,则会在边界处出现光照瑕疵。
不标记锐边 标记锐边
原因:与第一节提到的原因一致,不标记锐边时,两侧的法向将自动的进行平滑过渡,这导致大平面一侧会有细微的法向偏移量:
未开启锐边 开启锐边
此细微的偏移可能是导致诡异高光出现的原因。
结语
⚠️本文中所有解释仅为个人理解以供参考,可能并不准确,切勿当作教条。文章如有不当之处,还望指正