Subdivison primer/AboutSDPolymodeling

Wikipedia,自由的百科全书

Contents

不谈NURBS

现如今,从把平面草图变成立体建筑的CAD制图技术软件,到‘虚拟陶工旋盘’程序(virtual potters wheel)。使用计算机进行三维模型的创作方法已经有很多很多。这篇入门讲述的主要是关于使用细分表面法来进行多边形建模。所以并不包括它和另一种叫做NURBS的方法的对比。

NURBS,就是‘非均匀有理B样条’(non uniform rational B-spline)的缩写。是在计算机图形学中常用的数学模型。一条NURBS曲线用一个带比重控制点和曲线的次序以及一个节点向量的集合定义。NURBS是B-样条和贝塞尔曲线两者的推广,其主要差别在于控制点的权重,这使它们成为有理的(非有理B-样条是有理B-样条的特殊情形,实际上大多数的NURBS曲线都是无理的)。接下来,为什么会是这样的呢?

到此打住!停止在这里讨论这些东西!

原因如下:

细分表面多边形建模在NURBS之后出现。并且,通常认为,使用多边形建模比使用样条建模更流畅,更自由。并且,主流电影工作室都采用细分多边形建模的方式,比如Pixar就是早期开始使用它的一个公司。

附注:

这里(Solid Model Solutions)有一些关于细分表面和NURBS的有趣的资料。

这里是维基百科上的关于NURBS的资料。包括NURBS的历史,应用,技术上的细节等等。

关于‘什么是NURBS?’,‘现如今NURBS还有哪些应用?’等等问题,请自行网上查阅。

译注:

维基百科有中文资料,在这里。请注意,同上面的英文版本一样,很有可能你不能直接访问,这种情况下,请使用代理。

什么是细分建模

细分表面建模就是从一个低面数的粗糙模型,通过细分表面来建造一个光滑的模型。

在下面的例子里,可以看到,图1是原物体,也是控制物体。有的程序可以一步一步的分阶段的细分(图2)。而有的程序则默认就自动设置一个比较高的细分级别(图3)。请注意,在图2和图3中,不管是一步一步的细分还是一下子细分到很高的程度,都有一个正方体的轮廓,来显示这个正方体才是原物体,尽管通过细分它看上去像一个球体,它仍然是那个正方体。在图4和图5中,显示的是一个稍微复杂些的例子。

image:Subdexample3a.jpg

附注:

细分表面用于从任意网格创建光滑的模型。细分表面定义为一个无穷细化过程的极限。它们由Edwin Catmull和Jim Clark,还有Daniel Doo和Malcom Sabin在1978年同时引入。在1995年之前该方法没有什么进展,直到Ulrich Reif解决了细分表面在特殊点附近的行为。

这些是教课书上的说法。这样来说,对于初学者,多边形建模岂不是很麻烦?

好好好,说点通俗的。要尽可能的减少多边形的数量。过多的多边形会很麻烦:对三维游戏来说很麻烦,因为大量的多边形会占用很多的内存;对建模和动画也很麻烦,因为大亮的多边形意味着复杂的场景和漫长的渲染时间。

如前所述,细分的模型外面的轮廓线,显示的是这个平滑的模型的结构。模型通过不同的细分算法来实现细分效果。(所谓算法就是实现这个平滑过程的数学方法。)而细分后的平滑模型用来渲染。

image:Subdexample4.jpg

有时候有必要在细分的模式下编辑模型,因为这样你调节就是最终的效果。但是直接编辑细分后的多边形也有不好的一面:这时候往往不能把精力集中在物体的基本结构上。总之,在建模的时候应该是来回的切换这两种模式,否则到最后得到的就是结构零乱的多边形。

什么是‘零乱的’多边形?下一节将谈到这个问题。

凌乱的网格

那好,什么才是零乱的多边形呢?

这里指的凌乱是说:一个多边形在细分之后非常好,但是在未细分的模式下,是凌乱的。也就是说凌乱的多边形的点,边或者是面,在很多局部完全的相互交错穿插在一起,不利于选择和编辑。这种东西 看上去非常的‘凌乱’,更重要的是在后续的工作比如展开贴图坐标或者是动画的时候,会产生严重的问题。

Image:Subdexample5.jpg

比如:

  • 展开贴图坐标的时候需要更多个工作来避免贴图的错位和拉伸。(多数软件要求展开的贴图坐标中没有重合的点。)
  • 当给这个模型绑定骨骼的时候,通常来说,蒙皮的过程就是编辑每一块骨骼影响的点的范围以及程度。如果所有的点都乱作一团,无疑会使工作更加困难。当然,这都是因软件而异的。
译注:

至少,更多的重合的点就需要更多的时间来铺平这些点。而且的确,在需要选择那些重合在一起的点的时候,会比较麻烦。
但是。这种‘凌乱的多边形’是否真的是那么的‘乱’。有待进一步讨论

这个问题在论坛当中引起了一些讨论。所以如果你有什么看法,也请把它们发表到论坛上的这个帖子中:
原作者网站中关于'凌乱'的帖子

Catmull Clark算法还是Doo-Sabin算法

