三维模型的表达

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机图形学基础》
第五讲 三维模型的表达
刘永进
本次课的内容
二维形状表示方法
OpenGL中的三维表示方法

数据结构
复杂三维模型建模

网格简化、加密(细分)
三维几何模型
OpenGL中最常用的几何模型是三角网格 一系列的三角面片F = (f1,f2,…,fn) 一系列的顶点V = (v1,v2,…,vn)
radius = 1.0;
length = 2.0; y
slicBaidu Nhomakorabeas = 32
z
x
Slices = 2Pi/theta
z halfLength
-halfLength
25_projected_shadows
三维数据的来源
模型产生途径:

直接在几何文件中输入 程序建模(procedure modeling):通过程序代码进 行创建 运用建模软件创建,比如3ds/max, maya 照片测量法 ( photogrammetry ):基于照片进行三 维重构(Reconstruction) 使用3D扫描仪(3D Scanner)获取真实模型 各类方法的组合
三维几何模型
OpenGL中最常用的几何模型是三角网格 一系列的面F = (f1,f2,…,fn)

每个面都是一个三角形
一系列的顶点V = (v1,v2,…,vn) 每一个三角面片用三个顶点的下标表示


f1 --(v1,v2,v3 ), f2 --(v4,v5,v6 ), f3 --(v7,v8,v9 ), …


三维数据的来源
模型产生途径:

直接在几何文件中输入 程序建模(procedure modeling):通过程序代码进 行创建 运用建模软件创建,比如3ds/max, maya 使用3D扫描仪(3D Scanner)获取真实模型


照片测量法 ( photogrammetry ):基于照片进行三维 重构(Reconstruction)

所有顶点每次细分时均移动 E.g., Loop scheme, C2

Loop subdivision surfaces
新分裂的顶点
已经存在的顶点
本次课的内容
二维形状表示方法
OpenGL中的三维表示方法

数据结构
复杂三维模型建模

网格简化、加密(细分)

提高运行性能
• 简化对于高效的渲染编辑具有重要作用
网格简化的效果对比
简化(Simplification)
• 产生场景中物体的层次细节 (level of details). 较远的物体用较低的层次细节呈现,较近的物体 用较高的层次细节呈现.

例子
顶点去除( Vertex Decimation )
示例

left: before deleting vertex 中间: 顶点删除后

右: 重网格化
参考论文: [Schroeder92] “Decimation of triangle meshes ”
收缩(Edge Contraction)
收缩( Edge Contraction)
各类方法的组合

简化(Simplification)
简化概念:用一些相对简单但维持几何特 征的表示来近似一个给定的网格 网格简化的特性

移除几何冗余
• 例如,一个具有很多共面小三角形的平坦区域, 将这些三角形融合成大的多边形能降低模型的复 杂度. • 减小模型的尺寸. • 降低存储或传输的规模.
以#开始为注释行
第0个顶点的坐标
第1个顶点的坐标 第2个顶点的坐标 … … 组成第0个面的顶点号
组成第1个面的顶点号
… …
简单例子:三维三角形网格模型
glPolygonMode(parameter1, parameter2); glBegin(GL_POLYGON); glVertex3f(-0.5,-0.5,0.0); … … … glEnd();

网格简化、加密(细分)
Subdivision surface
Subdivision surfaces
插值细分曲面(interpolation)

已经存在的顶点不动,新分裂的顶点移动 E.g., Modified butterfly scheme, C1

近似细分曲面(approximation)
网格化简的基本操作(3)
3. 面片收缩操作:网格上的一个面片收缩为一个顶点, 该三角形本身和与其相邻的三个三角形都退化
结果

收缩算法产生的一系列简化模型 [Garland and Heckbert 1997]
本次课的内容
二维形状表示方法
OpenGL中的三维表示方法

数据结构
复杂三维模型建模
parameter2:GL_LINE,GL_FILL parameter1:GL_FRONT,GL_BACK
GL_LINE
GL_FILL without lighting
GL_FILL with lighting
三维数据的来源
模型产生途径:
1. 直接在几何文件中输入 2. 程序建模(procedure modeling):通过程序代码 进行创建 3. 运用建模软件创建,比如3ds/max, maya 4. 照片测量法 ( photogrammetry ):基于照片进行三 维重构(Reconstruction) 5. 使用3D扫描仪(3D Scanner)获取真实模型 6. 各类方法的组合
三维三角形网格模型的文件格式
# 1009 2022 … … v 0.103 -0.056 -0.981 v -0.391 -0.140 0.633 v -0.365 -0.093 0.225 v 0.196 0.035 -0.636 … … f 723 965 762 f 259 755 665 f 333 523 952 f 164 1002 978 … …
相关文档
最新文档