2011/4/11 16:46:46
要想在计算机屏幕上产生一个三维形体图像,首先必须在计算机内构造并表示出该三维形体的模型,然后通过投影变换、视图变换及真实图形生成技术等在屏幕上产生出图像。在计算机内表示、构造三维形体并进行运算的技术,称为几何造型技术。三维几何造型的理论与技术是计算机科学、计算几何学与交互式图形显示技术的完美结合。
1. 形体模型
(1)形体模型的类型
形体在计算机内常用的表示方式有线模型、表面模型和实体模型三种。
1)线模型。 是用形体边界上的顶点和棱线来描述形体。顶点所包含的信息是形体的几何信息,棱线所包含的信息是形体的部分拓扑信息(各个顶点之间的线邻接关系)。线模型易于理解,又是表面模型和实体模型的基础。线模型没有直接给出描述形体边界上的表面和边界内部空间的拓扑信息,所以直接给出的拓扑信息是不完备的。
2)表面模型。 若把线模型中棱线包围的部分定义成面,所形成的模型就是表面模型。其数据结构是在线模型的基础上再附加一些指针,使棱线有序地连接。由于表面模型中具有形体的各个面,所以与图形有关的大多数问题都可以处理。采用表面模型后,形体的边界全部可以定义了,但形体的实心部分在边界的哪一侧是不明显的。
3)实体模型。 若要想处理完整的三维形体,最终必须用实体模型。七十年代以来,大体上有六类完整的表示实体模型方法,如单元分解法、空间枚举法、射线表示法、构造实体几何(Consturctive Solid Geometry,CSG)和边界表示法(Boundary Representation,B-rep)。大多数CAD系统同时采用CSG和B-rep两种实体造型系统。
(2)实体模型表示法
实体模型表示法主要有:
1)边界表示法。 即B-rep法,它是以形体表面的细节,即以顶点、边、面等几何元素及其相互间的联接关系表示形体,其边界的表面必须是连续的,物体的边界是所有面的并集,每一个面又可通过边和顶点来表示。
用实体的边界来表示实体,要在计算机内实现,就需要建立相关的数据结构。现在国内、国际上用得较多的大多是翼边数据结构和对称数据结构,或它们的变形。这些数据结构的特点是,用边界表示实体,数据量比较多,所使用的存储空间也较大,但有一个突出的优点就是实体的面、环、边、点的信息都直接表示出来了,因而,集合的运算结果就可以直接继续参加集合运算,而且也便于显示或图形输出。但在图形仿真中,用这种表示方法,当涉及到集合的三维布尔运算时,运算量就会变得非常巨大,难以达到仿真的实时性要求。
2)扫描表示法。 是一个得到比较广泛应用的表示三维实体的方法。它的基本原理比较简单,就是空间中的一个点、一条边或一个面沿着某一路径扫描时,所形成的轨迹将定义一个一维的、二维或三维的物体。
扫描表示法表示一个物体需要两个要素:扫描运动的物体,扫描运动的轨迹。在三维实体的表示中,应用最多的是平移扫描和旋转扫描两种。平移扫描是指做扫描运动的物体沿某一直线做扫描运动生成实体的方法,其特点是扫描的到的物体都有相同的截面。旋转扫描是指扫描体沿某一旋转轴做旋转扫描生成实体的方法,用该法构成的物体都是轴对称的,这是旋转扫描法的特点。
3)构造实体几何法CSG。 是将简单的实体(又称体素)通过集合运算合成所需要的物体。CSG是用体素(如长方体、圆柱、正棱柱、球、圆环等)拼合物体的有效表示法,它将物体的组成结构与有序的二叉树联系起来,形成CSG树,紧凑地描述物体的几何模型。CSG的树根表示物体;非叶子节点是运算符(运动算子,如平移、旋转等;正则化集合算子,如交、并、差等);叶子节点一般代表基本体素或扩展体素(如变截面扫描体,边界表示的物体)。
这一方法也有它的局限性,它只定义了所表示物体的构造方式,即不反映物体的面、边、顶点等有关的边界信息,也不显式的说明三维点集与所表示的物体在三维空间的一一对应关系。而且这种方法用于输出也不很方便。因此单纯用结构的实体几何法存在着难以克服的困难,为了解决这一困难,往往在用这种方法实现实体的定义和输入以后,将其转换为边界表示,再进行集合运算和显示输出,这是实体造型系统中常用的一种方法。
4)八叉树表示法。 是单元分解法的一种,单元分解法是将实体所在的空间进行分割,一般是分割成由立方体组成的网格。于是,一个实体可以由它所占用的立方体序列来表示。八叉树表示法是一种层次结构的占有空间计数法,由图像处理中的四叉树扩展而来,到分割的全部小立方体均为实心体或空心体,或者是进行到设备分辨率允许的最小立方体为止。八叉树表的应用范围有限,一般作为一种辅助表示形式。
2. 面向对象的几何建模方法
采用面向对象的几何建模方法有着其他方法无可比拟的优越性。面向对象是一种知识表示方法学,它提供了从一般到特殊的演绎手段(如继承等),提供了从特殊到一般的归纳形式(如类等);面向对象也是一种程序设计方法学,它基于信息隐蔽和抽象数据类型等概念,把系统中所有资源(如数据、模块以及系统)都看作“对象”,每个对象都封装了数据(或属性)和操作(或方法)。面向对象技术对对象的描述和处理接近现实世界,它的数据抽象、继承和多态机制特别适合描述内在机制复杂的对象。在面向对象技术中,具有相同结构和处理机制的对象用类来描述,对象是类的一个实例。
(1)面向对象的基本特点
1) 用对象作为对这些事物的抽象表示,事物的内部状态(即可以用一些数据来表达的特征)用对象的属性来表示,事物的运动规律(即事物的行为)用对象的方法(也称操作)表示;对象的属性与方法紧密结合在一起,成为一个独立的实体,对外屏蔽其内部细节(称为封装);
2) 事物能归类,与此对应,把具有相同属性和相同方法的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例;
3) 通过在不同程度上运用抽象的原则,可以得到较一般的类(基类)和较特殊的类(派生类)。派生类继承基类的属性和方法,面向对象技术支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档;
4) 复杂的对象可以用简单的对象作为其构成部分(称为聚合);通过关联表达对象之间的静态关系。
通过以上特征可以看出,在面向对象技术开发的系统中,系统的基本构成单位是类的实例对象。这些对象的内部属性与方法描述了事物的内部状态与运动规律。对象类之间的继承关系,聚合关系,消息与关联表达了问题域中事物之间实际存在的各种关系。
(2)面向对象的建模技术
面向对象建模技术(OMT)是围绕真实世界的概念来建立模型的全新开发方法。其基本结构是对象,它将数据结构和行为合并在一个单一实体中,具有标识的唯一性、继承性,操作的多态性和数据的封装性。面向对象建模是把系统看成相互协作的对象,对象是静态数据和动态行为的封装,属于某个类,这些类具有某种层次化的结构。系统的所有功能是通过对象之间相互发送消息来获得的。面向对象建模可以视为一个包含以下元素的概念框架:抽象、封装、模块化、层次、分类、并行、稳定、可重用及可扩展性。
面向对象建模方法与传统的面向过程方法相比,具有显著的优点:针对功能的改变,面向过程方法是灾难性的,而面向对象建模方法只需对操作进行修改或扩充即可,所以面向对象建模方法设计的系统易于修改和扩展;有利于相同的对象在不同项目中的重用;有助于设计者对系统的理解。
3. 可视化建模工具
(1)主流三维可视化建模工具
目前流行的三维可视化建模软件有很多,例如AutoCAD,Pro/E,UG,3DSMAX等等,这些优秀三维建模软件占据了市场的主流地位,在不同的领域都有着广泛的应用。
1)AutoCAD。 AutoCAD是Autodesk公司的主导产品。Autodesk公司是世界第四大PC软件公司。目前在CAD/CAE/CAM工业领域内,该公司是拥有全球用户量最多的软件供应商,也是全球规模最大的基于PC平台的CAD和动画及可视化软件企业。Autodesk公司的软件产品已被广泛地应用于机械设计、建筑设计、影视制作、视频游戏开发以及Web网的数据开发等重大领域。
AutoCAD是当今最流行的二维绘图软件,它在二维绘图领域拥有广泛的用户群。AutoCAD有强大的二维功能,如绘图、编辑、剖面线和图案绘制、尺寸标注以及二次开发等功能,同时有部分三维功能。AutoCAD提供AutoLISP、ADS、ARX作为二次开发的工具。在许多实际应用领域(如机械、建筑、电子)中,一些软件开发商在AutoCAD的基础上已开发出许多符合实际应用的软件。
2)Pro/Engineer。 Pro/Engineer系统是美国参数技术公司(Parametric Technology Corporation,PTC)的产品。PTC公司提出的单一数据库、参数化、基于特征、全相关的概念改变了机械CAD/CAE/CAM的传统观念。Pro/Engineer系统用户界面简洁,概念清晰,符合工程人员的设计思想与习惯。整个系统建立在统一的数据库上,具有完整而统一的模型。Pro/Engineer建立在工作站上,系统独立于硬件,便于移植。Pro/Engineer软件能将设计至生产全过程集成到一起,让用户能够同时进行同一产品的设计制造工作,即实现所谓的并行工程。
Pro/Engineer系统主要功能如下:真正的全相关性,任何地方的修改都会自动反映到所有相关地方;具有真正管理并发进程、实现并行工程的能力;具有强大的装配功能,能够始终保持设计者的设计意图;容易使用,可以极大地提高设计效率。
(2)3D Studio MAX
3D Studio MAX,常简称为3DS MAX或MAX,是Discrect公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,最高发行到8.0版本。3DS MAX是功能强大,使用最广泛的专业3D建模、动画和图像制作软件。
作为专业的3D建模和动画软件,3DS MAX具有以下突出的特点:
1) 基于PC系统的低配置要求。 3D Studio MAX对硬件的要求不太高,能稳定运行在Windows平台上,而不必使用昂贵的图形工作站。安装插件(plug-ins)可提供3DS MAX所没有的功能;
2) 强大的角色动画制作能力。 可堆叠的建模步骤,使制作模型有非常大的弹性;
3) 强大的建模技术。 3D MAX的造型技术很强大,它的建模方式多种多样。3D MAX内部的建模工具已十分强大,也可以使用它的各种外部模块或者其他兼容软件建模。3D MAX引入了面片、网格建模,特别是NURBS曲线建模的引入使许多复杂物体的建模简单多了,也使个人电脑的三维制作水平真正达到了工作站一级。3D MAX的建模技术很多,一个对象的建立可以使用多种造型技术实现。
① 基本造型:由3D Studio MAX提供的标准几何体、平面图形,可以直接创建。
② 放样造型:放样是一个强大的造型功能,在三维制作中占有举足轻重的地位。它通过提供给图形一条路径并在路径中放置相同的或不同的图形来制作复杂的造型。
③ 复合造型:通过合成方式产生对象,如布尔运算、变形、离散等等。
④ 适配变形建模:该功能根据三视图的原理演化而来。先给定一条路径和在此路径上的一个剖面图形,再由另外两个图形来控制物体的形状。
⑤ 面片建模:以面片的方式创建网格模型,是一种独特的造型方法。面片建模中使用的对象只包含三维面或网格三角形。通过连接许多小三角就可以快速地建立网格表面而产生造型。
⑥ NURBS建模:NURBS建模在建立复杂表面方面的功能很强,并能在表面之间进行调和。NURBS建模系统的成功引入,很大程度上取代了面片建模的中坚地位。它可以很容易地创建人物、动物、汽车等复杂造型。
4) 面向对象性。 如果说3D MAX的对象是指能够选中并对其进行操作的所有部件,那么面向对象的意义在于创建的对象有自我感应能力,只有合法的操作处于可用状态,不可用的操作要么隐藏在界面之外,要么为灰色显示。3D MAX采用了面向对象编程(OOP)语言,极大地提高了用户的工作效率,同时节省了很多时间。面向对象的另一个重要功能是用户界面随操作的改变而随时发生变化,对使用者而言,同样起到提高工作效率的作用。
5)材质编辑器。 所谓材质,就是指定物体的表面或数个面的特性,它决定这些平面在着色时以特定的方式出现,如颜色(Color)、光亮程度(Shininess)、自发光度(Self-Illumination)及不透明度(Opacity)等。指定到材质上的图形称为贴图(Maps)。用多种方法贴图能把最简单的模型变成丰富的场景画面。在3D Studio MAX中巧用贴图的技术还能节省许多不必要的建模时间,以达到事半功倍的效果。