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三角面构成一致。

☃️拓扑

这个晚点再说,还没捋顺呢= -=

零散的注意事项

导出模型时要注意以下规范事项:

  1. 清除历史记录
  2. 模型坐标归零
  3. 模型单位与引擎统一
  4. 轴向与引擎统一

展UV

工具:Rizom UV, UV Layout

  1. 精度配比:根据精细度决定分配UV的分辨率,例如视线看不到的地方可以粗糙一些,以此节省UV空间。
  2. UV复用:节省UV空间,比如对称几何体可以只做一半贴图(当然也要考虑图形学上是否允许复用,例如烘焙时可能会要求UV全展)。
  3. UV padding:给予贴图各个mesh间一定间隔,防止导入uv压缩后像素溢出。
  4. 贴图精度:要注意和整个场景进行比对得出,制定合适的贴图精度。(每pixel/每m)

SP贴图导出

SP的贴图导出功能就很神奇,因为可以自定义各个通道代表的信息,可以实现把AO、rough、metallic等塞在一张图里,自由度极高。

不过要注意的是到处页面右侧有三个面板——输入贴图、模型贴图、转换贴图。

…emmm时隔作业交上去一天之久我才发现SP导出的贴图是输入贴图…QAQ我完了QAQ

☃️关于DX和GL的法线贴图差异

DX和GL的法线贴图对G通道的定义不同。如下图,基本上凹凸部分都是相反的,因为dx和gl在G通道上是相反的。(所以substance随处可见的opengl/dx选项要注意点咯)


扩展阅读

  1. Polycount.wiki-Texture Baking

ps. blender还是很香的,max展UV烘焙卡得不行不知道是我的问题还是电脑问题→_→