用最难的方式学Blender——重拓扑

投稿作者:NaiveArtist 

所谓重拓扑,就是改善雕刻出模型的网格性质,使得各个面尽量都是四边形面。之所以要这样,是因为现在的细分修改器,对四边形的细分效果最好,而对于三角面等的细分效果较差,会产生很难看的结果。

稍加思考,就可以将此抽象出一个问题:

一个n棱柱,能否只用四边形填充,使得其渐渐变成一个四棱柱?

这也就是这个问题的核心,最终的目的是要得到一个方法,一个通用的方法,对其进行一些合法的操作,使得其变成四棱柱。

如图中的六棱柱,通过将两个四边形融合,便将之合法的变成了一个四棱柱:

用最难的方式学Blender——重拓扑

而五棱柱则不行,即:

用最难的方式学Blender——重拓扑
它只能约化为一个三棱柱,最后还有一个三角面。

现在都只是简单的从例子归纳,考虑一个更加抽象的问题,即将之平展:
用最难的方式学Blender——重拓扑
由上图,可以看出,三个面可以减为一个面,即n=n2

而最理想的情况,是存在n=n1的合法变换,这样,对于任意面,都可以将之减为4面。

我们考虑这样的一个情况:
用最难的方式学Blender——重拓扑

不严格的,可以说这是两面转一面的唯一方法(且在二维上“合法”),其他方法应当都是这种方法的简单对称。

这个方法乍看起来是可以的,但是,若考虑一个三维实体,其左边与右边其实是相连的,而其左下角与右下角是无法对接的,故n1的变换是不存在的。

所以,我们可以论证得到:

任意n边柱体,若n是偶数,那么总可以“合法”地将之变为四边形;而若n是奇数,那么至少要付出一个三角形的代价,才能将之变为四边形,或者,在最后阶段变为三角面。

先前讨论的都是柱体,看起来可能比较特殊,但仔细分析,会发现它是很容易推广的。

推论

推论1. 一个n(n>3)边形窗口,n为偶数的时候,总可以只用四边形就将之封闭。

用最难的方式学Blender——重拓扑

推论2. 一个m枝条链式的分叉结构,若满足ini=2k,kZ,总可以将之连接到一个四棱柱上。

这里得到这个结论,因为满足上述条件的枝条,所形成的一个环的边数,也是偶数,显然可以将之变为四棱柱。

用最难的方式学Blender——重拓扑

推论3. 若一个球体上开了N个口,每个口皆是以2k条边围成的,那么总能找到一个方法,使得只用四边形便可生成与之拓扑等价的曲面。

即将各个口皆转换为四条边围绕的,之后生成的总边数,总是偶数,那么自然可以将剩余的口封闭:

用最难的方式学Blender——重拓扑

推论4. 若球体上开了N个口,且有ini=2k,kZ,那么总能找到一个方法,使得只用四边形便可生成与之拓扑等价的曲面。

各口之外延用边连接之后,每次都使得总边数n=n2,故奇偶性不变,依据推论2,可以围成与之拓扑等价的曲面。
用最难的方式学Blender——重拓扑

推论5. 对于任意亏格的实体,若其主体可以由四边形围成,那么推论4的结论依然适用。

即通过将此实体上挖去一个窗口,那么这个窗口的边数必然是偶数个,根据初始结论,任意偶数边的管道可以“合法”地连接上去。对于4中的一般情形,同样适用。

用最难的方式学Blender——重拓扑

对于重拓扑的建议

根据开始得到的结论,以及五大推论,可以对重拓扑给出几条建议。

首先,一个管状物体,尽可能使得边数为偶数,这样不会出现三角面。

其次,多个管状物体融合的时候,比如五个手指这样的部分,可以按照上边的思路,逐步减少边数,从而将之融合,只要各个物体边数满足:

ini=2k,kZ

便可以放心地进行各种操作,而无需担心三角面的问题。

最后,在制作人体、动物身体的过程中,常常会要将腿脚连接到躯干上,这时,也要注意,要使得连接处的总边数,满足:

ini=2k,kZ

这样就可以保证,能找到方法消除三角面。而本文也给出了一个启发式的方法,即将偶数边减为四边形,将奇数边减为五边形,从而可以较为容易地将之与主体融合。

注释


  1. 这里的合法,意味着,在最终的模型之中,只能找到四边形。
  2. 所谓外延边,即将管状物体边沿之处延伸,其最外一圈的边。
  3. 亏格,拓扑学概念,可以简单看作曲面上孔洞的数量,参阅:百度百科:亏格