第4章二维图形建模
在建模和动画中,二维图形起着非常重要的作用。3ds max的二维图形有两类,它们是样条线和NURBS曲线。它们都可以作为三维建模的基础或者作为Path Constraint控制器的路径。但是它们的数学方法有本质的区别。NURBS的算法比较复杂,但是可以非常灵活地控制最后的曲线。
4.1 二维图形的基础
4.1.1 二维图形的术语
二维图形是由一条或者多条样条线(Spline)组成的对象。样条线是由一系列点定义的曲线。样条线上的点通常被称为节点(Vertex)。每个节点包含定义它的位置坐标的信息,以及曲线通过节点方式的信息。样条线中连接两个相邻节点的部分称为线段(Segment),见图4.1。
a 节点(Vertex) b 线段(Segment) c 样条线(Spline)
图4.1
4.1.2 二维图形的用法
二维图形通常作为三维建模的基础。给二维图形应用一些诸如Extrude、Bevel、Bevel Profile和Lathe等编辑修改器就可以将它转换成三维图形。二维图形的另外一个用法是作为Path Constraint控制器的路径。
4.1.3 节点的类型
节点用来定义二维图形中的样条线。节点有如下四种类型:
— Corner(拐角):Corner节点类型使节点两端的入线段和出线段相互独立,因此两个线段可以有不同的方向。
— Smooth(光滑):Smooth节点类型使节点两侧的线段的切线在同一条线上,从而使曲线有光滑的外观。
— Bezier:Bezier节点类型的切线类似于Smooth节点类型。不同之处在于Bezier类型提供了一个可以调整切线矢量大小的句柄。通过这个句柄可以将样条线段调整到它的最大范围。
— Bezier Corner(Bezier拐角):Bezier Corner节点类型分别给节点的入线段和出线段提供了调整句柄,但是它们是相互独立的。两个线段的切线方向可以单独进行调整。
4.1.5 二维图形的共有属性
二维图形有一个共有的Rendering(渲染)和Interpolation(插值)属性。这两个卷展栏见图4.3。
图4.2 图4.3
在默认情况下,二维图形不能被渲染。但是,有一个选项可以将它设置为可以渲染的。如果激活了这个选项,那么在渲染的时候将使用一个指定厚度的圆柱网格取代线段。这样就可以生成诸如霓虹灯等的模型。指定网格的边数可以控制网格的密度。可以指定是在视口中渲染二维图形,还是在渲染时渲染二维图形。对于视口渲染和扫描线渲染来讲,网格大小和密度设置可以是独立的。
在3ds max内部,样条线有确定的数学定义。但是在显示和渲染的时候就使用一系列线段来近似样条线。插值设置决定使用的直线段数。步数(Step)决定在线段的两个节点之间插入的中间点数。中间点之间用直线来表示。Steps参数的取值范围是0到100。0表示在线段的两个节点之间没有插入中间点。该数值越大,插入的中间点就越多。一般情况下,在满足基本要求的情况下,尽可能将该参数设置的最小。
在样条线的Interpolation卷展栏中还有Optimize和Adaptive选项。当选取了Optimize复选框,3ds max将检查样条线的曲线度,并减少比较直的线段上的步数,这样可以简化模型。当选取了Adaptive复选框,3ds max则自适应调整线段。
4.1.6 Start New Shape选项
在Object Type卷展栏中有一个Start New Shape选项(参见图4.2),用来控制所创建的一组二维图形是一体的,还是独立的。
前面已经提到,二维图形可以包含一个或者多个样条线。当创建二维图形的时候,如果选取了Start New Shape复选框,创建的图形就是独立的新的图形。如果关闭了Start New Shape 选项,那么创建的图形就是一个二维图形。
4.2 创建二维图形
4.2.1 使用Line、Rectangle和Text工具来创建二维图形
在这一小节我们将使用Line、Rectangle和Text工具来创建二维对象。
1. 启动3ds max,或者在菜单栏选取File / Reset,复位3ds max。
2. 在创建命令面板中单击Shapes按钮。
3. 在Shapes面板中单击 Line按钮。
这时Create面板上的Shapes分类自动打开,并选取了Line工具,见图4.4。
图4.4
4. 在前视口单击创建第一个节点,然后移动鼠标再单击创建第二个节点。
5. 单击鼠标右键,结束画线工作。
4.3 编辑二维图形
上一节介绍了如何创建二维图形,这一节我们将讨论如何在3ds max中编辑二维图形。
4.3.1 访问二维图形的次对象
对于所有二维图形来讲,Modify面板中的Rendering和Interpolation卷展栏都是一样的,但是Parameters卷展栏却是不一样的。
在所有二维图形中Line是比较特殊的,它没有可以编辑的参数。创建完Line对象后就必须在Vertex、Segment和Spline层次进行编辑。我们将这几个层次称之为次对象层次。下面就举例来说明如何访问次对象层次。
1. 在菜单栏选取File / Reset,复位3ds max。
2. 在Create命令面板中单击 Shapes按钮。
3. 在Object Type卷展栏中单击Line按钮。
4. 在顶视口创建一条与图4.5类似的线。
5. 在Modify命令面板的堆栈显示区域中单击Line左边的+号,显示次对象层次,见图4.6。
可以在堆栈显示区域单击任何一个次对象层次来访问它。
6. 在堆栈显示区域单击Vertex。
图4.5 图4.6
7. 在顶视口显示任何一个节点,见图4.7。
8. 单击主工具栏的 Select and Move按钮。
9. 在顶视口移动选择的节点,见图4.8。
图4.7 图4.8
10. 在Modify面板的堆栈显示区域单击Line,就可以离开次对象层次。
下面我们给样条线插入节点。
1. 启动3ds max,或者在菜单栏选取File / Reset,复位3ds max。
2. 在菜单栏选取File / Open,然后打开一个文件。这个文件中包含了一个二维图形,见图4.9。
图4.9
3. 在顶视口单击二维图形,选择它。
4. 在Modify命令面板的编辑修改器堆栈显示区域单击Vertex,进入到节点层次。
5. 在Modify面板的Geometry卷展栏单击Insert按钮。
6. 在顶视口的节点2和节点3之间的线段上单击鼠标左键,插入了一个节点,拖动鼠标至需要的位置,再次单击鼠标左键,然后单击鼠标右键,退出Insert方式。
由于增加了一个新节点,所以节点被重新编号,见图4.10。
技巧:Refine工具也可以增加节点,且不改变二维图形的形状。
7. 在顶视口的样条线上单击鼠标右键,然后从弹出的菜单上选取Top–Level(见图4.11),返回到对象的最顶层。
图4.10 图4.11
接下来学习如何合并节点。
1. 启动3ds max,或者在菜单栏选取File / Reset,复位3ds max。
2. 在菜单栏选取File / Open,然后打开一个文件。这是一个只包含系统设置,没有场景信息的文件。
3. 在Create面板中单击 Shapes按钮,然后单击Object Type卷展栏的Line按钮。
4. 按键盘的S键,激活捕捉功能。
5. 在顶视口按逆时针的方向创建一个三角形,见图4.12。
当再次单击第一个节点的时候,系统则询问是否封闭该图形,见图4.13。
图4.12 图4.13
6. 在Spline对话框中单击否(N)按钮。
7. 在顶视口单击鼠标右键,结束样条线的创建。
8. 再次单击鼠标右键,结束创建模式。
9. 按键盘上的S键,关闭捕捉。
10. 在Modify命令面板的Selection卷展栏中单击 Vertex。
11. 在顶视口使用区域选择的方法选择所有的节点(共4个)。
12. 在顶视口的任何一个节点上单击鼠标右键,然后从弹出的菜单中选取Smooth。
在图4.14中,样条线上重合在一起的第1点和最后一点处没有光滑过渡,第2点和第3点处已经变成了光滑过渡,这是因为两个不同的节点之间不能光滑。
13. 在顶视口使用区域的方法选择重合在一起的第1点和最后一点。
14. 在Modify面板的Geometry卷展栏中单击Weld按钮。
两个节点被合并在一起,而且节点处也光滑了,见图4.15。
图4.14 图4.15
15. 在Selection卷展栏的Display区域选择Show Vertex Numbers复选框,图中只显示3个节点的编号。
4.4.3 在线段次对象层次工作
我们可以在线段次对象层次做许多工作,首先试一下如何细化线段。
1. 在菜单栏中选取File / Open,然后打开一个文件, 这个场景中包含一条用Line绘制的矩形,见图4.16。
2. 在顶视口单击任何一条线段,选择该图形。
3. 在Modify命令面板的编辑修改器堆栈显示区域展开Line层级,并单击Segment,进入该层次,见图4.17。
4. 在Modify面板的Geometry卷展栏,单击Refine按钮。
图4.16 图4.17
5. 在顶视口中,在不同的地方单击四次顶部的线段,则该线段增加4个节点,见图4.18。
下面我们来试一下如何移动线段。
1. 继续前面的练习,单击主工具栏的 Select and Move按钮。
2. 在顶视口单击矩形顶部中间的线段,选择它,见图4.19。
图4.18 图4.19
这时在Modify面板的Selection卷展栏中显示第5条线段被选择 。
3. 在顶视口向下移动选择的线段,结果见图4.20。
4. 在顶视口的图形上单击鼠标右键。
5. 在弹出的菜单中选取Sub-objects / Vertex。
6. 在顶视口选取第6个节点,见图4.21。
图4.20 图4.21
7. 在工具栏的捕捉按钮上(例如 )单击鼠标右键,出现Grid and Snap Settings对话框,见图4.22。
8. 在Grid and Snap Settings对话框中,取消Grid Points的复选,选择Vertex复选框,见图4.22。
图4.22
9. 关闭Grid and Snap Settings对话框。
10. 在顶视口按下Shift键单击鼠标右键,打开Snap菜单。在Snap菜单选择Options / Transform Constraints,见图4.23。
这样将把变换约束到选择的轴上。
11. 按键盘上的S键,激活捕捉功能。
12. 在顶视口将鼠标光标移动到选择的节点上(第6个节点),然后将它向左拖曳到第7点的下面,捕捉它的X坐标。
这样,在X方向上第6点就与第7点对齐了,见图4.24。
图4.23 图4.24
13. 按键盘上的S键关闭捕捉功能。
14. 在顶视口单击鼠标右键,然后从弹出的菜单中选取Sub-objects / Segment。
15. 在顶视口选择第6条线段,沿着X轴向左移动,见图4.24。
4.5 使用编辑修改器将二维对象转换成三维对象
有很多编辑修改器可以将二维对象转换成三维对象。在本节我们将介绍Extrude、Lathe、Bevel和Bevel Profile编辑修改器。
4.5.1 Extrude(拉伸)
Extrude沿着二维对象的局部坐标系的Z轴给它增加一个厚度。还可以沿着拉伸方向给它指定段数。如果二维图形是封闭的,可以指定拉伸的对象是否有顶面和底面。
Extrude输出的对象类型可以是 Patch、Mesh或者NURBS,默认的类型是网格(Mesh)。
下面我们就举例来说明如何使用Extrude编辑修改器拉伸对象。
1. 在菜单栏选取File / Open,然后打开文件。该文件中包含一个圆,见图4.25。
2. 在透视视口单击圆,选择它。
3. 选择Modify面板,从编辑修改器列表中选取Extrude。
4. 在Modify面板的Parameters卷展栏将Amount设置为40,见图4.26。
图4.25 图4.26
二维图形被沿着局部坐标系的Z轴拉伸。
5. 在Modify面板的Parameters卷展栏,将Segments设置为3 。
几何体在拉伸的方向分了三个段。
6. 按键盘上的F3键,将视口切换成明暗显示方式,见图4.27。
7. 在Parameters卷展栏关闭Cap End,去掉顶面。
说明:背面好像也被删除了。实际上是因为法线背离了你,该面没有被渲染。可以通过设置双面渲染来强制显示另外一面。
8. 在透视视口的标签上单击鼠标右键,然后在弹出的快捷菜单上选取Configure,出现Viewport Configuration对话框。
9. 在Viewport Configuration对话框的Rendering Options中选择Force 2-Sided复选框,见图4.28。
图4.27 图4.28
10. 单击视图导航控制区域的 Min/Max Toggle按钮,切换成单视口显示,这时可以在视口中看到图形的背面了。
11. 在Modify面板的Parameters卷展栏关闭Cap Start选项。