细分的算法(软件用来做细分的数学方法)有多种,并且看来都是以发明这种算法的聪明的家伙的名字命名的。用的最多的算法便是Catmull-Clark,这种细分方式可以在大部分三维软件当中找到。以细分做基础的ZBrush,实际上也是使用这种算法。其实用户并不需要了解这些算法,除非你想去改进这种算法或者去开发软件。

附注:

这里仍然是维基百科上的关于这些算法,还有Dr.Edwin Catmull同志的介绍。但是,这次没那么幸运,没有中文版。

边环(Edge Loops)

这部分正在重写,关于更新,请关注这个帖子

Image:Subdexample33a.jpg

Image:Subdexample33b.jpg

Image:Subdexample33c.jpg

关于边的循环的很重要的一篇文章是:
derived-surfaces.pdf

3,4,5边多边形和极点(pole)

多边形的模型是由面组成的,面是有边和点组成。

目前越来越多的建模软件支持大于四条边的多边形。(即,N边型)

极点(pole)就是连接四条以上的边的点。

都很简单,不是吗?

Image:subdexample30.jpg

上图分别展示了:三边(角)形,四边形,N边形,极点。

下图也是一个例子:

  • 左边的模型全部是由四边形组成的。能得到可预知的细分结果;
  • 而右边的模型则是由N边形和三角形组成,这样的多边形细分的时候的结果是不顾定的,不可预知的;
  • 两个模型都包含五条边形成的‘极点’。

Image:subdexample29.jpg

那么,哪种方式才是正确的?论坛里到处是这类问题。这里列举一些我在过去几年里从各种书刊,杂志,学习资料当中收集到的答案:

全部用四边形建模的好处有:首先在细分的时候四边形能得到可预知的结果。其次,如果你的模型是100%的四边形,那就意味着你的模型是100%的三角形——需要的时候,只需要单机一个按钮就能把所有的四边形划分成三角形。所以一个有2000个面的模型,可以简单的稳定的转换成一个4000个三角形的模型。

如果你开始学习建模,那么就学习用四边形建模。通常来讲,建模分如下几个部分:概念图>建模>展开贴图坐标>绘制贴图>绑定骨骼/肌肉>设置动画。因此如果你是这条流水线当中的一员。你在建模的时候就有非常清晰的方向。如果对模型没什么要求还好,但是如果要求是使用有限个多边形,同时全部的是四边形,这时候如果你没学习过以这种方式建模的话,你就会手足无措,是吧。
当然,没有任何束缚的建模,成品包括三角形,四边形,五边形,N边型。像传统的雕刻一样不顾一切的把注意力集中到模型的外形上。有些特别的高手用这种方式也能建出很漂亮的模型。

并不是所有的程序都能处理N边形(边数大于四的多边形)。所以如果你希望你的模型能够兼容各种软件,各种平台,那就用只用四边形和三角形来建模。注意,即便是能处理N变形的软件在细分的时候也可能得到不可预计的错误结果。

一些建模方面的专家坚持这样一个信条“全部的使用四边形除非你不得不使用一个三角形”。尽可能的使用四边形来建模,不得不使用三角形的时候也要把它隐藏到一个不容易发现的地方。因为在细分的时候它会产生问题。这个问题通常是平滑表面上的一个琢面,或者是一个几何体的误差。

一个模型看起来不错,并且细分以后也不错。但是,请记住,当给这样的模型做动画,使这个模型动起来的时候,可能就没那么完美了。所以在建模的时候请谨记这点。

给游戏建模又如何呢。近年来游戏建模的一个大问题就是如何的限制多边形数。此时在程序上有一个办法就是使用图像来在低多边形的模型上模拟高的细节。这种专门的贴图叫做法线贴图。
法线贴图把高多边形模型上的细节转化成图片,然后应用到游戏当中的低多边形上去,这样既不会增加游戏当中的多边形,又能改善模型的外观。

我需要哪款三维软件?

关于这个问题,没有固定的答案(除非您是卖软件的)。

关于该使用什么样的软件,可以从以下几个方面考虑一下:

  • 我的预算有多少钱?如果答案是没钱,那么就从下面选择一款免费的软件。
  • 我需不需要建模以外的功能?如果需要,就选择一款全面的软件包。
  • 我有哪些选择?
websitewikipedia summarydemo/download
Free:
Wings 3Ddeveloper linkinfo linkdownload page
Blenderdeveloper linkinfo linkdownload page
FreeForm:
ZBrushdeveloper linkinfo linkdownload page
Amorphiumdeveloper linkinfo linkdownload page
Maya Artisandeveloper linkinfo linkdownload page
Polygon Modeler Only:
SILOdeveloper linkinfo linkdownload page
Hexagondeveloper linkinfo linkdownload page
Mododeveloper linkinfo linkdownload page
Miraideveloper linkinfo linkdownload page
Comprehensive solutions:
Mayadeveloper linkinfo linkdownload page
Lightwavedeveloper linkinfo linkdownload page
3DSMaxdeveloper linkinfo linkdownload page
C4Ddeveloper linkinfo linkdownload page
Softimage XSIdeveloper linkinfo linkdownload page
Carrara Studiodeveloper linkinfo linkdownload page
Truespacedeveloper linkinfo linkdownload page
Amapideveloper linkinfo linkdownload page
Personal tools