次世代全流程建模学习
- 06 8 月, 2023
- by
- pladmin
引言
经过练习,次世代流程的建模路线基本走通了。整个流程浅显易懂,但因为涉及多个软件之间交换模型、贴图的行为,所以也存在着许多兼容方面的坑。这篇blog主要通过一个简单案例,来解析次世代流程的步骤和要点。
Part0. 流程回顾
次世代流程主要分为几步:1、搭建中模;2、材质拆分与uv拆分;3、雕刻高模;4、优化低模;5、烘焙法线;6、贴图制作;7、渲染出图;8、后期合成(可选)。
这里面有几个概念还是要明确的。首先如何区分高、中、低模?我们正常情况下直接做出来的硬表面模型,在完成了倒角、卡线等细化操作后,得到的就是“中模”;接下来我们对它进行多次细分,模型面数会翻上百倍,此时用雕刻软件进行细节上的刻画,得到的就是“高模”;最后我们将中模的一些不必要的布线、大部分卡线全部删除,在保证外形的情况下得到布线最精简的模型,就是“低模”。
那么高、中、低模的意义分别是什么呢?考虑到游戏的性能,我们一般只会将低模应用到游戏引擎中。由于低模的结构过于简单,外观很扁平,所以需要用法线贴图里提高它的表面质感。法线贴图从哪里来呢?自然不可能是画的,而是需要我们制作一个面数非常高的模型版本(即高模),从它的身上烘焙一份法线数据出来,再应用给低模,这就是高模的意义。然而高模无法由低模直接细分得到,需要先对模型进行卡线、倒角 做成中模,才能直接细分成高模。这就是高、中、低模的概念和意义,下图是三者的布线对比:
我习惯上喜欢用blender、maya、zbrush、substance painter、Marmoset Toolbag(八猴)这几个软件来走流程,有时遇到怪奇的花纹材质时可能还需要使用substance designer来制作通用纹理,遇到缠绕的布料要用marvelous designer来模拟布料形状。不过sd和md不到万不得已时用不上,毕竟sd纹理可以在网上白嫖,md的物理功能也在blender中有下位替代。
本篇blog为了便于演示,我选择了一个难度较低、流程较明确的案例:CF中的轻型军用手斧,参考图如下:
下面演示一下各个流程。
Part1. 搭建中模
硬表面建模的基本功,所涉及的操作并不复杂,无非就是拽点、挤出线、环切面、内插面这些挤出操作,极偶尔会涉及自由切刀。不过最后会涉及卡线,这里坑比较多。
我们可以从握柄开始做,直接套长方体就可以:
接下来是拐角处,就是拉一个大的长方形,内部多次进行环切并拽点即可。在做完外层后,内插一个内层出来即可:
外面这层一身凸点的柄也是同理,只不过需要更多的环切次数,来还原底部的两个尖端:
接下来是硬表面部分的最大症结,即刀锋中间的这个迷彩层。它的右下部分有一个圆滑的角度,算得上是一个结构难点。这里简单展示一下我的分析布线,并非最优解,大家可以自行探索。
最后是刀锋,结构相对简单一些,先定外形,然后内插,最后再环切来定位关键顶点:
螺丝部分太简单,略了。接下来我们要进行卡线,我的建议是直接打开曲面细分修改器,刚打开修改器时模型会发生严重的塌陷:
我们接下来就要通过卡线来拯救这个塌陷的模型。示例如下,在中间进行一次环切,将切线向左拉,就可以将左侧的线变直:
同理,我们要从不同的位置、不同的方向重复环切,直到将模型的塌陷状态全部修复:
好了,刀锋部分的中模就完成了。同理,其他部分也要给表面细分修改器,然后挨个进行卡线修复,直到整个模型在细分的情况下完全不出现形态崩坏:
中模基本就完成了。这里可能会有人问,迷彩层上面的圆孔还没做啊?事实上这种圆孔我不推荐在中模阶段做,因为这个圆孔是典型的布尔(破坏型建模),会产生很崩坏的布线。即使通过拉顶点的方式将布线勉强修复,一旦上了细分,依然会发生严重的崩坏:
能修吗?能。要多久?至少仨小时。。。所以我很不推荐在中模玩布尔,不妨等到低模完成后再在低模上挖这些洞。
现在中模就做完了吗?并不,此时要检查三件事:
1、多次细分以后,模型是否完全不会塌陷?是否有卡线失败的位置?
2、是否存在超过四边的面?是否在关键部位存在三角面?
3、是否出现法线倒转的面?
只有将这几个坑点全部避开,中模才算正式完工。
Part2. 材质拆分与uv拆分
拆材质比较简单,将手斧的不同部分给不同的材质球即可。下面说说uv拆分。
那么为什么要做高模之前拆uv呢?假如我们先做高模再做uv,高模会提供极其恐怖的面数,此时要手动拆的uv数量就更加恐怖了。如果先在中模做好uv,再放到高模细分,zbrush是可以根据中模的uv来自动计算高模中 细分出来的面的uv的,就很方便。
手斧的uv其实拆起来相当简单,因为它很薄,所以我们有很多种拆分方式,在blender中我总结了3种:
1、标记缝合边式拆分:
我们选中最外层的一圈环线,将它作为展开的剪切缝合线。
为什么选择了最外层的环线呢?因为我们知道,剪切线上一般会发生纹理的突变(因为uv被拆开了会离得很远),而边缘部分是 即使发生突变也不容易被察觉的地方,因此我们可以选择从这里展开:
这是最朴实的做法,当然,很多人为了偷懒,连缝合边都懒得拆,所以接下来的两种方法都特别简单,基本上是一键式的:
2、blender的智能uv拆分
blender的智能uv尚且功力不足,但是处理这种超薄模型还是给力的,设置如下:
然后我们就可以看到 blender通过自动计算折角,来自动选择缝合边并撕开:
整体没有问题,但是个别面的面积太小了,需要手动拉一拉。
3、视角投影式拆分
最暴力的做法,没有之一!这种做法只对超薄的扁平模型有效:
讲究的就是个所见即所得!拆出来的uv很平展,没有断裂,但有一个缺点就是正面和背面的uv会重叠,解决办法是 对正面和背面分别做一次视角投影拆分,然后将两部分从uv图上分离开。
4、Maya的智能uv拆分
Maya至今仍是最强的拆uv的dcc工具,尤其是拆一体式模型十分智能,这点确实比blender要强一个档,大家自行感受:
不得不说,maya的uv拆分真的可以用“美学”一词来概括了orz
不过对于简单的模型,我还是倾向于直接在blender里做,毕竟不涉及模型的导入导出,可以规避很多兼容性的问题。
Part3.雕刻高模
zbrush,启动!先将我们的中模导入,生成多边形网格数据。如果此时提示:你的网格并非都是四边形,那说明你的中模做的还不到位,回去检查是否存在五边面、六边面甚至32边面(也就是圆),将他们手动剖分成四边面或三角面。
第一步我们直接在“几何体编辑”中对它进行细分,最好细分4-5次,此时用笔刷雕刻能够有精细的感觉。如下图所示,细分不够的话会像左图,没法雕出很精细的刻痕,而细分到位了就可以雕出右图的感觉:
接下来简单说几个常用的笔刷。
standard笔刷适合用来做小的凸点和凹点:
move笔刷适合用来做边缘部分的推拉:
clay笔刷时候用来给表面黏着一层平整的雕塑:
damStandard笔刷适合做划痕:
blob笔刷适合做一些大面积的轻微扰动:
认识了这些笔刷后,可以对斧头做一些简单的雕刻了。我的经验一般是:边缘处可以酌情使用move改变走势,金属表面可以做一些damStandard的划痕,非金属物件可以用blob或者standard做一些小的凸点和凹点,对于特别脏的、年久失修的器物可以用clay雕一层土、锈之类的痕迹。感受一下雕刻后和雕刻前的差异:
雕刻过程中可以动态调整细分级数,不要低到雕刻痕迹太粗糙,也不要高到电脑开始卡,一般保持4-5级细分就好了。过程中切忌大改外形、移动旋转模型,会导致后续烘焙法线失败!
4、优化低模
首先我们把中模上的表面细分修改器删除,然后适当将卡好的线融并掉。适当留少量的卡线可以体现出倒角的效果,不会让低模看起来太诡异。之后的低、中、高模布线大概是这个样子:
低模其实可以进一步优化,将不影响外形的布线全部融并,具体优化到什么程度需要看游戏是什么体量的,如果游戏的优化太差了那还是能少点面就少点面吧。。。
5、烘焙法线
这一步主要是使用sp来烘焙法线等信息。我们需要先导入高模,然后在左侧勾选需要烘焙的贴图类型。一般来说,Normal、ID、AO都是必需烘焙的,对之后的材质结果有非常大的影响。至于World space normal几乎没用,剩下的Curvature、Position、厚度其实是推荐烘焙的,因为sp有一些智能材质和智能遮罩,它们会根据模型的厚度信息、位置信息、曲率信息来自动规划各个材质层的分布,提前烘焙好这些信息可以让智能材质物尽其用。
烘焙完以后要检查几件事:
1、法线是否正常?如果出现不正常的法线,模型身上的光照效果出现突变、撕裂,这意味着高模有着不正确的拓扑,追溯到最早应该是中模的拓扑有严重bug;
2、AO是否正常?如果出现不正常的AO,模型身上会出现奇怪的黑色痕迹,这意味着模型的部分面可能存在法线翻转的bug;
3、各个材质层是否都正常?如果出现不正常的材质层效果,比如不同材质之间互相串色,这意味着uv可能存在重叠bug。
此时我们应该看到,我们导入的低模已经拥有了高模的一些雕刻细节,并且受ao影响,模型表面也有了亮暗的调子。
6、贴图制作
这部分就是sp的基本功了,对于手斧这种 金属和非金属材质都很典型的例子,只需要叠几层智能材质就ok了。
我们先来看手柄部分:
手柄部分就是一层脏钢智能材质 套一层灰尘。金属度不要给得太高,然后握把处的脏迹要突出一些(毕竟经常被人握)
刀拐角处的材质比较巧,有现成的智能材质,不过需要预先调节一下纹理大小:
可以再额外调节一下纹理上的黑白印记的分布,不要太集中也不要太稀疏。
刀锋的材质也很简单,只需要一层带锈迹的铁即可,不过需要稍微调一下智能材质里各个涂层的属性,例如脏迹、灰尘、表面起伏细节等,给的不要太高,不然看起来刀锋会很钝:
最后是迷彩,好在sp中配了迷彩的预设,不过颜色都是花花绿绿的。我们可以通过调节智能材质的属性,来设置成黑白色调的迷彩:
这样材质就做的差不多了。其实材质部分可以探讨的内容很多,但是篇幅限制原因,只能简单说下用了哪些智能材质,图层顺序什么样。至于具体要调哪些参数、怎么调,只能根据大家自己的审美来完善了。
接下来我们导出这些贴图:
这样贴图就准备齐全了。
7、渲染出图
回blender的第一件事是把布尔做了,用布尔工具在低模手斧上挖掉那7个洞,挖完洞以后要将面三角化,不然会产生大量的5+边面:
然后我们开始贴材质。一共n套材质,它们的节点大概都是这样子:
就这5张图,base color、ao、roughness、metallic、normal,至于heightmap几乎只能用在高模上,没什么意义,可以丢掉。在这里我们依然可以做一点简单的调整,比如如果粗糙度整体偏大/小了,我们可以加一个运算节点来修改贴图结果。
环境光我使用的是默认的studio光照:
接下来我们开始渲染。渲染有两个选择:1、实时渲染eevee;2、光追渲染cycles。对于这种环境空旷、拓扑结构简单的模型,其实两者的渲染结果不会有太大差异:
能看出哪个是实时渲染,哪个是光追吗?看不出来就对了。
不过blender的渲染功能算不上优秀,最终还是需要导入到Marmoset Toolbag(八猴)中渲染。将模型和贴图导入到八猴中,将贴图配好:
注意,它的贴图顺序和一般渲染器是不一样的,所以要注意看每个贴图的英文,不要贴错位置了。尤其是roughness和metallic很容易贴反。
对于环境光,我们可以自由更换环境贴图,不过八猴默认的就是studio光,还是挺适合这把手斧的,所以我没换,只是调整了下灯光的强度信息:
在这张环境贴图上点击像素,可以在当前位置放置一盏光源。我在大灯上面补了个光源,并将这个光源的强度拉大、将环境贴图整体的曝光降低,相比于直接使用环境贴图(上图)这样可以照出一点层次感(下图):
8、后期合成
对于手斧来说,只有后期,没有合成,所以用不上nuke这类软件。。。直接用ps或者光影魔术手糊一下就完事了。
一般来说就是补一下对比度来加强金属感,同时调整一下亮度和曝光度来控制光影,最后糊个滤镜就完事了:
注意:金属类器件的渲染图 尽量不要动饱和度,即使动也是往低拉。
结语
轻型军用手斧是相对比较简单的次世代流程案例,但是麻雀虽小 五脏俱全,该有的流程它倒是一个都不落,因此我选择通过该案例来作解析。当然,了解流程还只是个起点,后续的硬表面布线、卡线、(布料模拟)、uv拆分、雕刻、烘焙、纹理绘制、材质混叠、渲染打光、后期合成都是需要大量练习的。