3dsmax教学计划方案徐庆华第1页共23页第八章:多边形建模通过本章的学习,能够熟练进行如下工作:区别3dsmax的各种建模工具;使用网格对象的各个次对象层次;理解网格次对象建模和编辑修改器建模的区别;在次对象层次正确进行选择;使用Smoothing;使用MeshSmooth和HSDS编辑修改器增加细节。不管是否为游戏建模,优化模型并得到正确的细节都是成功产品的关键。模型中不需要的细节也将增加渲染时间。模型中使用多少细节是合适的呢?这就是建模的艺术性所在,人眼的经验在这里起着重要作用。如果角色在背景中快速奔跑,或者喷气飞机在高高的天空快速飞过,那么这样的模型就不需要太多的细节。8.13dsmax的表面在3dsmax中建模的时候,可以选择如下三种表面形式之一:网格(Meshes);Bezier面片(Patches);NURBS(不均匀有理B样条)。网格最简单的网格是由空间3个离散点定义的面。尽管它很简单,但的确是3dsmax中复杂网格的基础。本章后面的部分将介绍网格的各个部分,并详细讨论如何处理网格。3dsmax教学计划方案徐庆华第2页共23页面片当给对象应用EditPatch编辑修改器或者将它们转换成EditablePatch对象时,3dsmax将几何体转换成一组独立的面片。每个面片由连接边界的3到4个点组成,这些点可定义一个表面。NURBS术语NURBS代表Non-UniformRationalB-Splines(不均匀有理B样条):Non-Uniform(不均匀)意味着可以给对象上的控制点不同的影响,从而产生不规则的表面;Rational(有理)意味着代表曲线或者表面的等式被表示成两个多项式的比,而不是简单的求和多项式。有理函数可以很好地表示诸如圆锥、球等重要曲线和曲面模型;B-spline(Basisspline,基本样条线)是一个由三个或者多个控制点定义的样条线。这些点不在样条线上,与使用Line或者其它标准二维图形工具创建的样条线不同。后者创建的是Bezier曲线,它是B-splines的一个特殊形式。使用NURBS就可以用数学定义创建精确的表面。许多现代的汽车设计都是基于NURBS来创建光滑和流线型的表面。8.2对象和次对象3dsmax的所有场景都是建立在对象的基础上,每个对象又由一些次对象组成。一旦开始编辑对象的组成部分,就不能变换整个对象。8.2.1次对象层次在这个练习中,我们将熟悉组成3dsmax对象的基本部分。1.启动或者复位3dsmax。2.单击命令面板的Sphere按钮,在顶视口创建一个半径约为50个单位的球。3.到Modify命令面板,在ModifierList下拉式列表中选取EditMesh。现在3dsmax认为球是由一组次对象组成的,而不是由参数定义的。4.在Modify命令面板的编辑修改器堆栈显示区域单击Sphere,见图8.1。卷展栏现在恢复到它的原始状态,命令面板上出现了球的参数。使用3dsmax的堆栈可以对对象进行一系列非破坏性的编辑。这就意味着可以随时返回编辑修改的早期状态。5.在顶视口中单击鼠标右键,然后从弹出的四元组菜单中选取ConventTo:/ConverttoEditableMesh,见图8.2。3dsmax教学计划方案徐庆华第3页共23页图8.1图8.2这时编辑修改器堆栈的显示区域只显示EditableMesh。命令面板上的卷展栏类似于EditMesh,球的参数化定义已经丢失。见图8.3。图8.38.2.2EditableMesh与EditMesh的比较EditMesh编辑修改器主要用来将标准几何体、Bezier面片或者NURBS曲面转换成可以编辑的网格对象。增加EditMesh编辑修改器后就在堆栈的显示区域增加了层。模型仍然保持它的原始属性,并且可以通过在堆栈显示区域选择合适的层来处理对象。将模型塌陷成EditableMesh后,堆栈显示区域只有EditableMesh。应用给对象的所有编辑修改器和对象的基本参数都丢失了,只能在网格次对象层次编辑。当完成建模操作后,将模型转换成EditableMesh是一个很好的习惯,这样可以大大节省系统资源。如果模型需要输出给实时的游戏引擎,那么塌陷成EditableMesh是必须的。在后面的练习中我们将讨论这两种方法的不同。8.2.3网格次对象层次一旦一个对象被塌陷成EditableMesh编辑修改器或者被应用了EditMesh编辑修改器,就可以使用下面次对象层次。1.Vertex(节点):节点是空间上的点,它是对象的最基本层次。当移动或者编辑节点的时候,它们的面也受影响。对象形状的任何改变都会导致重新安排节点。在3dsmax中有很多编辑方法,但是最基本的是节点编辑。图8.3是移动节点导致的几何体形状的变化。3dsmax教学计划方案徐庆华第4页共23页图8.32.Edge(边):Edge是一条可见或者不可见的线(参见图8.4),它连接两个节点,形成面的边。两个面可以共享一个边。处理边的方法与处理节点类似,在网格编辑中经常使用。3.Face(面):面是由3个节点形成的三角形。在没有面的情况下,节点可以单独存在,但是在没有节点的情况下,面不能单独存在。在渲染的结果中,我们只能看到面,而不能看到节点和边。面是多边形和元素的最小单位,可以被指定光滑组,以便与相临的面光滑。4.Polygon(多边形):在可见的线框边界内的面形成了多边形。多边形是面编辑的便捷方法。此外,某些实时渲染引擎常使用多边形,而不是3dsmax中的三角形面。5.Element(元素):元素是网格对象中以组连续的表面。例如茶壶就是由4个不同元素组成的几何体,见图8.5。当一个独立的对象被使用Attach附加到另外一个对象上后,这两个对象就变成新对象的元素。下面我们就举例来说明如何在次对象层次工作。1.启动3dsmax,或者在菜单栏选取File/Reset,复位3dsmax。图8.4图8.52.在菜单栏选取File/Open,然后从本的配套光盘中打开文件Samples\ch08\ch08_01.max。3.在用户视口中单击飞机,选择它,见图8.6。4.单击主工具栏的SelectandMove按钮。5.在用户视口四处移动飞机,则飞机四处移动,好像一个对象似的。6.单击主工具栏的Undo按钮。7.在Modify面板,单击Selection卷展栏下面的Vertex按钮。8.在用户视口选择飞机最前端的点,然后四处移动该节点,会发现只有一个节点受变换的影响,见图8.7。3dsmax教学计划方案徐庆华第5页共23页图8.6图8.79.按键盘上的Ctrl+Z键取消前面的移动操作。10.单击Selection卷展栏下面的Edge按钮。11.在用户视口选择机尾顶部的边,然后四处移动它。这时选择的边以及组成边的两个节点被移动,见图8.8。12.按键盘上的Ctrl+Z键取消对选择边的移动。13.单击Selection卷展栏下面的Face按钮。14.在用户视口选择机尾顶部的边,然后四处移动它。15.在用户视口选择左侧机翼顶部的面(见图8.9),然后四处移动它,这时面及组成面的三个点被移动了。图8.8图8.916.按键盘上的Ctrl+Z键撤消对选择面的移动。17.单击Selection卷展栏下面的Polygon按钮。18.在用户视口的空白地方单击鼠标左键,取消对面的选择。19.在用户视口选取左侧机翼的多边形,这次整个机翼顶部都被选择了,见图8.10。20.单击Selection卷展栏下面的Element按钮。21.在用户视口选择机尾顶部的边,然后四处移动它,见图8.11。图8.10图8.11由于机翼是一个独立的元素,因此它们一起移动。3dsmax教学计划方案徐庆华第6页共23页8.2.4常用的次对象编辑选项命名的选择集无论是在对象层次还是在次对象层次,选择集都是非常有用的工具。经常需要编辑同一组节点。使用选择集后可以给节点定义一个命名的选择集,这样就可以通过命名的选择集快速选择节点了。通常在主工具栏中命名选择集。次对象的Backfacing选项在次对象层次选择的时候,经常会选取在几何体另外一面的次对象。这些次对象是不可见的,通常也不是编辑中所需要的。在3dsmax的Selection卷展栏中选择IgnoreBackfacing复选框(见图8.12),解决这个问题。背离激活视口的所有次对象将不会被选择。8.3低消耗多边形建模基础常见的低消耗网格建模的方法是盒子建模(BoxModeling)。盒子建模技术的流程是首先创建基本的几何体(例如盒子)。然后将盒子转换成EditableMesh,这样就可以在次对象层次处理几何体了。通过变换和拉伸次对象使盒子逐渐接近最终的目标对象。8.3.1变换次对象在次对象层次变换是典型的低消耗多边形建模技术。可以通过移动、旋转和缩放节点、边和面来改变几何体的模型。8.3.2处理面通常使用EditGeometry卷展栏(见图8.13)下面的Extrude和Bevel来处理表面。可以通过输入数值或者在视口中交互拖曳来创建拉伸或者倒角的效果。图8.12图8.13Extrude增加几何体复杂程度的最基本方法是增加更多的面。Extrude就是增加面的一种方法。3dsmax教学计划方案徐庆华第7页共23页图8.14就给出了面拉伸前后的效果。图8.14BevelBevel首先将面拉伸到需要的高度,然后再缩小或者放大拉伸后的面,图8.15给出了倒角后的效果。图8.158.3.3处理边通过分割边来创建节点创建节点最简单的方法是分割边。直接创建完面和多边形后,可以通过分割和细分边来生成节点(见图8.16)。在3dsmax中可以创建单独的节点,但是这些点与网格对象没有关系。图8.16分割边后就生成一个新的节点和两个边。在默认的情况下,这两个边是不可见的。如果要编辑一个不可见的边,需要先将它设置为可见的。有如下两种方法来设置边的可见性:先选择网格对象的一个边边被分割,生成一个节点3dsmax教学计划方案徐庆华第8页共23页选择边,然后单击SurfaceProperties卷展栏中的Visible按钮,或者选择ObjectProperties对话框中DisplayProperties区域的EdgesOnly复选框,见图8.17。切割边切割边的更精确方法是使用EditGeometry卷展栏下面的Cut按钮,见图8.18。图8.17图8.18使用Cut选项可以在各个连续的表面上交互地绘制新的边。8.3.4处理节点建立低消耗多边形模型使用的一个重要技术是节点合并。例如,在人体建模模型时,通常建立一半的模型,然后通过镜像得到另外一半模型。图8.19给出了建立人头模型的情况。当采用镜像方式复制人头的另外一面时,两侧模型的节点应该是一样的。可以通过调整位置使两侧面相交部分的节点重合,然后将重合的节点焊接在一起,得到完整的模型,见图8.20。图8.19图8.20将节点焊接在一起后,模型上的间隙将消失,重合的节点被去掉。有两种方法来合并节点:选择一定数目的节点,然后设置合并的阀值或者直接选取合并的点,见图8.21。在前面的例子中已经使用了Weld下面的Selected选项。可以选择一个或者两个重合或者不重合的节点,然后单击Selected按钮。这样,要么这些节点被合并在一起,要么将出现图8.22所示的消息框。在Selected右边的阀值数值键入区决定能够被合并节点之间的距离。如果节点是重合在一起的,那么这个距离可以设置小一点;如果需要合并节点之间的距离较大,那么这个数值需要设置大一些。3dsmax教学计划方案徐庆华第9页共23页图8.21图8.22在合并节点的时候,有时使用Target选项要方便些。一旦打开了Target选项,可以通过拖曳的方法合并节点。8.3.5修改可以编辑的网格对象在这个练习中,我们将使用FaceExtrude选项来构造飞机的座仓盖。1.启动3dsmax,或者在菜单栏选取File/Reset,复位3dsmax。2.在菜单栏选取File/Open,然后从本的配