收藏 分享(赏)

第二讲-几何建模.pptx

上传人:tkhy51908 文档编号:8011207 上传时间:2019-06-04 格式:PPTX 页数:75 大小:15.94MB
下载 相关 举报
第二讲-几何建模.pptx_第1页
第1页 / 共75页
第二讲-几何建模.pptx_第2页
第2页 / 共75页
第二讲-几何建模.pptx_第3页
第3页 / 共75页
第二讲-几何建模.pptx_第4页
第4页 / 共75页
第二讲-几何建模.pptx_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第二讲 几何建模,内容提要,计算机中如何表达三维模型? 什么是网格? 网格的典型数据结构是什么? 几何建模有哪些典型方法? 几何建模有哪些典型应用?,几何建模(Geometric Modeling),在计算机中表达一个真实世界的三维对象或虚拟三维形象,就必须先描述其形状几何建模 三维对象的表达、构造和处理的计算机算法和过程,要逼真再现一个场景,需要对场景中的每一个细节进行建模,数字化几何数据,离散化 易于表达和传输 渲染硬件和软件的基础数据 大多数获取设备的输出格式 (CT, MRI, laser, ) 大多数模拟/分析工具需要的输入,离散化的圆,理想的圆 如果圆心在(0,0)处,r2 = x

2、2 + y2,离散化的圆(二),多边形逼近(分段线性近似),离散化显示:光栅图形反走样,OpenGL反走样,glEnable(GL_BLEND)/启用混合 glEnable(GL_LINE_SMOOTH)/启用线段反走样,3D模型的表达,原始数据 体素 点云 深度图像 多边形曲面 曲面网格 细分曲面 参数曲面 隐式曲面,实体模型 八叉树 BSP树 CSG Sweep高层次语义结构 Scene Graph,Marching Cube Lorensen& Cline 87 :从体素到三角网格,将一个隐式的曲面转换为三角网格在3D网格(grid)上定义的隐式曲面在每个立方体(cube)中根据8个顶点

3、的标量值来确定重构曲面一般用于医学数据,点云,深度图像,网格(Mesh),图形学中最常用的表达 简单 可表达复杂形状 图形硬件支持 一般为三角网格,为什么是三角网格,其它多边形网格可以容易地剖分为三角形三点共面:保证平面性可以容易地定义内外方向、插值操作等,网格小知识,三维形体的分段线性(Piecewise linear)近似 组成成分 几何:顶点 拓扑: 边和面边界边: 只与一个面相邻 正则边: 与且仅与两个面相邻 奇异边: 与多于两个面相邻流形网格: 没有奇异边的网格 封闭网格: 没有边界边的网格,Non-Manifold Closed Manifold Open Manifold,拓扑,

4、v = 12 f = 14 e = 25 c = 1 g = 0 b = 1,图的亏格(genus):handle的数目。 在沿其撕裂后,能够使图保持连通的封闭路径的最大数目的一半,Euler-Poincare 公式v+f-e = 2(c-g)-b,游戏时间:猜猜亏格数,网格的数据结构表达,网格数据的应用: 渲染 几何查询 face #3 包括哪些顶点? 顶点 i 和顶点 j 是否相邻? face #7与哪些面相邻? 几何操作Geometry operations 添加或者删除一个顶点/边/面大部分网格难以支持高效的上述操作一般采用三角流形网格,网格的数据结构是否优秀,构建数据结构的时间复杂度

5、进行一个查询操作的时间复杂度进行一个网格编辑操作的时间复杂度(更新数据结构)空间复杂度,数据结构举例,面列表( List of faces)邻接矩阵(Adjacency matrix)半边结构(Half-edge),一个实际的文件例子 .obj文件,# Object “object01” g mesh01 # NO. points 4: v -21.7978 45.3715 0 v -21.7978 14.0897 22.1196 v -2.64162 14.0897 -11.0598 v -40.9539 14.0897 -11.0598# NO. normals 16: vn 0.8165

6、0 0.3333 0.47140 vn 0 0.3333 -0.94281 # NO. texute coordinates 4: vt 1 0 # NO. faces 4: f 1/3/5 2/2/8 3/1/11 f 1/3/7 3/1/13 4/4/14 f 4/4/16 2/2/10 1/3/6 f 4/4/15 3/1/12 2/2/9,面列表,顶点列表(顶点坐标:coordinates) 面列表- 面中顶点的三元组 (v1,v2,v3)查询操作: face #3包括哪些顶点? O(1) - 查询第三个面的顶点三元组 顶点i 和顶点j是否相邻? O(n)-需要遍历所有的面,效率较低可

7、满足渲染要求,对于几何处理还不够高效,面列表实例,面列表的优劣,优点 方便而紧凑 可表达非流形网格缺点 不能有效地支持点、面之间的邻接关系查询,需要查询哪些邻接关系?,邻接矩阵,将网格视为邻接图给定一个包含n个顶点的网格,构建一个n*n 的矩阵来表达邻接关系 如果顶点i和顶点j邻接,那么矩阵元素 (i,j) 值为1,否则为0,邻接矩阵举例,基于邻接矩阵的查询,face #3包括哪些顶点? O(1)顶点i 和 j是否相邻? O(1)顶点i与哪些面相邻 ? O(n)-遍历所有的面,邻接矩阵的优劣,优点 支持顶点之间邻接信息(VV)的高效查询 支持非流形网格缺点 没有边的显式表达 不支持VF, VE

