Blender建模:对于模型布线的一些思考
为什么注意模型布线
因为点、线、面是3D软件进行后续计算的单位。在最基本的建模工作结束后,后续的绘制贴图、拓补成高模或低模、模型绑定、制作动画、光线渲染,本质都是在原有模型的基础上进行进一步的图形学计算,而这种计算与点的坐标、面的构成方式有最直接的联系。一个布线合理的模型,会对接下来的工作产生巨大的便利。而不合理的布线,也往往会在后面的工作中导致奇奇怪怪的效果问题。
下面是几个合理布线的基本标准:
- 模型中的面只允许出现四边面和三角面,且要尽量减少三角面的使用
- 模型的布线要尽量符合运动的流向,方便制作动画效果(这么说有点抽象,更具体的描述可以是受力的方向,运动效果的方向)
- 四边面的四个点要尽量在一个平面上
- 尽量减少极点,如五极点(或称为五星点)、三极点,或保证极点不再关键转折处。
- 布线尽量做到横平竖直,均匀分布,简单美观。
下面我将结合自己的思考展开讲解。
为什么要减少三角面的出现
四边面和三角面是3D软件表现面的两种最常见的形式。通常,我们在建模时使用四边面进行建模,方便制作人员对模型结构进行理解,并进行编辑调整。但实际在GPU进行底层计算时,读取的都是三角面,原因也很简单,因为三个点确定一个平面。四边形和其他多边形都有可能因为建模人员的失误产生几个顶点并不处于同一平面上的现象,这非常常见,因此在渲染时可能产生各种问题。
但对于建模师在进行建模工作时,减少三角面的出现还是非常必要的,主要原因为:
- 三角面会在循环边时断掉,导致不好进行环切操作,也不利于模型细分。
- 三角面不利于进行展UV。
- 在有形变的动画中,三角面会变形。因此,生物建模(或其他柔体)最好使用四边面,而硬表面由于动画效果大多规律不产生形变,可以有三角面。
下面我将依次进行解释
循环边的原理
Blender是如何判断循环边的呢?在当前选中的边所构成的平面上,能找到有且只有一个对边的前提下,这个对边就是循环边。
三角形的每个边没有对边,除了四边形以外的其他多边形都有多个对边,因此使用环切工具时,切到这些面上就会自动停止。
如下图所示。
由于三角面不利于进行环切,模型细分修改器的原理与环切有部分类似,因此三角面过多时不利于进行模型细分,故不推荐在建模时使用过多的三角面。
展UV时遇到三角面(待补充,还没学到展UV)
动画制作中三角面的形变(待补充,还没学到动画制作)
如下图所示,左边的由四边面构成,右边的圆柱体由三角面构成。由于两个模型的段数都很低,因此在弯折时有非常明显的折痕。
给两个模型都添加上细分修改器,段数x2,则两个模型的转角处看起来都变得光滑。
但是如果关闭结构线,则会发现左边的模型依旧是光滑的,但右边模型的表面变得凹凸不平。这是因为三角面做细分后的拓补机构比较奇怪,无法保证光滑。
此外对于人体的关节,不同的布线方法会导致运动后的形变不同,三角面在其中有时能导致更好的效果。如下图所示
四边面的四个点尽量在同一平面上
法线的计算
在blender中创建一个平面,进入编辑模式,挪动其中一个顶点的位置使之脱离原本的平面。
从这个角度看,这四个点依旧像是在同一个平面上,没有任何折痕,但是这显然是不符合常识的。如果我们换一个角度,会发现这四个点确实是不在一个平面上了。
那为什么看起来还是平坦的呢?因为平面的颜色是根据平面的法线计算的,我们打开法线的显示,会发现实际上是用的平均法线,而不是弯折后两个平面的各自的法线。
面是否平坦节点
blender中有一个网格节点,是“面是否平坦(Face-is-planar)”节点,正如字面意思,可以用来判断面是否平坦。官方文档如下面是否平坦。
如下图所示,打开几何节点面板,然后进行如下操作。
几个节点的位置:
组输入:添加->输入->群组->组输入
组输出:添加->输出->组输出
面是否平坦:添加->网格->读取->面是否平坦
预览器:添加->输出->预览器
复制这个平面,在编辑模式,在编辑模式下调整其中一个顶点使之与其他三个顶点不在一个平面上,然后同样的方法查看它是否平坦,发现该面为黑色,说明判定不平坦。
如何处理不平坦的面
对于下图中四个顶点不在同一平面上的面,有常见的三种方法将它们尽量回到同一个平面上。
- 缩放功能:希望让所有平面都落在由x轴和y轴构成的平面上,则使用快捷键S -> z -> 0,可以达到该效果,效果如下。
- 顶点平滑:选中需要平滑的顶点,然后右键->平滑顶点,效果如下。
- 雕刻模式下的平滑笔刷:进入雕刻模式,找到平滑笔刷,刷一刷。本例子中只有一个面,是比较极端的场景,刷了也没什么效果,实际上在复杂的模型中还是挺好用的。
建模布线出现了极点
为什么要尽量避免极点的出现
在如下图所示的模型中,被标出位置的点有至少五根边或三根边与之相连,这就是一个五极点/三极点。
如果对这个模型添加细分修改器,则会出现如下的效果。可以发现,模型的边缘已经完全被平滑掉了,破坏了原本的结构。
如何避免极点
极点的出现显然是无法避免的,但我们可以通过一些手段,使极点尽量不要出现在模型的关键转折处,而是使之转移到平面上,这样就能保证模型原本的结构没有太大变化。
一种常见的解决方法就是卡边,也就是卡出锐边,步骤如下所示。
使用环切工具,在转折处增加循环边
然后对转折处进行如下图所示的切割。
再将一些边容并在一起。可以看到,五极点被转移到平面上了。
再加上曲面细分修改器,则效果如下。
其他还有很多避免方法,可以参考下面的教程3dsmax多边形建模五星点详解