第一章 NURBS概念
NURBS是一种非常优秀的建模方式,在高级三维软件当中都支持这种建模方式。NURBS能够比传统的网格建模方式更好地控制物体表面的曲线度,从而能够创建出更逼真、生动的造型。NURBS曲线和NURBS曲面在传统的制图领域是不存在的,是为使用计算机进行3D建模而专门建立的。在3D建模的内部空间用曲线和曲面来表现轮廓和外形。它们是用数学表达式构建的,NURBS数学表达式是一种复合体。在这一章里,只是简要地介绍一下NURBS的概念,来帮助了解怎样建立NURBS和NURBS物体为什么会有这样的表现。
 
1.1 NURBS的定义
NURBS是Non-Uniform Rational B-Splines的缩写,是非统一有理B样条的意思。具体解释是:
.Non-Uniform(非统一):是指一个控制顶点的影响力的范围能够改变。当创建一个不规则曲面的时候这一点非常有用。同样,统一的曲线和曲面在透视投影下也不是无变化的,对于交互的3D建模来说这是一个严重的缺陷。
.Rational(有理):是指每个NURBS物体都可以用数学表达式来定义。
.B-Spline(B样条):是指用路线来构建一条曲线,在一个或更多的点之间以内插值替换的。
简单地说,NURBS就是专门做曲面物体的一种造型方法。NURBS造型总是由曲线和曲面来定义的,所以要在NURBS表面里生成一条有棱角的边是很困难的。就是因为这一特点,我们可以用它做出各种复杂的曲面造型和表现特殊的效果,如人的皮肤,面貌或流线型的跑车等。
 
1.2度数和连续性
所有的曲线都有Degree(度数)。一条曲线的度数在表现所使用的等式里面是最主要的指数。一个直线的等式度数是1,一个二次的等式度数是2.NURBS曲线表现是立方等式,度数是3.可以把度数设得很高,但通常不必要这样做。虽然度数越高曲线越圆滑,但计算时间也越长。一般只要记住Degree(度数)值越高曲线越圆滑就可以了。
曲线也都有Continuity(连续性)。一条连续的曲线是不间断的。连续性有不同的级别,一条曲线有一个角度或尖端,它的连续是是C0。一条曲线如果没有尖端但曲率有改变,连续性是C1。如果一条曲线是连续的,曲率不改变,连续性是C2,如图所示。

一条曲线可以有较高的连续性,但对于计算机建模来说这三个级别已经够了。通常眼睛不能区别C2连续性和更高的连续性之间的差别。
连续性和度数是有关系的。一个度数为3的等式能产生C2连续性曲线。NURBS造型通常不需要这么高度数的曲线。
一条不同片断的NURBS曲线可以用不同级别的连续性。具体来说,在同样的位置或非常靠近的地方放置一些可控点,会降低连续性的级别。两个重叠的可控点会使曲率变尖锐。三个重叠的可控点会在曲线里建立一个有角度的尖角。附加一个或两个可控点会在曲线的附近联合它们的影响力。
从可控点中删除一个离开它们,就增加了曲线的连续性的级别。在3DMAX里,Fuse(熔化)可控点会在曲线里建立一个假象的曲率或尖角。如果要恢复原状,Unfuse(反熔化)那个点就可以了。

 
1.3 Refine(精炼)曲线和曲面
精炼一条NURBS曲线的方法是在上面加更多的可控点。精炼能更精细地控制曲线。当在3DMAX里精炼一条曲线的时候,软件会保持原始的曲率(从技术上说,它保持着统一的节点矢量)。换句话说,曲线的形状不会改变,但是相邻的可控点会从新加的可控点那里移开。
NURBS曲面与NURBS曲线本质上有一亲的属性。
 
