- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* Marching Cubes算法 15种等值面连接模式:示例 2 9 * Marching Cubes算法 法向计算 用等值面上某点的梯度方向代表该点法向 用中心差分和线性插值相结合计算等值面上点的法向 * Marching Cubes算法 存在问题及改进 (1) 15种连接情形中,有些存在二义性,可能导致所生成的相邻体素的等值面之间不连续,从而使最终生成的等值面存在“空洞” * Marching Cubes算法 存在问题及改进 (1) 改进方法之一:增加连接模式,使其能与相邻体素的状态相匹配以消除“空洞” * Marching Cubes算法 存在问题及改进 (1) 改进方法之二:将六面体体素分解为四面体单元,并将等值面抽取限制在四面体单元中进行 改进方法之三:采用双曲线渐近线交点来决定具有二义性的面上的交点的连接方式 * Marching Cubes算法 存在问题及改进 (2) 所生成的等值面中往往包含大量的三角面片,影响存储与绘制的效率 改进方法之一:对所生成的等值面三角形网格进行简化 改进方法之二:采用适用于密集数据场等值面生成的Dividing Cubes算法 * 主要内容 概述 面绘制算法 直接体绘制方法 实用可视化系统VTK简介及实例程序 * 直接体绘制算法 Why? 面绘制算法的两个假设 对于某一个给定的等值面的值C0,可以从数据场中抽取出一系列多边形来逼近该等值面 所抽取出来的多边形网格表面能反映物体的结构 上述两个假设都有可能不成立 * 直接体绘制算法 Why? 面绘制算法无法显示出整个三维数据场的全貌 会导致三维数据场中大量的信息丢失 对于规模较大的三维数据场,采用面绘制方法所生成的等值面网格往往过于复杂 甚至会超出现有图形硬件的处理能力 * 直接体绘制算法 直接体绘制:指不经过体数据到多边形的转换,而直接对三维体数据进行处理生成可视图像的方法 通常简称为体绘制 光线投射体绘制算法 * 光线投射体绘制算法 图像空间算法 步骤 设计传输函数(transfer function),该函数将空间任一点的标量值映射为点的光照属性值 朝画面每一像素投射光线,沿该光线方向对标量场进行重采样,选取适当光照模型计算各采样点处的光亮度值 沿投射光线方向对各采样点的光亮度值合成,生成像素的显示光亮度 * 光线投射体绘制算法 设计传输函数 对三维数据场各采样点上存贮的数据值进行分类,依据一定的准则为数据场每一采样点赋一颜色值(R,G,B)和不透明度值(opacity,用α表示) * 光线投射体绘制算法 沿投射光线方向重采样计算光亮度值 从当前视点位置出发,向屏幕上的每一像素点发出一条光线,穿过数据场,同时沿着光线进行均匀点采样,得到一系列重采样点 * 光线投射体绘制算法 沿投射光线方向重采样计算光亮度值(cont.) 对于每一数据场内的重采样点PR,找出它所在的体素,对该体素的8个顶点的不透明度和颜色作三线性插值得到PR处的不透明度和颜色 类似地,通过三线性插值计算得到PR处的梯度(即法线方向) 根据体光照明模型计算PR处光亮度值 * 光线投射体绘制算法 光亮度值合成 将分布在同一光线上的所有重采样点的光照强度按照一定的次序进行累计得到相应屏幕像素最终显示的颜色 两种合成方法 从后向前 从前向后 * 光线投射体绘制算法 光亮度值合成 从后向前合成 * 光线投射体绘制算法 光亮度值合成 从前向后合成 在从前向后的累加过程中,不透明度α将不断增加,逐渐向1逼近。当α接近于1时,可终止当前光线的跟踪过程 * 其他体绘制算法 景物空间的直接体绘制方法 从三维数据场的每一体素出发,根据视点位置和方向将其投影到屏幕上 根据该体素各顶点的存贮的数据场值计算其不透明度和颜色,由体光照明模型计算出各点处的光亮度值 根据所采用的重构核函数计算出该数据点所影响的屏幕像素的范围及对所覆盖区域内各像素的光亮度的贡献 每个像素点的光亮度由多个数据点的贡献累加得到 * 主要内容 概述 面绘制算法 直接体绘制方法 实用可视化系统VTK简介及实例程序 * VTK简介 全称:Visualization Toolkit 源码开放的免费可视化软件系统 采用面向对象的方法设计开发,以C++语言编写 包含由700多个类组成的内容极为丰富的类库 支持几何造型及可视化中复杂数据的表达、对标量场、矢量场、张量场的可
文档评论(0)