网络上很多关于法线烘焙的资料,可以多去查阅一下,这里主要讲一下最近学员遇到的问题,算是做一个总结,有其他问题也欢迎留言补充。
1软硬边(光滑组)设置不正确
软硬边设置跟UV切割线其实是同时考虑的,看了很多教程中有先区分软硬边再根据软硬边拆UV的,也有先展UV再根据UV 边界线来设置软硬边的,总之怎么顺手怎么来。
关于软硬边设置,“转折面角度小于等于90°就做UV拆分,然后转折边设置硬边,反之不做拆分并设置软边。”至于软硬边设置搞不清楚,记住一个圆柱的例子就好了。即,区分软硬边UV需要断开,但是不是所有UV断开的地方都是硬边,比如圆柱侧面不切没法展开,但是切割处应该给软边。也就是说软硬边最终结合3D结构以及UV切割线同时来看。又比如一个较大的转折即便是角度上不满足小于等于90°,但是如果统一软边(给一个光滑组)法线依然也是会有渐变色出现,所以也建议区分光滑组并断开UV。那么如果说到这,其实一些小的不重要的90°转折厚度的地方也可以选择给软边不断开UV,这样的好处是不用拆的过于细碎。
绕了这么多,一句话,软边断不断开都行,硬边必须断开!
这一块,MAYA操作起来十分的顺手,自动选择硬边的有插件可以做到,例如 AMtools、crease plus、nitropoly2.0等等太多了,选择UV边界线刚才提到的Nitropoly2.0里面硬边选择旁边就有选择UV边界线,但是其实这个功能maya自带UV编辑器select选项下就有一个texture borders。
至于max的光滑组设置,可能没有MAYA方便,但是也有可以省时省力的方法,不用去一个个手动点击可编辑多边形面板的光滑组序号,这样还得记临近面的光滑组。有个小技巧是,自定义个MAX自带的smooth selection 快捷键命令,如图:
这样设置光滑组会便捷很多,选择面执行快捷键就行了,自动会区分临近面光滑组。max可以先设置光滑组然后根据光滑组断开UV,也算是比较便捷了。
2UVlayout问题导致UV接缝
UVlayout也就是UV排布摆放问题,能打直的尽量打直,可能现在贴图大小不像几年前那么严了,但是打直UV依然是一个重要的规范:
一来可以在摆放的时候UV shell之间可以很好地摆放(把UVlayout想象成俄罗斯方块游戏),二来边缘像素也是能够对齐的。当然,不是所有UV shell都能做到横平竖直,例如这样的:
尽量做到对称摆放
3UVshell 之间像素大小密度不匹配
贴图大小进度不一样产生了接缝,区别于之前做手绘的经验,如果贴图是渐变过渡色,无明显细节表现,略微的UV优化导致像素大小不一样是很常规的操作,但是次世代的纹理细节决定了他的UV不能做类似的UV,所以尽量保证像素密度的一致性。
做到这一点,现在已经不是什么麻烦事了,不论是MAX 跟maya都有自带的统一像素密度的功能了,当然还有展UV神器——rizom UV。
4封套&包裹框是否调节
包裹框无论是MAX还是maya跟rizomUV都需要调节一下,最好包裹住高模,如果高模上的细节太突出 包裹框要放很大才能盖住,那这么突出的结构,何不考虑低模也做出结构来呢。
5模型规范整理
模型坐标清零,删除历史,尽量保持模型干净,检查高低模法线方向,模型规范,可以避免很多奇怪的问题,也能减少系统资源消耗。检查高低模的坐标信息、旋转位移信息以及模型法线信息(MAX党注意下自己法线是不是绿了)。
6镜像共用UV的模型
对称模型对称一半的UV是否挪至其他UV象限,对称模型是否合并焊接,检查软硬边(光滑组)。
7关于低模倒角
重要的模型,低模可以考虑给一段倒角,这样在极端角度也不会有太过明显的黑边效果。
8贴图色彩空间
除了颜色图或者是反射都属于 sRGB (diffuse reflection/colour , specular reflection/colour) ,用于计算强弱的其他黑白图以及法线贴图都属于linear (normal map, roughness, metallic, ambient occlusion 等等.)
以上八点是常见的出问题的环节,下面是对average normal的一些解释翻译。关于烘焙法线中的 average normal
substance 烘焙设置
法线烘焙依靠的是一种投射技术,通过cage包裹框或者是Frontal Distance设置。如果勾选了Averaged Normal ,模型法线计算方式则是平均的。
Frontal Distance 设置可以创建一个虚拟的封套(envelope),封套就是射线投射方向,距离是从低模到封套来计算的,方向则是由Averaged Normal来决定的。只要开启了 Averaged Normal,封套就是连续的。
Use Cage 则允许你通过一个网格模型决定射线从哪里开始投射,取代上面的Frontal Distance设置方式。高低模之间匹配度越是不够,Frontal Distance的值就需要给的更大一些。而射线是由两个值来定义的,Frontal 代表射线开始,Rear Distance代表射线在哪里结束。
如果射线长度太长了,就有可能照射到其他的临近模型,所以通过一种给高低模匹配命名后缀格式的方式,来解决这个问题,只需要在高模名称后缀加上“_high”低模后缀加上“_low”,就能很好的避免这一问题(高低模匹配不用再炸开烘焙了)。
BBox relative 代表距离的缩放值。勾选时,距离值会被限制在0-1区间,此时距离被定义成是Bounding box大小的一个百分比,若不勾选,则距离值就跟物体本身实际大小有关系了。
若Ignor Backface勾选,则射线在照射到模型背面时会停止。
当Averaged Normals 取消勾选时,网格物体法线就会被启用,如果网格物体有硬边,就会直接导致在计算法线的时候丢失信息或者出现黑色接缝。
当关闭 Averaged Normals时,射线此时与物体表面法线成平行状态。
如果Averaged Normals关闭时,网格又是设置成软边(同一个光滑组),计算的时候就不会出现接缝。
Average Normal勾选与否其实主要是看你是要模型高模圆边效果,还是说要保证一些面片上细节法线位置不会偏移,一般两种效果各有取舍。
上面这张图其实就是解决的这个问题,通过烘焙一张勾选average normal设置的,圆边细节但是表面细节会有偏移,与另一张没有勾选average normal设置的法线融合(表面细节是正的),但是我们不需要它的圆边效果,因为我们一般都会设置软硬边,没勾选average normal的法线是边缘接缝的。
这里SD中有一个节点刚好解决了这个问题,当然SP通过curverture应该也是能做到,方法思路最后都是一样的——得到边缘蒙版。
以上是两种法线
然后将 两种法线结合,得到带有无偏移正确细节法线但是有边缘接缝的模型。所以我们需要一张mask来遮掉这张未勾选average normal法线贴图的边缘法线细节。
在SD中渲染一张黑白图
通过SD中 edge detect节点提取边缘遮罩,最后融合两种法线效果:
经过别的方法测试,SP中应该也是可以通过滤镜得到类似的效果:
在SD中测试 用曲率图curverture+histogram scan+invert 反转(这几个操作都是考虑sp具有的功能)得到边缘遮罩,可以去试试。
说到最后,八猴还是很不错的烘焙软件,自带的功能完全能搞定上述这个问题:
操作起来实时显示效果,ctrl +B刷新烘焙效果显示,已经是非常方便了。
- End -