1.4点曲线和点曲面的概念
在3DMAX里可以用点曲线和点曲面来建立模型。控制这些物体的点是被强制依附于曲线或曲面上的。它没有黄色的虚线控制格和重量控制。这是一个比较简单的界面,初学者可能更喜欢用。这并不是说高级用户就用不上了,如果是那样的话开发商就不会把它加到3DMAX中去了。可以用基础点来构建一条曲线,然后构建从属曲面。
可以使用 按钮来把点曲线或点曲面转换成独立的可控曲线或可控曲面。另一方面,尽量不要把可控曲线或曲面转换成点曲线或曲面,因为这样会有多种点的解决方案,会有难以遇料的结果。
1.5 Tolerance(容差)
这里先介绍一个容差的概念,以后将要用到。容差是指在3DMAX所使用的度量单位里的一个距离。如果连接的曲线间的间距大于这个值,3DMAX实际上是先建立一条融合曲线,然后再把三个部分连接在一起形成一条完整的曲线。如果间距小于这个值,则3DMAX不建立融合曲线。
先在两条曲线间建立一条Blend(融合)曲线,然后把三条曲线连接在一起形成一条单个的曲线,这是一种比较好的方法,得到的结果与父曲线匹配得很好。
当有一个距离,但是它太小的时候会出现问题。在这种情况下,3DMAX要产生融合,但是因为那里没有足够的空间给它,结果曲线会有一个环形在那里。要避免这个环形,把Tolerance(容差)设置得比间距大就可以了。如果设置容差为0,3DMAX会为它选择一个值。
NURBS模型
像3DMAX的其它物体一样,一个NURBS模型也能集合多个NURBS次物体。例如,一个NURBS物体可能包含两个曲面,而它们在空间里是相互独立的,没有依附关系。无论是NURBS曲线还是NURBS曲面都是可以进入其次物体级别,用点或者可控点来调节。这里的点和可控点与传统的3DMAX的Spline Objects(样条物体)的控制点表现都很出色。
在NURBS模型的父物体如果是一个NURBS曲面,下面列出了NURBS Sub-Objects(次物体)有可能包含的所有项目:
.Surfaces(曲面):在3DMAX中有两种NURBS曲面。一种是用点来控制的Point surface(点曲面),这些点总是在曲面上。另一种使用CV(可控点)来控制的CV surface(可控曲面),这些点可以在曲面的外部来控制曲面的形态,调节起来更加灵活。
.Curves(曲线):在3DMAX中也有两种NURBS曲线。这两种是完全符合上面提到的那两种曲面的。Point Curve(点曲线)是由曲线上的点来控制的,这些点总在曲线上。CV Curve(可控曲线)是由可控点来控制的,这些点不一定在曲线上。
.Points(点):点曲面和点曲线的Sub- Objects(次物体)里有这个项目。能建立一个点次物体,可以不是曲线或曲面的一部分。
.CV(可控点):可控曲面和可控曲线有CV(可控点)次物体。不像点那样,CV(可控点)总是曲线或曲面的一部分。
.Import(引入):引入是NURBS物体把其它3DMAX物体引入到自身造型内的一个过程。在NURBS造型内部,被引入的物体会被当作NURBS造型来渲染,但是保持最初的参数和变动修改
 
