《(本科)3章 几何造型ppt课件.ppt》由会员分享,可在线阅读,更多相关《(本科)3章 几何造型ppt课件.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程主讲人:3章 几何造型2022/5/13第第3章章 几何造型几何造型3.1 图形的几何模型图形的几何模型3.2 三角图元及三角形网格三角图元及三角形网格2022/5/13第第3章章 几何造型几何造型 图形学建模图形学建模 对图形对象的数学描述对图形对象的数学描述 运动、性质、组织关系、历史来源、表征意义运动、性质、组织关系、历史来源、表征意义 3DMax建模,包括了形体、形体运动、光学材质等多项内容建模,包括了形体、形体运动、光学材质等多项内容 几何造型几何造型 用几何元素来描述一个对象形状用几何元素来描述一个对象形状 图形对象在表达上是连续的。建立这种表达方法上的图形称图形对象在表达上是
2、连续的。建立这种表达方法上的图形称为矢量图形。为矢量图形。 物理建模物理建模 建立描述火焰、云、水、植物、衣物等的数据模型建立描述火焰、云、水、植物、衣物等的数据模型2022/5/133.1 图形的几何模型图形的几何模型 基本思路:基本思路: 先确定几种基本的几何元素,然后建立一种组织方法,先确定几种基本的几何元素,然后建立一种组织方法,将足够数量的几何元素组织在一起,从而表达出一个完整将足够数量的几何元素组织在一起,从而表达出一个完整的形体。的形体。2022/5/133.1 图形的几何模型图形的几何模型 1. 基本几何元素基本几何元素几何建模中的基本几何元素几何建模中的基本几何元素 点点 线
3、线 环环 面面 体体2022/5/133.1 图形的几何模型图形的几何模型 环有方向环有方向2022/5/133.1 图形的几何模型图形的几何模型2. 线框模型线框模型 使用点和线的集合来描述三维体,数据结构包括两个表:使用点和线的集合来描述三维体,数据结构包括两个表: 点表,记录所有点的坐标点表,记录所有点的坐标 边表,记录所有线边表,记录所有线2022/5/133.1 图形的几何模型图形的几何模型- 线框模型仅记录点和线,不包含其它信息,因此点和线是次线框模型仅记录点和线,不包含其它信息,因此点和线是次序无关的,可以任意编号。序无关的,可以任意编号。- 优点:涉及的元素少,数据结构简单,存
4、储和编辑修改等处优点:涉及的元素少,数据结构简单,存储和编辑修改等处理都容易实现。理都容易实现。- 缺点:包含的信息过少,不能计算遮挡关系进行消隐,不能缺点:包含的信息过少,不能计算遮挡关系进行消隐,不能生成带有色彩明暗的图。生成带有色彩明暗的图。2022/5/133.1 图形的几何模型图形的几何模型3. 表面模型表面模型 在线框模型的基础上,再增加一个面的数据结构,就成为表在线框模型的基础上,再增加一个面的数据结构,就成为表面模型。面模型。 立方体共立方体共6个面,个面, 每个面由每个面由4个线组成,个线组成, 增加面表如下增加面表如下2022/5/133.1 图形的几何模型图形的几何模型-
5、 优点:能进行消隐,着色优点:能进行消隐,着色- 缺点:面表中的面并没有正反面的区分,不能指明物体的内缺点:面表中的面并没有正反面的区分,不能指明物体的内部和外部部和外部2022/5/133.1 图形的几何模型图形的几何模型4. 实体模型实体模型 实体模型与表面模型一样,仍然是三个表实体模型与表面模型一样,仍然是三个表(1)一个面表需要指明它所属的实体。一个面表对应于一个)一个面表需要指明它所属的实体。一个面表对应于一个实体,如果有多个实体,就应该使用多个面表。实体,如果有多个实体,就应该使用多个面表。(2)一个面表中所有的面放在一起,必须封闭的,而且没有)一个面表中所有的面放在一起,必须封闭
6、的,而且没有多余的部分。连接成的整张面必须是无边界、无重叠、无缺失多余的部分。连接成的整张面必须是无边界、无重叠、无缺失开孔的完整面。开孔的完整面。(3)面表中每一个面,都要求隐含地或显式地包含方向信息。)面表中每一个面,都要求隐含地或显式地包含方向信息。2022/5/133.1 图形的几何模型图形的几何模型(4)基本元素点、线、面,组合在一起构成一个整张的面。)基本元素点、线、面,组合在一起构成一个整张的面。由于元素被共用,才使得所有的几何元素被连接到了一起,因由于元素被共用,才使得所有的几何元素被连接到了一起,因此这种连接关系是内在的。此这种连接关系是内在的。(5)正则实体。简单地说,正则
7、实体就是客观现实中能够物)正则实体。简单地说,正则实体就是客观现实中能够物理性存在的实体。理性存在的实体。 对正则实体的定义,目的是排除不合理的、物理上不能实现对正则实体的定义,目的是排除不合理的、物理上不能实现的结构。的结构。2022/5/133.1 图形的几何模型图形的几何模型5. 边界表示法和翼边结构边界表示法和翼边结构 边界表示法是一个概念,而不是一个具体的数据结构。所谓边界表示法是一个概念,而不是一个具体的数据结构。所谓边界,是指实体内部和外部的分界。如果将这个边界用数据结边界,是指实体内部和外部的分界。如果将这个边界用数据结构表达出来,也就唯一地表示出了一个实体。构表达出来,也就唯
8、一地表示出了一个实体。 边界表示法的描述中,包括了实体的几何信息和拓扑信息。边界表示法的描述中,包括了实体的几何信息和拓扑信息。2022/5/133.1 图形的几何模型图形的几何模型翼边结构翼边结构 以边(即线元素)为中心来组织数据,表达模型的拓扑关系。以边(即线元素)为中心来组织数据,表达模型的拓扑关系。从一个边出发,可以容易地找出它连接的面和其它的边,有着从一个边出发,可以容易地找出它连接的面和其它的边,有着明显的局部性。明显的局部性。 编号为编号为2的边。翼边结构数据包括:的边。翼边结构数据包括: 两个端点两个端点8,4 左右两个环,面左右两个环,面1和面和面2; 左环中与起点相连的边,
9、边左环中与起点相连的边,边4; 右环中与起点相连的边,边右环中与起点相连的边,边10; 左环中与终点相连的边,边左环中与终点相连的边,边1; 右环中与终点相连的边,边右环中与终点相连的边,边9。2022/5/133.1 图形的几何模型图形的几何模型6. 体素构造法(体素构造法(CSG法)法) 现实中的一个物体,从形状上总可以看做是由一些比较小的现实中的一个物体,从形状上总可以看做是由一些比较小的物体堆叠出来的。物体堆叠出来的。 体素构造法进行建模,需要建立体素库。体素构造法进行建模,需要建立体素库。 体素即实体的元素,是简单的、比较规范的实体,且为正则体素即实体的元素,是简单的、比较规范的实体
10、,且为正则实体。标准几何体,如球、圆柱、圆锥、立方体、正多面体等实体。标准几何体,如球、圆柱、圆锥、立方体、正多面体等等,以及从工业标准件中进行选用。等,以及从工业标准件中进行选用。2022/5/133.1 图形的几何模型图形的几何模型 建立实体的正则运算方法。建立实体的正则运算方法。 对正则实体进行正则运算,得到的结果仍然是正则实体。正对正则实体进行正则运算,得到的结果仍然是正则实体。正则运算过程实质上就是堆叠的过程。则运算过程实质上就是堆叠的过程。 实体正则运算有三种:实体正则运算有三种: 并运算,记号为并运算,记号为()。将()。将2个物体合并为一个物体。个物体合并为一个物体。 交运算,
11、记号为交运算,记号为()。计算结果为)。计算结果为2个物体重叠占有相同个物体重叠占有相同空间的部分物体。空间的部分物体。 差运算,记号为。计算结果为第差运算,记号为。计算结果为第1个物体中减去与第个物体中减去与第2个物个物体重叠部分后所剩余的物体。体重叠部分后所剩余的物体。2022/5/133.1 图形的几何模型图形的几何模型 2022/5/133.1 图形的几何模型图形的几何模型7. 扫描建模方法扫描建模方法 以一个平面的轮廓为基体,沿某一路径的运动而产生的形体。以一个平面的轮廓为基体,沿某一路径的运动而产生的形体。 一是被运动的基体一是被运动的基体 二是基本运动的路径。二是基本运动的路径。
12、 如果是变截面扫描,还要给出截面的变化规律。如果是变截面扫描,还要给出截面的变化规律。 基本的扫描方式有三种:平移扫描,旋转扫描,和广义扫描。基本的扫描方式有三种:平移扫描,旋转扫描,和广义扫描。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 数字媒体领域的实体几何造型,最常见的是网格模型。数字媒体领域的实体几何造型,最常见的是网格模型。 构成网格模型最基本的面元就是三角形。构成网格模型最基本的面元就是三角形。 属于实体模型一类。和严格的实体模型比,限制要少,如网属于实体模型一类。和严格的实体模型比,限制要少,如网格不需要封闭。格不需要封闭。2022/5/133.2 三角图
13、元及三角形网格三角图元及三角形网格存储网格数据的数据结构,只需要存储网格数据的数据结构,只需要2个表,顶点表和面表。个表,顶点表和面表。(Unity的定义)的定义) float VerticesN,3; /顶点数组顶点数组 int FaceIndexM,3; /面索引数组面索引数组 其中第其中第i个面(个面(iN),的三个顶点就是),的三个顶点就是FaceIndexi,0,FaceIndexi,1,FaceIndexi,2。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 三角形的三个顶点要按顺序存放,使得全体面的法线一致。三角形的三个顶点要按顺序存放,使得全体面的法线一致。
14、 一般是规定法线指向体的外侧,但也有约定指向内侧的情况。一般是规定法线指向体的外侧,但也有约定指向内侧的情况。我们这里都认为法线是指向外侧的。我们这里都认为法线是指向外侧的。 对对FaceIndex数组进行搜索,可以得到:数组进行搜索,可以得到: - 一个点所连接的所有的面;一个点所连接的所有的面; - 网格中所有的边;网格中所有的边; - 一个边所连接的所有的面;一个边所连接的所有的面; - 一个边被使用的次数。一个边被使用的次数。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格点区分为内点和边界点,点区分为内点和边界点, 方法方法1:计算该点所在的面在该顶点处相邻边的夹角
15、,所有:计算该点所在的面在该顶点处相邻边的夹角,所有关联面夹角的总和如果是关联面夹角的总和如果是180度,则为内部点。度,则为内部点。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格方法方法2 搜索所有的边,统计边被使用的次数。搜索所有的边,统计边被使用的次数。 如果一个边被使用的次数为如果一个边被使用的次数为1,则该边是边界上的边;,则该边是边界上的边; 如果一个边被使用的次数为如果一个边被使用的次数为2,则该边是在网格的内部;,则该边是在网格的内部; 如果一个边被使用的次数大于如果一个边被使用的次数大于2,则在该处,存在着重叠面,则在该处,存在着重叠面,这是一种不合理的结
16、构,有可能是来自建模时的操作错误。这是一种不合理的结构,有可能是来自建模时的操作错误。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格例:例: 面(面(1,2,5),面(),面(4,3,5)、面()、面(2,3,4) 从面中可以提取到边的信息,共有从面中可以提取到边的信息,共有9个边:个边:(1,2)、()、(2,5)、()、(5,1)(4,3)、(、(3,5)、()、(5,4)(2,3)、)、(3,4)、(、(4,2) 2-5线存在缝隙线存在缝隙2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 约定三角形的三个顶点依次为约定三角形的三个顶点依次为A,B,C
17、,都是向量形式,其分,都是向量形式,其分量分别为量分别为(ax,ay,az), (bx,by,bz) , (cx,cy,cz)。 2022/5/133.2 三角图元及三角形网格三角图元及三角形网格1. 三角形的法线方向三角形的法线方向 三角形的方向平面法线方向,法线方向指向物体外侧。三角形的方向平面法线方向,法线方向指向物体外侧。 坐标系为右手坐标系,三角形顶点顺序为坐标系为右手坐标系,三角形顶点顺序为ABC图例时图例时 n = ( 1 1 1 )AC()AB(n2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 左手坐标系左手坐标系图例时图例时 n = ( 1 1 1 ) 左
18、手坐标系左手坐标系图例时图例时 n = ( 1 1 -1 )AC()AB(n)()C(ABAn2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 法线仅用于表示方向,长度没有意义。因此法线还需要单法线仅用于表示方向,长度没有意义。因此法线还需要单位化(规范化),转成为单位向量位化(规范化),转成为单位向量nnn 2022/5/133.2 三角图元及三角形网格三角图元及三角形网格 2. 三角形面积计算三角形面积计算 根据矢量积的定义,三角形面积可以直接由矢量积计算根据矢量积的定义,三角形面积可以直接由矢量积计算)AC()AB(21S2022/5/133.2 三角图元及三角形网格三
19、角图元及三角形网格 3. 顶点法线的计算顶点法线的计算 考虑到一个顶点为多个三角形共用,那么顶点的法线应该和考虑到一个顶点为多个三角形共用,那么顶点的法线应该和三角形内点不同。三角形内点不同。 设一个顶点连接了设一个顶点连接了N个面,其第个面,其第i个面的构成顶点个面的构成顶点 ,法线为法线为 ,平均方法有三种。,平均方法有三种。iiiC,B,Ain2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(1)简单平均)简单平均(2)按夹角加权平均)按夹角加权平均 计算每个三角形在该顶点处的内角,以夹角为权重进行平均。计算每个三角形在该顶点处的内角,以夹角为权重进行平均。inN1n)
20、AC()AB()AC()AB(arccosiiiiiiiiiiiinn2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(3)按面积加权平均)按面积加权平均将三角形面积作为加权系数将三角形面积作为加权系数iiisnsn2022/5/133.2 三角图元及三角形网格三角图元及三角形网格4. 三角面的平面方程三角面的平面方程 将三角形展开形成平面,平面上任意点为将三角形展开形成平面,平面上任意点为 ,该平面方程为,该平面方程为 写成分量形式,为写成分量形式,为将任意一个空间点代入这个方程,能判断点是否与三角形共面将任意一个空间点代入这个方程,能判断点是否与三角形共面0)AC()AB
21、()AP(01ccc1bbb1aaa1zyxzyxzyxzyx2022/5/133.2 三角图元及三角形网格三角图元及三角形网格5. 三角面内的参数方程三角面内的参数方程 三角面可以认为是一个被嵌入三维空间的有界的二维空间三角面可以认为是一个被嵌入三维空间的有界的二维空间 在三角面上定义一个二维坐标系在三角面上定义一个二维坐标系 ,称为三角形参数坐标系,称为三角形参数坐标系 A点点u=0,v=0 B点点u=1,v=0 C点点u=1, v=1 BC边上满足边上满足u+v=12022/5/133.2 三角图元及三角形网格三角图元及三角形网格 一个三角形是一个二维的有界空间。一个三角形是一个二维的有
22、界空间。 三角形的一个内点三角形的一个内点P,其空间坐标为,其空间坐标为(x,y,z),面内参数坐标为,面内参数坐标为(u,v),则三角形的参数方程为,则三角形的参数方程为 参数方程表达的是参数方程表达的是uv坐标系中坐标系中的点到的点到xyz坐标系的变换。坐标系的变换。)AC(v)AB(uAP1vu, 1v0 , 1u02022/5/133.2 三角图元及三角形网格三角图元及三角形网格或或)ac (v)ab(uaz)ac (v)ab(uay)ac (v)ab(uaxzzzzzyyyyyxxxxx2022/5/133.2 三角图元及三角形网格三角图元及三角形网格6. 点与三角形的关系点与三角形
23、的关系对空间点对空间点P(x,y,z),将其代入三角形的平面方程,计算,将其代入三角形的平面方程,计算 若若 ,则点在三角形面的法线正向一侧;,则点在三角形面的法线正向一侧;若若 ,则点在三角形面的法线负向一侧;,则点在三角形面的法线负向一侧;若若 ,则点在三角形平面上,再代入参数方程求解其参数,则点在三角形平面上,再代入参数方程求解其参数坐标,判断是在三角形内部还是外部。坐标,判断是在三角形内部还是外部。)AC()AB()AP(0002022/5/133.2 三角图元及三角形网格三角图元及三角形网格7. 线段与三角形的关系线段与三角形的关系已知三角形已知三角形ABC的法线为的法线为n空间任一
24、线段空间任一线段L其端点为其端点为 L与与ABC存在下面的关系存在下面的关系: 若若 ,则线段与三角形平行。,则线段与三角形平行。21P,P0)PP(n122022/5/133.2 三角图元及三角形网格三角图元及三角形网格 若线段与三角形不平行,则可能存在交点。将线段写成参数若线段与三角形不平行,则可能存在交点。将线段写成参数方程形式方程形式代入三角形参数方程,成为代入三角形参数方程,成为t)PP(P) t (P1211t00)AC(v)AB(uAt)PP(P1212022/5/133.2 三角图元及三角形网格三角图元及三角形网格 其中包括其中包括3个方程和个方程和3个未知数个未知数 ,可以解
25、出未知数,可以解出未知数 。为了便。为了便于应用计算,于应用计算,Moller和和Trumbore给出了混合积形式的方程解给出了混合积形式的方程解若满足条件若满足条件则线段与三角形有交点则线段与三角形有交点)PP()AB()AP()AP()AC()PP()AC()AB()AP()AB()AC()PP(1vut1211121121t0 , 1vu, 1v0 , 1u02022/5/133.2 三角图元及三角形网格三角图元及三角形网格 8. 三角形与三角形的关系三角形与三角形的关系 两个三角形两个三角形 的关系分几种情况,分别进行讨论,在进的关系分几种情况,分别进行讨论,在进行相对关系测试时,也应
26、按这个次序进行。行相对关系测试时,也应按这个次序进行。(1)两个三角形平行)两个三角形平行两个面法线相同,面在空间平行。两个面法线相同,面在空间平行。21T,T2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(2)两个三角形共面)两个三角形共面 将将 T1的一个顶点,代入的一个顶点,代入 T2的平面方程得到满足,则两个三的平面方程得到满足,则两个三角形共面。如果不满足,则仅平行而不共面,两个三角形不相角形共面。如果不满足,则仅平行而不共面,两个三角形不相交。交。 共面时,将共面时,将T1的三个顶点,分别代入的三个顶点,分别代入T2的参数方程,求解其的参数方程,求解其参数坐标,
27、判断出参数坐标,判断出T1的顶点,是否落在的顶点,是否落在T2内。内。 同样地,将同样地,将T2的三个顶点,分别代入的三个顶点,分别代入T1的参数方程,求解其的参数方程,求解其参数坐标,判断出参数坐标,判断出 的顶点,是否落在的顶点,是否落在T1内。内。 如果每个顶点都不在对方三角形内,则两个三角形共面但不如果每个顶点都不在对方三角形内,则两个三角形共面但不相交。除以上情况,两个三角形相交。相交。除以上情况,两个三角形相交。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(3)一个三角形在另一个三角形的同侧)一个三角形在另一个三角形的同侧 将将T1的三个顶点,分别代入的三个顶
28、点,分别代入T2的平面方程,如果方程全都都的平面方程,如果方程全都都大于大于0或全都小于或全都小于0,则,则 在全体在在全体在 的同侧。此时两个三角形不的同侧。此时两个三角形不相交。相交。2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(4)两个三角形相交)两个三角形相交 即不共面,又不在同一侧,那么三角形就有可能相交。此时即不共面,又不在同一侧,那么三角形就有可能相交。此时两个三角形的扩展平面在空间是相交的。两个三角形的扩展平面在空间是相交的。 判断三角形相交并计算交线的直观方法是:计算判断三角形相交并计算交线的直观方法是:计算T1的每个边的每个边与与T2的交点,同时也计算
29、的交点,同时也计算T2的每个边(线段)与的每个边(线段)与 T1的交点。的交点。 需要进行需要进行6次交点计算。作为可能的结果,次交点计算。作为可能的结果, 一种情况是所有的计算都不存在交点,此时两个三角形不相一种情况是所有的计算都不存在交点,此时两个三角形不相交。交。 第二种情况是产生两个交点,此时判断为相交并得到交线。第二种情况是产生两个交点,此时判断为相交并得到交线。 2022/5/133.2 三角图元及三角形网格三角图元及三角形网格(4)两个三角形相交)两个三角形相交 2022/5/13习题习题1 说明表面模型和体模型的异同。说明表面模型和体模型的异同。2 体素构造法如何为一个如右图体
30、素构造法如何为一个如右图 所示的零件建模。所示的零件建模。 3 Unity的网格模型用两个数组表示:的网格模型用两个数组表示:vertices和和triangles。其中。其中vertices依次存储每个顶点的依次存储每个顶点的x,y,z,triangles依次存储每个三角依次存储每个三角形的三个顶点编号。设计一个算法,获得该网格的所有边。形的三个顶点编号。设计一个算法,获得该网格的所有边。4 三角形内部的参数坐标是如何定义的,其数学意义是什么?三角形内部的参数坐标是如何定义的,其数学意义是什么?程序。程序。2022/5/13习题习题5 设三角形三个顶点坐标为设三角形三个顶点坐标为A(1,0,
31、0),B(0,1,0),C(0,0,1),分别,分别在右手坐标系和左手坐标系下计算其法线。在右手坐标系和左手坐标系下计算其法线。6 三角形应按什么规则给出三个顶点的顺序。三角形应按什么规则给出三个顶点的顺序。7 网格模型顶点法线如何计算,以伪代码形式写出计算程序。网格模型顶点法线如何计算,以伪代码形式写出计算程序。8 求射线与三角形的交点,以伪代码形式写出计算程序。求射线与三角形的交点,以伪代码形式写出计算程序。9 推出三角形中心点的参数坐标推出三角形中心点的参数坐标u、v。10 给出三角形给出三角形A(0,0,1)、B(1,0,0)、C(0,1,0),已知三角形内一,已知三角形内一点点u=1/2,v=1/2,求该点的空间坐标。,求该点的空间坐标。11 给出三角形给出三角形A(0,0,1)、B(1,0,0)、C(0,1,0),已知一空间点,已知一空间点P(1/2,0,1/2) ,求该点的三角形参数坐标,求该点的三角形参数坐标u、v 。