C4D中的生成器指的就是基于二维曲线的曲面建模工具。生成器建模也称为“NURBS曲面建模”,前面介绍的曲线实质是NURBS曲线。NURBS是Non-Uniform Rational B-Splines的缩写,是非均匀有理B样条的意思。具体解释如下。
● Non-Uniform(非均匀):是指一个控制顶点的影响力的范围能够改变。当创建一个不规则曲面时,这一点非常有用。同样,统一的曲线和曲面在透视投影下也不是无变化的,对于交互的3D建模来说这是一个严重的缺陷。
● Rational(有理):是指每个NURBS物体都可以用数学表达式来定义。
● B-Spline(B样条):是指用路线来构建一条曲线,在一个或更多点之间插值替换的。
简单地说,NURBS就是专门创建曲面物体的一种造型方法。NURBS造型总是由曲线和曲面定义的,所以要在NURBS表面生成一条有棱角的边是很困难的。就是因为这一特点,可以用它做出各种复杂的曲面造型和表现特殊的效果,如人的皮肤、面容或流线型的跑车等。
在理解NURBS之前,要弄懂Bezier曲线、B样条和NURBS曲线的基本概念。Bezier曲线是法国数学家贝塞尔在1962年构造的一种以逼近为基础的控制多边形定义曲线和曲面的方法,由于Bezier曲线有一个明显的缺陷就是当阶次越高时,控制点对曲线的控制能力明显减弱,所以直到1972年Gordon、Riesenfeld和Forrest等人拓广了Bezier曲线而构造了B样条曲线,B样条曲线是一种分段连续曲线,其包括均匀B样条曲线、准均匀B样条曲线、分段Bezier曲线和非均匀B样条曲线,如图3-128所示。
图3-128
除了生成器建模工具是NURBS建模的基本工具,还有造型工具和变形工具(将在第4章详细介绍),是对生成器建模的模型进行二次造型的强大工具。
生成器建模工具在“创建”|“生成器”子菜单中,如图3-129所示,也可以在上工具栏的“生成器”工具列中调取,如图3-130所示。
图3-129
图3-130
“细分曲面”工具主要用来设计角色,是设计师常用的一种雕刻工具。通过点加权和边缘加权对模型表面进行细分,可以制作任何形状——从高性能跑车到动画角色。细分曲面对象也非常适合制作动画,可以使用相对较少数量的控制点来创建复杂对象。
细分曲面工具是基于已有模型来使用的。首先创建立方体基本体,再单击“细分曲面”按钮 ,在“对象”管理器中创建一个“细分曲面”对象集,将“立方体”对象集拖至“细分曲面”对象集中,即可利用细分曲面功能进行曲面细分操作,如图3-131所示。
图3-131
1.细分曲面的“对象”选项卡
在“对象”管理器中选中“细分曲面”对象集,可在“属性”管理器的“对象”选项卡中定义细分曲面的选项及参数,如图3-132所示。
在“对象”选项卡中包括6种细分曲面类型,如图3-133所示,其含义如下。
● Catmull-Clark:这种类型可以生成平滑、细腻的表面,通常将这种类型的曲面导出到其他软件中使用。
图3-132
图3-133
● Catmull-Clark(N-Gons):选择这种类型,N变形在被细分之前,将首先在内部进行三角测量,这种类型支持点、边和多边形加权。如图3-134所示为源模型、Catmull-Clark和Catmull-Clark (N-Gons)的细分曲面表现。
图3-134
● OpenSubdiv Catmull-Clark:OpenSubdiv是一种开源的网格细分技术,利用这种技术可以加速平滑过程。OpenSubdiv Catmull-Clark是一种更为精细的表面细分方法,可以通过一些选项来设置精细划分表面的性能,如图3-135所示。如图3-136所示为OpenSubdiv Catmull-Clark与Catmull-Clark细分类型的效果对比。
图3-135
图3-136
● OpenSubdiv Catmull-Clark(自适应):此选项启用由GPU计算的特殊类型的曲面细分(效果类似于OpenSubdiv Catmull-Clark)。由于使用了内部OpenGL着色器,因此,必须在“首选项”菜单中启用Hardware OpenGL。否则,仅显示未细分的笼对象。
● OpenSubdiv Loop:循环的OpenSubdiv细分类型。此类型用于特殊场景(如游戏开发)。它专为处理三角形而设计,如果存在四边形,它们将在平滑之前进行三角测量。细分的平滑对象仅由三角形组成。此类型与Catmull-Clark类型的细分对比如图3-137所示。
图3-137
● OpenSubdiv Bilinear:双线性的OpenSubdiv细分类型。此类型仅细分表面,但不会平滑表面,它创建了一种非破坏性细分。如图3-138所示为Catmull-Clark类型、OpenSubdiv Loop类型和OpenSubdiv Bilinear类型的细分效果对比。
图3-138
2.表面的局部细分
前面介绍的是模型的整体表面细分,对于细分曲面建模来讲,其作用还远远不够,因为我们有时需要在模型的局部区域进行细分,而不是整体细分。要进行局部细分操作,必须使模型进入可编辑状态(在“对象”管理器中选中模型,按C键),并能显示细分曲面变形框架(由点、边及多边形组成的框架),如图3-139所示。
要想快速将模型变成“细分曲面”对象集的子对象,可以在“对象”管理器中选中某一个或多个模型,按住Alt键后再单击“细分曲面”按钮 即可。
图3-139
在可编辑模式下,通过切换点模式、边模式与多边形模式,可以选取模型中的顶点、边线和多边形面,在显示操控轴后进行拖曳,完成模型形状的改变,如图3-140~图3-142所示。
图3-140
图3-141
图3-142
当在“对象”管理器中关闭细分曲面对象时,视图中仅显示模型对象的变形框架,如图3-143所示。
图3-143
同样,可以分别在点模式、边模式或多边形模式下,拖动模型变形框架上的框架点、框架边和框架多边形进行拖动变形。
3.变形框架的细分
除了可以对模型表面进行细分,还可以通过对变形框架的细分,进行局部变形操作。变形框架中仅可以对边和多边形进行分割,下面介绍几种常用的框架分割类型。
(1)框架边的分割。
在左边栏中单击“边”按钮 进入边模式。在视图中右击并选择快捷菜单中的“切割边”命令(或按快捷键M+F),选中模型后模型中的所有边被选取,单击将会对所有边进行第一次分割,如图3-144所示。
图3-144
如果需要第二次分割或连续多次分割,再次单击或连续单击,得到框架边的分割结果,如图3-145所示。
图3-145
(2)创建框架点来分割边。
在视图中右击,在弹出的快捷菜单中选择“创建点”命令,选取要添加框架点的框架边,完成框架点的添加后,框架边被分割,如图3-146所示。
图3-146
当切换到多边形模式后,可以在多边形中添加框架点来分割框架多边形,如图3-147所示。
图3-147
(3)框架多边形的线性切割。
切换到多边形模式后,在视图中右击,并在弹出的快捷菜单中选择“线性切割”命令,然后选择框架多边形进行切割,如图3-148所示。
图3-148
“挤压”就是将二维图形沿着垂直于图形平面的方向进行拉伸,设置拉伸(移动)距离后得到曲面模型。
首先绘制二维曲线,在“对象”管理器中选中二维曲线对象,按住Alt键,单击“挤压”按钮 ,创建挤压曲面模型,如图3-149所示。
图3-149
创建挤压模型后,可以在“属性”管理器的“对象”选项卡中设置挤压参数及选项,如图3-150所示。仅需要在“移动”参数中设置X、Y及Z方向上的值即可。
图3-150
“旋转”就是将二维曲线作为截面绕指定的轴进行旋转而得到的曲面模型。旋转轴为世界坐标系(C4D中也称“全局坐标系”)中的X、Y及Z轴,并非对象坐标系中的X、Y及Z轴。
当执行了“圆环”命令后,系统会在全局坐标系原点位置创建一个圆,此时圆环曲线中心显示一个坐标系,此坐标系称为“对象坐标系”。默认状态下,对象坐标系与全局坐标系是重合的,而此时的全局坐标系是不可见但是存在的,如图3-151所示。
按住Alt键单击“生成器”工具列中“旋转”按钮 ,此时系统会自动将圆环曲线进行绕轴(绕全局坐标系中的Y轴)旋转,并得到一个球体,如图3-152所示。
图3-151
图3-152
为什么会得到一个球体呢?其实是全局坐标系与对象坐标系重合的缘故。在“对象”管理器中如果选中“圆环”子对象,此时视图中仅显示对象坐标系,可以拖动对象坐标系的轴来移动圆环曲线的位置,此时会发现球体逐渐变成了圆环体,如图3-153所示。
图3-153
而对象坐标系也逐渐脱离了全局坐标系,若是在“对象”管理器中选中“旋转”对象集,视图中将显示旋转对象的对象坐标系,该对象坐标系与全局坐标系是重合的,如图3-154所示。此时若拖动旋转对象的对象坐标轴,将不会改变模型对象的形状,只是改变其在全局坐标系中的位置,可在“坐标系”管理器中查看该位置,如图3-155所示。
图3-154
图3-155
接下来讲解曲线平面和旋转轴的确定方法。
1.曲线工作平面(旋转体截面的平面)
确定二维曲线的工作平面,可以在创建曲线后,其“属性”管理器的“对象”选项卡中进行设定,如图3-156所示。默认的曲线工作平面是XY平面,可以切换到ZY或XZ平面,如图3-157所示。
图3-156
图3-157
2.旋转轴的确定
创建旋转截面曲线后,默认情况是以全局坐标系的Y轴作为旋转轴的,若要指定X轴或Z轴该如何操作呢?首先,如果是在XY平面中创建的截面曲线,那么可以作为旋转轴的就只有XY平面上的两条轴(X轴与Y轴)了。
要指定旋转轴,可以在左边栏中单击“对齐工作平面到X”按钮,或选择“工具”|“工作平面”|“对齐工作平面到X”命令。该命令的意思是,将全局坐标系中的X轴作为旋转轴。接着按Alt键单击“旋转”按钮 ,将曲线添加到“旋转”对象集中作为子对象,随后在视图中拖动曲线对象的坐标轴,可以清楚地看到截面曲线的确是以X轴作为旋转轴进行旋转创建模型的,如图3-158所示。
图3-158
注意,视图左下角的坐标系是一个标识,起方向参考作用,并不是说左下角就是全局坐标系的绝对位置。默认情况下,全局坐标系的位置就在我们能看见的对象坐标系原点上。可以通过视图顶部的菜单面板中的“过滤”菜单,选中或取消选中“全局坐标轴”选项,来控制全局坐标系的显示状态。
“放样”是通过扫描多个截面曲线来生成放样模型,扫描的轨迹路径就是各个截面曲线的中心点之间的连线,如图3-159所示。
图3-159
放样模型的创建方法与挤压模型的创建方法类似,首先创建3个在不同平面的截面曲线,单击“放样”按钮 添加一个放样生成器之后,在“对象”管理器中将3个截面曲线对象拖至“放样”对象集中,随后自动创建放样模型。
“扫描”是将一个截面曲线沿指定的轨迹进行扫描而得到的模型,如图3-160所示。
图3-160
要创建扫描模型,扫描轨迹曲线所在的工作平面必须与截面曲线所在的工作平面垂直,创建扫描模型的过程与创建放样模型的过程完全相同。
“贝塞尔”可将平面曲面中的控制点拉伸,创建出具有连续B样条曲线的光滑曲面。与前面几个生成器工具不同,“贝塞尔”工具不需要预先创建曲线。
在上工具栏的“生成器”工具列中选中“贝塞尔”工具 ,视图中将自动创建一个细分的平面曲面,曲面中出现9个控制点,如图3-161所示。
将模型模式切换到点模式,可以选取控制点并拖动,以此将平面曲面变成平滑的贝塞尔曲面,如图3-162所示。
图3-161
图3-162