3D基础教程:NURBS命令详解(三)

修改
鏉ユ簮: 貌似殊途 浏览 4147 日期 2011-12-02 0

观察工具箱

1、选择一个已建好的nurbs物体,然后进入modify(变动)命令面板,

2、打开nurbs的建立工具箱

工具箱的控制按钮是用来建立nurbs次物体的。而在3dmax3.0版里曲线和曲面的工具箱是一样的,曲线次物体也可以建立曲面。一般来说,工具箱是按照下面所述运作的:

。在modify(变动)命令面板里,打开按钮的时候,每当选择了一个nurbs物体或次物体,就能看见工具箱了。当没有选择nurbs物体或转到其它命令面板的时候,工具箱就会消失。当再回到变动面板或选择nurbs物体的时候,就会再次出现。

。可以用工具箱在nurbs物体的top level(顶级)、object level(物体级)和一些nurbs次物体级别直接建立次物体。

。当打开工具箱里的一个按钮进入到建立模式的时候,变动面板将改变显示的参数(如果有的话),显示为所建立的这种次物体的参数。

。如果在top level(顶级)或物体级使用工具箱来建立一个物体,想修改就必须到次物体级别里。

。如果是在次物体级别里使用工具箱来建立一个同样的次物体类型,例如在曲面次物体级别建立一个曲面,可以关闭工具箱上的建立按钮(或击右键)直接进行编辑。

。如果是在次物体级别里使用工具箱来建立一个不同的次物体类型,就必须转换到所建立的次物体级别里,才能进行编辑。例如,建立了一条曲线,就要到curve level(曲线级)选择这条曲线进行变动修改。

把鼠标放在工具箱的每一个按钮上,都会出现相应的提示来描述功能。

2.6 nurbs curves(曲线)

nurbs curves(曲线)是shape(样条)物体,可以用来做各种曲线,使用挤压或旋转功能以一条nurbs curves(曲线)为基础,轻松地产生一个三维曲面。可以用nurbs曲线作为路径或用来loft(放样)。但这种放样所产生的物体不是nurbs物体,在后面交介绍nurbs专用的放样方法。

也可以用nurbs曲线作为控制器的路径或运动轨迹。

还可以给一条nurbs曲线加上厚度,渲染成圆柱形的物体。加了厚度的曲线是作为多边形网格物体来渲染的,而不是nurbs曲面。

2.7 cv curve(可控曲线)和cv surface(可控曲面)

像样条曲线一样,可控曲线和可控曲面也都有控制顶点。控制点位置控制着曲线或曲面的形态。然而,不像样条曲线的顶点那样,可控曲线或曲面的控制点并不都被定义在曲线或曲面上。而是定义了一种连接每个控制点并且包围着nurbs曲线或曲面的控制格,3dmax将其显示为黄色虚线

提示:当使用缩放区域工具的时候,3dmax显示的是整个nurbs物体区域,包括绿色的控制点。另外,还可以进入变动面板在可控曲线或曲面的cv次物体级别来调整控制点,用各种工具如移动、旋转、缩放对控制点进行加工,以改变物体的形态。

每个控制点都有权重,可以利用这一点来调整控制点对曲线或曲面的影响程度。加大权重可以把曲面向控制点的方向吸引,减少重量可以使曲面松弛,远离控制点。

weights(权重)对于调整nurbs曲线或曲面的外形是一种很有效的方法。

控制点的weights(权重)值是一种有理数,其大小是相对于这个曲线或曲面里的其它控制点而言的。如果把所有控制点的权重都加大,则对物体不会产生影响,因为这样并没有改变各点之间的权重比率。

2.8 point(点)、point curve(点曲线)和point surface(点曲面)

点曲线和点曲面是类似于可控曲线和曲面的,但这里的点只能在曲线或曲面上,而不能在外面,还有一点不同的是这里的点没有权重。

点曲线和点曲面能够更直观地建立和操作。然而,它们会带来意想不到的结果,因为给定的这些nurbs点可能会产生一个以上的nurbs的计算结果。而这种情况在cv曲线或曲面里是不会发生的。

建立独立的点与点曲线或曲面的点是相同的,但不是曲线或曲面最初部分。可以用fit(拟合)方式连接一些点,来建立一条点曲线。

2.9 sub-objects(次物体)的选择

当创建nurbs物体的时候,经常工作在次物体方式下。当在次物体级别的时候,会经常使用到3dmax选择的技巧,如点击、拖动一个区域,或按住ctrl键来选择一个或多个次物体。

也可以按名字来选择nurbs次物体。打开状态栏里的按钮,然后按h键,会显示一个对话框,这里列出了当前级别所有次物体的名称。在列表选择一个或多个物体,然后点击select(选择)键就会选择相应的次物体。这个功能在曲线和曲面的次物体级别非常有用。在一个复杂的曲线或曲面里用名字来区分数量巨大的控制点是非常困难的,但是可以为频繁编辑的nurbs次物体指定自己便于记忆的名字。