2.1建立NURBS模型
3DMAX提供了多种途径来建立NURBS曲面。下面是建立NURBS物体的几种方法:
.可以在 Create(建立)命令面板的 Shape(图形)面板中建立NURBS Curves(曲线)。
.可以在 Create(建立)命令面板的 Geometry(几何体)面板中建立NURBS Surfaces(曲面)。当使用这种方法的时候,NURBS Surfaces(曲面)只是一个原始的平面矩形,可以使用Modify(变动)命令面板来改变。
.可以使用 Modify(变动)命令面板的 Edit Stack(编辑堆栈层)按钮,把一个原始几何体转化为NURBS物体。
.可以把Torus Knot环形节转化为NURBS物体。
.可以把Prism棱柱转化为NURBS物体。
.可以把Loft放样物体转化为NURBS物体。
.可以把Spline样条曲线转化为NURBS物体。
.可以把Patch Gird物体转化为NURBS物体。
2.2 创建NURBS模型
当创建NURBS模型的时候,通常是遵循下面这些步骤的:
.建立一个简单的物体作为NURBS的起始物体,可以是一个曲面物体或是被转化的原始几何体。
.进入Modify(变动)命令面板。在这里能编辑原始的物体,或者建立附加的次物体来修饰造型。也可以选择删除原始物体,在Sub-Objects(次物体)里面重新建立一个起始物体。
可以直接进入到Modify(变动)命令面板,以避免建立一个附加的Top-Level(顶级)NURBS物体会出现的问题。在一个NURBS物体里,次物体可分从属的次物体和独立的次物体,从属的次物体被显示为绿色,而独立的次物体则显示为白色。
2.3 Surfaces Trimming(曲面剪切)
剪切曲面是使用一条在这个面上的封闭曲线,来剪掉曲线以外的部分,或者是在曲面上剪出一个洞。也能把剪切的部分翻转或者颠倒过来,不过这仅限于剪出的那个洞或最初剪掉的曲线以外的部分。这个功能在2.0版之前是无法实现的。
在剪切一个面之前,必须在这个面上建立一条曲面上的曲线。下列这些曲线能够剪切曲面。
.Surface-Surface Intersection Curve(面与面交叉线)
.U Iso Curve(水平Iso曲线)和V Iso Curve(垂直Iso曲线)
.Normal Projected Curve(标准投影曲线)
.Vector Projected Curve(矢量投影曲线)
.CV Curve on Surface(曲面上的可控曲线)
.Point Curve on Surface(曲面上的点曲线)
实例:在CV Surface(可控曲面)上剪出一个洞 
1、在Top视图里建立一个CV Surfacd(可控曲面)
2、然后进入Modify(变动)命令面板,按下 按钮,打开建立工具箱。然后按下 按钮,激活Top视图,在已建好的曲面上建立一条封闭的CV曲线。
3、进入Curve Level(曲线级),选择新建的曲线,把滚动面板向上托,勾选Trim(剪切)和Flip Trim(翻转剪切)就可以在曲面上剪出一个洞。
注意:如果把NURBS曲面的General(总体设置)里面的Surface Trim(曲面剪切)关掉的话(清除勾选),那么所剪切的结果则不会显示在视图中。
 
2.4 NURBS模型的变动修改和建立次物体
当进入Modify(变动)命令面板的时候,可以直接编辑NURBS模型。但不能应用一个修改器来作用于全部种类3DMAX物体。
当在Modify(变动)命令面板里编辑NURBS物体的时候,可以在浮动的工具箱里建立次点、曲线、曲面等次物体,而不用再返回到建立面板。如果经常使用3DMAX的话,会感到这是一种很特别的方法。在NURBS曲线和曲面的Modify(变动)命令面板中,增加了很多新的功能,可以建立新的NURBS次物体,如图所示。

下面将简要地介绍怎样建立NURBS Sub-objects(次物体),使我们有一个初步的概念,在后面的章节中再系统地进行学习。
.在曲线和曲面的滚动面板中都能建立Point(点)次物体。在这里所创建的点相对于这个NURBS物体来说,要么是独立的点,要么是从属于NURBS几何体的一个点。
.在曲线和曲面的滚动面板中也都能建立Curves(曲线)次物体。创建的曲线次物体和点一样有两种状态,一种是独立的Point Curve(点曲线)或CV Curve(可控曲线),另一种状态是在造型中已经存在的曲线和曲面的从属曲线。例如,用Blend Curves(融合曲线)命令将两条分离的曲线末端互相连接,中间的那条圆滑的过渡曲线就是从属曲线。
.曲面有一个自己的滚动面板。曲面次物体也分为两种。要么是独立的Point Surface(点曲面)或CV Surface(可控曲面),要么是从属于造型中已经存在的曲面。例如,用Blend Surface(融合曲面)将两个分离的曲面的边连接起来,在中间形成一个圆滑的过渡曲面,这个过渡曲面就是从属曲面。
.可以结合其它3DMAX物体。如果结合的物体不是NURBS物体,它将被转换为NURBS几何体。在3DMAX3.0版

