690 likes | 970 Views
计算机图形学与 CAD 技术. 华中科技大学 国家 CAD 支撑软件工程技术研究中心 王彦伟 Ywwang_cad@mail.hust.edu.cn. 第 4 讲 实体造型. 目标 1) 了解实体造型技术的作用; 2) 掌握形体的线框、曲面和实体表示的特点; 3) 掌握形体拓扑信息和几何信息的概念及其联系; 4) 掌握实体 CSG 表示的过程及优缺点; 5) 掌握实体 Brep 表示的方法及优缺点; 6) 了解实体的其他表示方法; 7) 了解正则实体的概念和性质; 8) 了解实体布尔运算的过程和结果; 9) 了解实体造型中欧拉公式及作用;
E N D
计算机图形学与CAD技术 华中科技大学 国家CAD支撑软件工程技术研究中心 王彦伟 Ywwang_cad@mail.hust.edu.cn
第4讲 实体造型 目标 1) 了解实体造型技术的作用; 2) 掌握形体的线框、曲面和实体表示的特点; 3) 掌握形体拓扑信息和几何信息的概念及其联系; 4) 掌握实体CSG表示的过程及优缺点; 5) 掌握实体Brep表示的方法及优缺点; 6) 了解实体的其他表示方法; 7) 了解正则实体的概念和性质; 8) 了解实体布尔运算的过程和结果; 9) 了解实体造型中欧拉公式及作用; 10) 了解简单光照模型、形体消隐及相关的真实感显示算法过程。
第4讲 几何造型 4.1.三维实体建模的基本概念 4.1.1实体建模的概念 4.2. 三维实体表示方法 4.2.1实体几何构造法 4.2.2边界表示法 4.2.3 其他表示法 4.3. 常用的几何形体定义方法 4.3.1基本体素法 4.3.2扫描变换法 4.3.3局部操作法 4.3.4特征表示法 4.4. 三维造型中的集合运算及欧拉运算 4.4.1集合运算 4.4.2欧拉运算 4.5、三维形体的显示 4.5.1三维形体的显示原理 4.5.2 三维形体的消隐处理 4.5.3 三维形体的真实感显示
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 几何造型技术是研究在计算机中,如何表达物体模型形状的技术。几何造型通过对点、线、面、体等几何元素的数学描述,经过平移、旋转、变比等几何变换和并、交、差等集合运算,产生实际的或想象的物体模型。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 计算机中表示形体,通常用线框模型、表面模型和实体模型。 线框模型和表面模型保存的三维形体信息都不完整。 只有实体模型才能够完整地、无歧义地表示三维形体。 在实体模型的表示中,出现了许多方法,基本上可以分为空间分解表示(单元枚举、八叉树分解、单元分解等)、构造表示(CSG)和边界表示(BREP)三大类。构造表示是按照生成过程来定义形体的方法,构造表示通常有扫描表示、构造实体几何表示和特征表示三种。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 点用三维坐标表示,是最基本的元素 边是形体相邻面的交界,可为空间直线或曲线 环是有序、有向的封闭边界,外环仅一个,逆时针方向,内环可有可无,也可多个,方向顺时针。 面是一个单连通区域,可以是平面或曲面,由一个外环和若干个内环组成;面的方向由面的法矢决定,法矢向外为正向面。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 实体是由若干个面组成的闭包,实体的边界是有限个面的集合。 形体表面上任一点的足够小的邻域在拓扑上应是一个等价的封闭圆,即围绕该点的形体邻域在二维空间中可构成一个单连通域,我们把满足该定义的形体称为正则形体。否则为非正则形体,如存在悬面、悬边的长方体为非正则形体。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 线框模型用顶点和棱边表示三维形体,其棱边可以为直线、圆弧、二次曲线及样条曲线组成 。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 线框模型在计算机内存储的数据结构: 顶点表:记录各顶点坐标值; 棱线表:记录每条棱线所连接的顶点及走向。 以立方体为例,其线框模型结构如下表:
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 • 优点 • 结构简单,计算机内部易于表达,绘制快速; • 物体的三维数据可以产生任意视图,为生成工程图带来了方便 缺点 • 有二义性,缺少表面轮廓信息,当形状复杂、棱线过多时,会引起模糊理解。 2. 在数据结构中缺少边与面、面与体之间关系的信息。从原理上讲,此种模型不能消除隐藏线、计算物性、生成数控加工刀具轨迹、有限元网格剖分、物体干涉检验等。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 表面模型是用有连接顺序的棱边围成的有限区域来定义形体的表面,再由表面的集合来定义形体。 表面可以是平面,也可以是柱面、球面等类型的二次曲面,也可是样条曲面构成的自由曲面。 表面模型是在线框模型的基础上,增加有关面边信息以及表面特征、棱边连接方向等内容。 表面模型存储几何信息的方法是建立三表结构,即顶点表、边表和面表。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 表面模型常用表达方法如下: 1)顶点坐标值存放在顶点表中; 2)含有指向顶点表指针的边表,用来为多边形的每条边标识顶点;边有方向,从起点到终点为正方向; 3)面表有指向边表的指针,用来为每个表面标识其组成边。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 表面模型的特点 表面模型可以满足面面求交,线面消隐、明暗处理和数控加工的要求。 表面模型唯一没有解决的问题是形体究竟在表面的哪一侧,因而在物性计算、有限元分析等应用中,表面模型在形体的表示上仍然缺乏完整性。
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 实体模型 为了解决形体存在于表面的哪一侧的问题,可采用实体模型来描述三维立体 在表面模型的基础上可用三种方法来定义表面的哪一侧存在实体。 1)给出实体存在一侧的一点; 2)直接用表面的外法矢来指明实体存在的一侧; 3)用有向棱边隐含地表示表面的外法矢方向,该方 法为CAD系统广泛采用。 (思考:为什么不直接用法矢?)
4.1.三维实体建模的基本概念 4.1.1实体建模的概念 实体模型的特点 根据实体模型,可以进行物性计算(如体积、质量,惯量)、有限元分析等应用。 从前面的实体模型可知,本质上我们仍然采用形体的边界表面的数学描述代替实体描述。 这种典型的描述方法通常称为实体的边界表达方法(BREP)
4.2.三维实体表示方法 4.2.1构造实体几何法 构造实体几何表示(Constructive Solid Geometry,缩写为CSG)的含义是任何复杂的形体都可用简单形体通过正则集合运算组合,并配合几何变换来表示。 在1977年由罗切斯特(Rochester)大学的Voelcker和Bequicha等人首先提出的。 CSG中物体形状的定义以集合论为基础,先定义集合本身,其次是集合之间运算。所以,CSG表示先定义有界体素(如立方体、圆柱、球、锥、圆环等),然后将这些体素进行并、交、差运算(如图)。
4.2.三维实体表示方法 4.2.1构造实体几何法 A 体 B 体 A-*B A∩*B A+*B
4.2.三维实体表示方法 4.2.1构造实体几何法 形体的CSG可看成是一个有序的二叉树,其叶子节点是体素或几何变换的参数,非叶节点则是布尔运算的操作符或几何变换操作。任何子树表示其下两个节点的组合或变换的结果,树根表示最终的形体。 运算规则(前序遍历):自上而下,自左而右
4.2.三维实体表示方法 4.2.1构造实体几何法 用CSG树表示一个形体是无二义性的,但一个形体可以有不同的CSG树表示,取决于使用的体素、构造操作方法和操作顺序。 CSG表示依赖稳定可靠的布尔运算算法支撑。 优点: (1) 数据结构比较简单,信息量小,易于管理; (2) 每个CSG都和一个实际的有效形体相对应; (3) CSG树记录了形体的生成过程,可修改形体生成的各环节以改变形体的形状。 缺点: (1) 不能进行形体的局部修改,如面、边、点等; (2) 直接基于CSG表达形体,其组合运算及显示效率很低。
4.2.三维实体表示方法 4.2.2 边界表示法 边界表示(Boundary Representation,缩写Brep)通过描述实体的边界来表示实体。实体的边界将该实体分为实体内点集和实体外点集,是实体与环境之间的分界面。定义了实体的边界,实体就被唯一定义,如右图所示。 边界表示是用一组曲面(或平面)来描述三维物体,这些曲面(或平面)将物体分为内部和外部。典型例子是平面立体表示和曲面表示的立体。 实体的边界通常是由面的并集来表示,而每个面又由它的数学定义加上其边界来表示,面的边界是环边的并集,而边又是由点来表示的。
4.2.三维实体表示方法 4.2.2 边界表示法 实体是由若干个面组成的闭包,实体的边界是有限个面的集合。 形体表面上任一点的足够小的邻域在拓扑上应是一个等价的封闭圆,即围绕该点的形体邻域在二维空间中可构成一个单连通域,我们把满足该定义的形体称为正则形体。否则为非正则形体,如存在悬面、悬边的长方体为非正则形体。
4.2.三维实体表示方法 4.2.2 边界表示法 Brep中必须表达的信息分为两类: 一类是几何信息。描述形体的大小、位置、形状等基本信息,如顶点坐标,边和面的数学表达式等。 另一类是拓扑信息。拓扑信息描述形体上的顶点、边、面的连接关系。 拓扑信息形成物体边界表示的“骨架”,形体的几何信息犹如附着在“骨架”上的“肌肉”。 在Brep中,拓扑信息是指用来说明体、面、边及顶点之间连接关系的这一类信息,例如面与哪些面相邻;面由那些边组成等。 描述形体拓扑信息的根本目的是便于直接对构成形体的各面、边及顶点的参数和属性进行存取和查询,便于实现以面、边、点为基础的各种几何运算和操作。
4.2.三维实体表示方法 4.2.2 边界表示法 左外环 左面 右外环 右面 先对点、边、环、面进行编号,编号顺序自定,但最好有利于编程实现;边的方向自定。 填表 注意: 边的方向定义后,其左右外环、左右面的连接关系唯一确定(右手法则),如右图: 环是由有序、有向的边组成的封闭边界,按右手法则,外环逆时针方向(确定面的外法矢方向),内环顺时针。 面可以是平面或曲面,由一个外环和若干内环组成;法矢向外为正向面(由外环方向确定,确保指向实体外侧)。
4.2.三维实体表示方法 4.2.3 其它表示法 空间分割表示 将形体按某种规则分解为小的更易于描述的部分,每一小部分又可分为更小的部分,这种分解过程直至每一小部分都能够直接描述为止。 • 空间位置枚举表示 • 八叉树表示 • 其它表达方法(略)
4.2.三维实体表示方法 4.2.3 其它表示法 空间位置枚举法是一种穷举表示法,它可以用来表示任何物体,通常情况下,它只是物体的近似表示。 采用这种表示很容易实现物体的集合运算以及计算物体的诸如体积等的许多整体性质。 缺点:如果没有明确给出物体的边界信息,不适于图形显示,并且它占据的存储量非常大。 当立方体被物体所占据时,取值为1,否则为0。这样,三维数组就唯一表示了包含于立方体之内的物体。
4.2.三维实体表示方法 4.2.3 其它表示法 八叉树表示法对空间位置枚举法中的空间分割方法做了改进,它并不是统一将物体所在的立方体空间均匀划分成边长相等的小立方体,而是对空间进行自适应划分,采用具有层次结构的八叉树来表示物体。 八叉树表示在形体三角剖分,动画的干涉检验中经常采用(多数情况下作为临时数据结构生成以便实现某种特定算法) 三维形体的八叉树表示类似于二维图形的四叉树表示。
4.2.三维实体表示方法 4.2.3 其它表示法 为描述简单起见,以四叉树表示为例,在一个包含二维图形的正方形区域中考虑问题。这个正方形区域就是四叉树的根节点,它可能处于三种状态:完全被图形覆盖、部分被覆盖或完全没有被覆盖,分别以F,P和E标识。 若根节点处于状态F或E,则四叉树建立完毕;否则,将其划分为四个小正方形区域,分别标以编码0,1,2,3,这四个小正方形区域就成了第一层子节点,对它们做类似于根节点的处理。如此下去,直至建立图形的四叉树表示。
4.2.三维实体表示方法 4.2.3 其它表示法 类似于四叉树方法,对图形进行八叉树表示
CAD系统几何建模过程 形体定义输入1 形体定义输入2 内部CSG+BREP表达 三角剖分 布尔运算 结果形体BREP表达 形体定义输入n 显示数据结构 显示渲染 显示参数定义
4.3.常用的几何形体定义方法 对于设计师而言,所关心的是如何快捷、方便地设计一个满足需求的零件结构(即零件形体)。 对CAD系统来说,形体定义就是用少量的参数描述几何形体的大小、形状和位置。 几何造型系统的优劣首先取决于是否提供好的形体定义能力,除了要有良好的用户界面以外,还需提供多种造型方法,这样不仅能扩大造型系统的几何覆盖率,而且能提高工程师的设计效率。 常用几类形体输入方法: 1)基本体素法 2)扫描变换法 3)局部操作 4)特征表示
4.3.常用的几何形体定义方法 4.3.1 基本体素法 常用的基本体素有方盒、锥、柱、球、环等 绝大多数商用CAD系统都提供该功能,尤其是游戏系统应用更广泛。用户仅需输入一些简单的参数便可以定义这些体素的大小、形状和位置。因此商用系统提供自定义体素功能,为用户定义专用的特征库提供方便。 值得注意的是:用户仅需按提示交互定义(对话框或简单草图)形体,计算机内部用CSG表达记录定义参数及历史,同时自动生成定义形体的BREP表达模型。
4.3.常用的几何形体定义方法 4.3.2 扫描变换法 扫描变换是基于一条曲线或表面或形体沿某一路径运动而产生形体,现有CAD使用广泛。 平行扫和旋转扫变换是最基本的方法。如果在平扫过程中引入缩放参数,还可以得到截面变化的锥形形体,如果扫描方向与z轴成一夹角,扫出的形体将是一个错切体。 此外有自由扫、变截面扫、蒙皮技术等生成曲面和实体。
4.3.常用的几何形体定义方法 4.3.2 扫描变换法 平行扫变换通常由用户简单地定义一截面轮廓,然后沿指定方向平行延伸一定的距离生成平扫体 旋转扫变换通常由用户简单地定义一截面轮廓,然后绕给定轴线旋转一定的角度生成旋转体。
4.3.常用的几何形体定义方法 4.3.2 扫描变换法 广义扫变换 值得说明的是:用户仅需按提示交互定义扫描截线及扫描轨迹,计算机内部用CSG表达记录定义参数及历史,同时自动生成定义形体的BREP表达模型。
4.3.常用的几何形体定义方法 4.3.3 局部操作法 局部操作从宏观上来看不改变形体的整体结构,只作局部修改。如圆角过渡、倒角等
4.3.常用的几何形体定义方法 4.3.3 局部操作法 造型系统提供局部操作功能,目的是为用户提供更直观方便的定义形体局部信息的方法。 值得说明的是:用户仅需按提示交互定义提供局部操作功能,计算机内部用CSG表达记录定义参数及历史,同时直接修改原始输入形体的BREP表达模型(即直接修改形体的面、环、边、点等数据表),并形成新的BREP表达。 局部操作功能比在整体意义下形体间的布尔运算具有更高的效率和稳定性 。
4.3.常用的几何形体定义方法 4.3.4 特征表示法 实体模型仅提供产品的几何形状信息,但不能显式地标注尺寸,未提供公差、表面粗糙度、材料性能和加工要求等重要的产品制造信息。
4.3.常用的几何形体定义方法 4.3.4 特征表示法 商用CAD系统中广泛采用特征造型方法弥补上述不足。特征模型表达高层次的具有功能意义的实体,如孔、槽等,其操作对象不是原始的几何元素,而是产品的功能要素、技术信息和管理信息,体现设计意图。
4.3.常用的几何形体定义方法 4.3.4 特征表示法 特征造型方法输入直观、方便,便于表达工程语义,符合工程技术人员的设计思维及操作习惯。 用户采用特征方式输入,但计算机内部几何和拓扑信息仍采用BREP表达,工程语义则通过属性附加在几何和拓扑信息中。 特征定义的历史过程转换为CSG表达,便于实现重构,Redo,Undo等操作。 Solidworks工程语义定义标识
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 几何造型中的布尔运算以集合论、拓扑学为理论基础。早期造型系统规定形体是三维欧氏空间中的正则集合。 任何物体都可用三维欧氏空间中点的集合来表示。但反过来,三维欧氏空间中任意点的集合却不一定对应于一个物体,如一些孤立点、悬面、悬线等。 正则点集的定义就是为了避免孤立点、悬面、悬线。 非正则点集 正则点集 三维正则点集含义:无悬面、悬边及孤立点的有限空间三维实体。
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 想一想,CAD系统是是如何将简单形体拼合成复杂形体的?
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 常见物体(无论多复杂)均可用用三维空间点集来表示; 复杂形体可通过简单形体的布尔运算生成,布尔运算也称为集合运算; CAD中常用布尔运算(并、交、差)操作符有: A∪B 并运算,其结果是求A、B 两个体素之和; A-B 差运算,其结果是从A 体减去B 体后余下的部分; A∩B 交运算,其结果是A、B两个体素的公共部分。
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 布尔运算主要有一维、二维和三维布尔运算
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 s1 d1min d1max n1 n2 n4 n3 例:A与B交运算(A∩B) 1) 预检查两物体是否相交 利用包容盒加速判断 常用的四种包容盒: 集合运算步骤 轴对齐包容盒AABB 有向包容盒OBB 交运算的结果(A∩B) 球包容盒 离散有向多面体K-DOP
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 例:A与B交运算(A∩B) 2) 计算两物体所有表面之间交线 曲面求交算法(如前介绍) 交运算的结果(A∩B)
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 3) 对两物体表面进行判定分类 其余蓝色表面 顶部红色表面 交运算的结果(A∩B) 例:A与B交运算(A∩B)
4.4.三维造型中的集合运算及欧拉运算 4.4.1集合运算 4) 建立新的数据结构 例:A与B交运算(A∩B) 形成新形体的BREP表达,并能进行下一轮布尔运算 交运算的结果(A∩B)
4.4.三维造型中的集合运算及欧拉运算 4.4.2欧拉运算 • 欧拉运算也是常用的一种造型运算方法,是通过调整形体的点、边、面而产生新的形体的处理方式。欧拉运算是用局部操作的方法实现实体造型;而正则集合运算是用全局操作的方法实现实体造型。 • 1)欧拉公式 • 欧拉公式用来检验一个实体表面上多边形网格各元素(顶点、边、面)之间的拓扑关系是否满足有效实体的约束条件,从而检验新产生的实体是否为有效实体。 • 对于与球体具有等价拓扑的简单多面体,如:长方体、三棱锥体等。设它们的顶点数V,边数E,面数F,有下述关系: • V – E + F =2 • 这就是著名的欧拉公式。 • 对于一般多面体,。设多面体的顶点数V,边数E,面数F,孔环数H,互不连接多面体数B,贯穿多面体的孔数P,有拓宽的欧拉公式为: • V – E + F – H = 2(B-P) • 拓宽的欧拉公式可以用来检查任意实体的有效性或正则性。
4.5.三维形体的显示 4.5.1 三维形体的显示原理 三视图、工程图 通过对线框模型的正交投影和消隐计算获得 剖视图 通过集合运算中的“差”运算得到 具有真实感的图形 用希望的颜色填充显示所有可见的多边形面,颜色根据光照情况对各平面设定,可以设定不同色度和亮度
4.5.三维形体的显示 4.5.1 三维形体的显示原理 经过三角剖分处理,计算机内部增加了完整的三维形体逼近多面体近似表达数据结构(即表面全部由以三角形为主的多边形构成,如右下图所示)。 在线框显示模型中,为显示方便,分别对边界边和内部边作标识。 显示方法:遍历所有多边形网格的点表和边表。 两种显示状态可以任选: a)仅显示轮廓边(内部边不显示) b)显示所有离散多边形 特点:简单快捷,但有二义性。