还有一个非常有用的功能,按ctrl+h也会出现一个对话框,不过这里只列出了鼠标所在位置相邻的次物体,这也是个很方便的功能,不过在2.5版以后才有此功能。

提示:当在nurbs里操作的时候,会经常往返于物体和次物体级别之间,或者从一个跳到其他的级别。这里介绍两个键盘的快捷方式和一个菜单,会更简洁地完成这几项操作:

。次物体选择开关(默认键ctrl+b),用来打开和关闭sub-objects(次物体)按钮。

。循环次物体级别的快捷键(默认键insert),从一个次物体级别到下一个级别,往复循环。

。在变动面板里,当右击选择的nurbs物体的时候,会自动弹出一个菜单,菜单的最下面部分会列出这个物体所具有的所有级别,如果这个物体有point(点),菜单就会出现point level(点级别),进入point level(点级别)就可以对点进行各种变动修改。除此还有top level(顶级)、surface cv level(曲面cv级)、surface level(曲面级)、curve cv level(曲线cv级)、curve level(曲线级),在哪一个级别里,就可以对这个级别所制定的对象进行变动修改。

2.10 从属的sub-objects(次物体)

nurbs次物体有两种状态,要么是独立,要么是从属。一个从属的次物体是以其他几何体为基础的。例如,用一个融合曲面光滑地连接两个其他的曲面,移动两个原始曲面中的一个,或赋予动画,中间的融合曲面部分将发生改变,以保持连接两个原始曲面中间绿色部分为融合两个分离曲面的从属曲面

这是一种立即反应,当建模的时候就确定了父物体和从属次物体之间的交互关系,这种关系使得改变nurbs模型和制作nurbs模型的动画变得非常容易。

注意:从属次物体必须有父物体,而这个父物体同时也是这个nurbs模型的次物体。而物体级别的nurbs曲线或曲面是不会有从属关系的。如果相用一个top level(顶级)的nurbs物体来建立一个从属物体,首先要attach(结合)或import(引入)一个top level(顶级)物体。

可以把一个从属次物体转换为独立次物体。在转换之后,将不在依附于父物体,父物体的变动也不会影响到它,从而作为一个独立次物体可以直接编辑它。

在适当的次物体级别,从属nurbs次物体在wireframe(线框)方式显示的视图里被显示为绿色,独立的次物体被显示为白色。

对父物体作的改变有时得不到从属几何物体正确的更新显示。例如:两条曲线之间建立的圆角需要曲线是共面的,如果移动了一条曲线则就不共面了,3dmax就不能正确地更新圆角了。在这种情况下,从属几何物体就会返回到默认位置,并且显示为桔黄色以表示错误。

变动从属次物体

一般来说,可以选择并变动从属次物体(变动从属次物体要在次物体级别)。在次物体级别里,能对从属次物体进行移动、旋转等变动修改。

当按shift键来复制一个从属nurbs次物体的时候,父物体也被复制。例如,如果按shift键来复制一个uv放样曲面,则所有的放样曲线也被复制。这种方法建立的物体与原始物体是一种类型的,不像早先的nurbs版本,复制出来的只能是独立的可控曲面。复制物体有父物体,所以编辑复制物体方法就像编辑原始物体一样。

seed values(种子值)

有一些种类从属次物体依赖于几何体上,可能会生产多于一种的解决方法。例如,如果想建立一个面与曲线交叉点,但是曲线与面存在着多于一个的交叉点,3dmax必须决定哪一个点的位置作为交叉点。

像这些种类的物体,由seed values(种子值)参数控制如何作决定。种子的位置指的是在父物体上的位置,距离种子值最近的位置是3dmax选择满意的建立条件。当编辑这些种类的从属物体的时候,可以改变种子值。种子的位置显示为黄色的小正方形。

例如,一个面与线交叉点的种子的位置是沿着父曲线长度的水平位置。面与线交叉最靠近的种子点是选择作为从属点的位置。

如果是一个面,种子的位置是在面的参数里的一对水平和垂直的坐标值。

替换父次物体

从属次物体现在可以让控制替换物体或所依赖的物体。例如,偏移曲面有一个按钮叫replace base surface(替换基础曲面)。能点击这个按钮,然后点击其他的曲面来替换原来的父曲面。

设计这个功能的主要原因之一是使能够用未剪切曲面的方案替换一个剪切的曲面。这样做,需要使用名称选择对话框。例如,选择一个未剪切的曲面次物体,打开状态栏的按钮,按h,然后按名字选择剪切的方案。

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}