Modeling注意事项
把初版的模型重新修整了一下,感觉终于能看了…晚点补上踩坑心路…
3D建模流程
首先制作中模,中模大致就是基本几何体形状外加一些平滑角度的面,其意义在于承上启下——既能添加细节做成高模,又能方便减面做成低模。
高模存在的意义是为了获取可以应用到低模上的高精度法线信息。这一阶段的面数点数可以不用慌做到足够高,根据需求能细致到可以在模型上随意雕刻的程度。制作完毕后对其进行烘焙,获得法线贴图,再应用到低模上,从而可以用最低面数实现近似高模的效果。
低模阶段需要控制三角面,这个在项目中一般有具体面数规定,注意几何面拓扑的合理性,低模的面角度不能和高模差异过大,否则烘法线时会有奇怪边界(详见Cage)。
几个要点
平滑组/软硬边
平滑组用于决定面的边界是平滑渲染还是直接硬边。同组面间平滑渲染。3dsmax中平滑组实现,maya中叫软硬边。
例如之前制作的lantern模型,把手部分需要分多个平滑组,后续进行turbosmooth时才会形成需要的棱角效果。
法线烘焙
0.0之前做过的吉普力云朵用到的就是法线烘焙的原理。从一个模型上获取法线信息然后投射到另一个模型上。法线烘焙则是从高模获取法线信息投射到低模上,从而低模可以以尽可能少的面数达成尽可能丰富细致的渲染效果。
☃️烘焙原理
烘焙时,低模A的表面会向外发射射线(法线),当抵达高模B时,会记录B的表面信息(如法线、AO),并根据模型A的贴图坐标将信息保存到贴图中。
☃️Cage
polycount的这张图很形象地说明了法线烘焙中常见的法线采样错误问题——硬边的交界点会有两条法线射出,大于平角会引起法线采样缺失,小于平角会造成重复采样,最终都会得到不够正确的法线信息。
为解决以上问题,经常会提到一个叫cage的东西。按polycount wiki的说法,cage在法线流程中有两个含义,一是basemesh的低模版(低模的低模版),二是法线法线中用于发射法线的mesh,不过通常大家提起cage的时候指的都是第二个含义(上图白色的包裹盒)。
Cage通常是沿着低模法线向外扩展形成一个”外壳”,包裹住高模。dcc通常都有平滑法线的功能,对cage边上的法线进行平滑,会根据相邻面的向量进行加权平均计算,即cage可以看作低模的一个软边外壳。避免因为硬边法线重复采样或者采样确实带来的明显问题。但是仍然要注意在建低模时避免过于明显的折角。
☃️抗锯齿
最终烘焙时记得开抗锯齿。
布线
☃️三角化
建模过程中通常用的都是四角面,但是最终使用模型时会转化为三角面,通过ddc工具自动转化三角面后需要检查布线,因为三角化未必会按照你所想生成三角面。尤其涉及贴图复用时,需要确保复用的多个mesh三角面构成一致。
☃️拓扑
这个晚点再说,还没捋顺呢= -=
零散的注意事项
导出模型时要注意以下规范事项:
- 清除历史记录
- 模型坐标归零
- 模型单位与引擎统一
- 轴向与引擎统一
展UV
工具:Rizom UV, UV Layout
- 精度配比:根据精细度决定分配UV的分辨率,例如视线看不到的地方可以粗糙一些,以此节省UV空间。
- UV复用:节省UV空间,比如对称几何体可以只做一半贴图(当然也要考虑图形学上是否允许复用,例如烘焙时可能会要求UV全展)。
- UV padding:给予贴图各个mesh间一定间隔,防止导入uv压缩后像素溢出。
- 贴图精度:要注意和整个场景进行比对得出,制定合适的贴图精度。(每pixel/每m)
SP贴图导出
SP的贴图导出功能就很神奇,因为可以自定义各个通道代表的信息,可以实现把AO、rough、metallic等塞在一张图里,自由度极高。
不过要注意的是到处页面右侧有三个面板——输入贴图、模型贴图、转换贴图。
- 模型贴图:针对导入原模型烘焙的贴图。
- 输入贴图:SP中绘制贴图。
- 转换贴图:综合输入贴图和模型贴图,即最终效果贴图。
…emmm时隔作业交上去一天之久我才发现SP导出的贴图是输入贴图…QAQ我完了QAQ
☃️关于DX和GL的法线贴图差异
DX和GL的法线贴图对G通道的定义不同。如下图,基本上凹凸部分都是相反的,因为dx和gl在G通道上是相反的。(所以substance随处可见的opengl/dx选项要注意点咯)
扩展阅读
ps. blender还是很香的,max展UV烘焙卡得不行不知道是我的问题还是电脑问题→_→