8、, EV, FE, EF 的快速查询,半边结构,记录所有的面、边和顶点 几何信息 拓扑信息 附属属性流行于大部分几何建模应用Aka DCEL(Doubly-Connected Edge List),半边结构实例,一条半边指向 起始点 所属面 Next half edge and opposite half edge (可选) previous edge一个顶点指向 它的某条出射半边一个面指向 属于它的某条半边,遍历一个顶点的一环半边,半边结构的优劣,优点 所有查询操作时间复杂度均为O(1) 所有的编辑操作时间复杂度均为O(1)缺点 只能表达流形网格,常用的半边结构实现,CGAL http:/w

9、ww.cgal.org/Open Mesh http:/www.openmesh.org,细分曲面,虽然理论上可以手动地设定每一个顶点、边、面,但这是异常繁琐的 一个精细的网格往往有上百万个顶点理想的情况: 手工构造一个低分辨率的网格,然后逐渐地用自动算法光滑化,添加更多细节,细分曲线,细分曲面,NURBS,NURBS = Non-Uniform Rational B-splines(非均匀有理B样条),隐式曲面,用定义在三维空间中的函数() = 0来隐式地表达曲面 容易判断一个点是否在曲面内部 ()0 外部 ()=0 在曲面上 可高效地进行拓扑变换 高效地进行二元操作:交、并、差等,隐式曲面

10、,隐式曲面便于表达复杂的曲面,比如水面三角网格难以表达水的合并、飞溅、波浪等形变,实体建模(CSG),用简单形体的二元操作来构造复杂形体,常用的建模方法,扫描 基于图像的建模方法 过程式建模,扫描,构造一个对象的三维模型需要一张或多张深度图像 距离扫描仪测量的是物体表面的三维坐标,并以m*n的距离网格形式返回测量值,这个网格称作深度图像 如果有多张深度图像,对每张深度图像需要计算出一个刚性变换,以与其它深度图像对齐 使用改进版本的ICP算法(Iterative Closest Point Alignment)来计算合适的刚性变换,使得两张深度图像之间点对的最小二乘距离最小,移动设备上的 3D

11、Scanning,Structure Sensor for iPad,Autodesk 123D Catch,基于图像的建模,从海量图片中构造三维模型(例如从百度上搜索某一名胜的照片)使用计算机视觉的方法来估计每张照片的相对摄像机位置与朝向,同时得到对象的稀疏点云表达基本的思想:一个点的位置可以通过多张不同位置拍摄的照片确定(http:/www.cs.cornell.edu/snavely/bundler/)给定了这些相机参数和稀疏的点云,有许多致密的的重建算法可以用来重建致密的模型(http:/www.di.ens.fr/cmvs/)。,真实的照片,重建的模型,过程式建模,使用算法创建模型

12、可容易地构造多样化的模型 一般用来构造复杂的、规则性强的模型 地形 植物 建筑、城市,过程式建模,用一个小的数据集或规则来描述目标模型的高层次语义信息 树:分支的性质+叶片的形状 建筑:房间的细分+门/窗的布置 用算法来生成全部的模型 加入随机性 用递归算法,毕达哥拉斯树,L-System,用来进行植物建模的典型系统由生物学家Lindenmayer提出,用来研究藻类的生长 递归的形式化语法 符号字母表(端点和非端点) 生成规则集 非端点符号递归地生成新的符号或者符号序列整个过程从一个初始的符号串开始最后,由一个解释器将生成的符号解释为几何结构,L-System,非端点 A, B: 都是画直线

13、端点 +:右转60度 -:左转60度 初始字符串:A 规则 A B + A + B B A B A,L-System + 栈 = 树枝,非端点: X: (无动作) F: draw forward 端点: + : 右转25度 : 左转25度 : 当前状态入栈 : 从栈中读取状态 初始字符串: X 规则: X F X+X + F +FX X F FF,L-system,可容易地扩展到3D 用圆柱体来构造树干和树枝 递归地 缩小圆柱体的尺寸 将颜色从棕色变为绿色 用随机L-system来添加更多的变化 为一个符号添加更多规则 随机地选择规则 L-system是一个比较抽象的描述 构造一个指定的形状需

14、要经验,分形,从一个形状开始 用缩放的初始形状来替换形状的一部分 递归地进行替换,几何建模工具和数据,建模工具 Autodesk Maya(free for students) Autodesk 3DSMax(free for students) SketchUp(free) Meshlab(free) 其它建模工具Modo, AutoCAD, Lightwave, Bryce, Hexagon, etc.三维模型数据库 AimShape(学术界用的模型库,例如Stanford bunny, dragon, armadillo, etc) Archive3D(日常模型, e.g., desks

15、, chairs, sofa, etc) GrabCAD(mechanical objects, e.g., robots, planes, cars, warships, etc) TF3DM(well categorized free models) TurboSquid(largest model database in the world, but only part of them are free) 3DWarehouse(architecture, e.g. buildings, bridges, furniture, etc.)过程式建模 Libnoise (a C+ libr

16、ary to generate coherent noise) Noise Texture Generator(generate your noise texture online),几何建模应用举例,去噪/光滑化,输入一个带有噪声的网格,输出一个光滑的网格目标是去掉高频的噪声信息,Laplacian Smoothing,迭代数次对一个曲面进行光滑化,计算L(pi)时把顶点pi周围的一环顶点的影响计入。,网格简化,网格常常包含了比需要的显示质量更多的面片 一些网格生成算法的分辨率是固定的,不考虑曲面的细节 网格可能会在不同的设备上使用,比如手机因此,网格简化的目的是在保持视觉准确性的前提下减少面片的数量,424,376 triangles,60,000 triangles,网格编辑,网格Morphing,网格分割,将网格分割成有意义的部分,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报