地址:https://groups.google.com/forum/#!topic/buxy/TvwVuYIeR64
作者: buxiny

【转载】NURBS概念相关推荐

  1. NURBS概念[转载]

    第一章 NURBS概念 NURBS是一种非常优秀的建模方式,在高级三维软件当中都支持这种建模方式.NURBS能够比传统的网格建模方式更好地控制物体表面的曲线度,从而能够创建出更逼真.生动的造型.NUR ...

  2. [转载] 基本概念:java中的访问修饰符

    参考链接: Java中类或接口的访问说明符 转自:https://www.cnblogs.com/tjudzj/p/4443066.html 对Java中的修饰符一直记不住,现在结合网上的一些资料进行 ...

  3. nurbs建模能用MATLAB么,NURBS(matlab生成nurbs曲线图像)

    NURBS是Non-Uniform Rational B-Splines的缩写,是非统一有理B样条的意思.具体解释是: .Non-Uniform(非统一):是指一个控制顶点的影响力的范围能够改变.当. ...

  4. 【学习笔记】block、inline(替换元素、不可替换元素)、inline-block的理解

    本文转载 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).blo ...

  5. 系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转载)

    原文地址:http://www.ha97.com/5095.html PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消 ...

  6. 【转载】全面理解javascript的caller,callee,call,apply概念(修改版)

    今天写PPlayer,发现有段代码引起了我的兴趣: var Class = { create: function() { return function() { this.initialize.app ...

  7. Data guard概念篇一(转载)

    本文转载至以下链接,感谢作者分享! http://tech.it168.com/db/2008-02-14/200802141545840_1.shtml 一.Data Guard配置(Data Gu ...

  8. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

    http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  9. GCD介绍(一): 基本概念和Dispatch Queue (转载)

    什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写.从基本功能上讲,GCD有点像 NSOperationQueue,他们都允 ...

最新文章

  1. Oracle会话和进程数的监控
  2. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践
  3. 计算机的桌面图片还原,电脑桌面图标重启后自动复原的解决方法。
  4. 控制SAP Spartacus shipping address页面spinner显示的逻辑
  5. java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...
  6. 详测 Generics Collections TStack(1): Push、Pop、Peek - 其他功能同 TQueue
  7. 关于数据统计时的效率
  8. python自动轨迹绘制_自动轨道图,轨迹,绘制
  9. 从二项分布到泊松分布再到正态分布
  10. 【Longest Palindromic Substring】cpp
  11. 计算机专业能进教育局吗,教育局一般招什么专业
  12. 异常的分类以及什么异常触发回滚
  13. github微信小程序服务器,GitHub - cp871202/nideshop: NideShop 开源微信小程序商城服务端(Node.js + ThinkJS)...
  14. 如何查看dSYM文件的UUID?
  15. 使用微信即时扫码开门
  16. 动态规划-分苹果:m个苹果,n个盘子的分法个数
  17. 销量持续下跌涨价或许会让苹果业绩雪上加霜
  18. Java8新特性 方法引用(三)
  19. 矩阵快速幂 NOY 301
  20. linux系统外接硬盘_linux下,如何挂载一块硬盘?

热门文章

  1. C#事件中sender的小用法(转载)
  2. 如何使用音频转换器将多个音频合并为一个音频
  3. 发送的邮件还能撤回吗?如何撤回已经发出的邮件?
  4. 关于微信小程序授权登陆之后需要在个人信息页展示信息,如微信头像,昵称这件事
  5. 在 Web 浏览器上进行 RSS 阅读
  6. 用递归法求两个数的最大公约数
  7. 你了解CNAS认证吗?
  8. Numpy生成0矩阵、1矩阵、单位矩阵以及创建等差数组和等比数列
  9. 阿里云、腾讯云、百度云、京东云、华为云、他们之间的不同之处?
  10. 想做价值数万的可视化图表?这款免费软件不能错过!