《计算机图形学第七章科学计算可视化课件》由会员分享,可在线阅读,更多相关《计算机图形学第七章科学计算可视化课件(52页珍藏版)》请在金锄头文库上搜索。
1、科学计算可视化授课教师:单位:计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件主要内容l概述l面绘制算法l直接体绘制方法l实用可视化系统VTK简介及实例程序2计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件主要内容l概述l面绘制算法l直接体绘制方法l实用可视化系统VTK简介及实例程序3计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l科学计算可视化(Scientific Visualization):利用图形的方式将科学数据中所蕴含的现象、规律表现出来,从而促进人们对数据的洞察和理解4计算机图形学第七章科学计算可视化课
2、计算机图形学第七章科学计算可视化课件件概述l应用领域l工程l医学l地理信息l气象l石油/天然气勘探l生物信息学l5计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化的流程6计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化的流程7计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l三维数据场分类l标量(scalar)场l矢量(vector)场l张量(tensor)场S 单值(u,v,w)大小与三维方向 33矩阵8计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l三维数据场l
3、各采样点分布及空间邻接关系可用网格描述l依各网格结点之间的连接关系划分结构化网格(structured mesh)非结构化网格(unstructured mesh)l存贮在每一网格点的数据用于描述该采样点(或该网格单元)处三维数据场的属性9计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l结构化网格与非结构化网格示例10计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化的流程11计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l变换是指对数据进行预处理,以便利后续处理l对庞大的数据场只提取与可视目标相关的
4、信息以减少数据量l通过几何变换对点的坐标进行缩放l通过拓扑变换调整网格点的连接关系l将数据转换成更为通用的标准格式l12计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化的流程13计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l映射是整个可视化流程的核心l设计合理的可视化方案和算法l将经过变换处理的数据映射为可供绘制、显示的形状或属性 14计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化的流程15计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l绘制和显示:将上述可供
5、绘制的元素转换成图像,绘制在屏幕或其他介质上l可视化流程的最后一个步骤l可直接借鉴计算机图形学的现有方法16计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l可视化算法分类l标量场算法l矢量场算法l张量场算法17计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l标量场算法l颜色映射l轮廓抽取l体绘制18计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件概述l矢量场算法l从几何形状、颜色或纹理等着手,试图将三维矢量信息分别映射为这三类可绘制的元素或这些元素的组合19计算机图形学第七章科学计算可视化课计算机图形学第七章科
6、学计算可视化课件件概述l张量场算法l点图标方法l超流线方法 20计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件主要内容l概述l面绘制算法l直接体绘制方法l实用可视化系统VTK简介及实例程序21计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件面绘制算法l将三维数据场中具有某种共同属性的采样点按其空间位置连接起来,构成一张连续表面,然后对抽取出的表面进行绘制l等值面算法l等值面:在一给定三维数据场中,采样值均为某一给定值的所有空间点的集合l三维标量场可视化中最常用lMarching Cubes方法22计算机图形学第七章科学计算可视化课计算机图形学第
7、七章科学计算可视化课件件Marching Cubes算法l数据集l适用于三维规则标量场l每一立方体单元称为一个体素(voxel),数据场的数据值分布在体素的8个顶点上l典型代表:CT数据、MRI数据23计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l思想:基于“分治(divide-and-conquer)”思想将整个数据场的等值面抽取分解到每一个体素中去完成24计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l算法概述l读入三维规则标量场l对于每一体素依据所需抽取的等值面的属性值,
8、确定其8个顶点的状态对于体素的每一条边,依据顶点状态,判别它是否与等值面有交点。若交点存在,则求出交点在求出了当前体素的所有边与等值面的交点后,依据一定的准则将这些交点连接成三角形,作为等值面位于该体素内部分的近似表示,并进行真实感绘制l当处理完所有体素后,即完成了整个数据场的等值面抽取与绘制25计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l确定体素顶点状态l设所需抽取的等值面的属性值为C0l若某顶点V所存贮的数据值大于(或等于)C0,则认为V在等值面外侧(或位于其上),并记其状态值为1l反之,若V所存贮的数据值小于C0,则认为V在等
9、值面内侧,并记其状态值为026计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l确定体素顶点状态lExample:5个顶点均位于外侧,记为Case = v8|v7|v6|v5|v4|v3|v2|v1 v1 v2 v5 v6 v4 v3 v8 v727计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l判别体素的边与等值面是否有交l对于某一条边E(其顶点为V1和V2),若V1和V2的状态值相同,则边E位于等值面的外侧(或内侧) ,边E不与等值面相交 ;反之,若V1和V2的状态值不同,边E
10、必定与等值面相交l若边E与等值面有交点,可通过线性插值计算出交点28计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l将体素各边与等值面的交点连接成三角形l取决于体素每一顶点的状态值分布情况l存在着28种不同情况每一体素有8个顶点每一顶点有两种状态值l基于体素顶点状态翻转对称性和旋转对称性,将上述256种组合情形减少到15种翻转对称性:如果体素各顶点的状态值0和1互换,所含等值面的拓扑结构(即交点连接关系)不变旋转对称性:体素旋转后,所含等值面的拓扑结构不变29计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Mar
11、ching Cubes算法l15种等值面连接模式 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1430计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l15种等值面连接模式:示例 2 931计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l法向计算l用等值面上某点的梯度方向代表该点法向l用中心差分和线性插值相结合计算等值面上点的法向32计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l存在问题及改进 (1)l
12、15种连接情形中,有些存在二义性,可能导致所生成的相邻体素的等值面之间不连续,从而使最终生成的等值面存在“空洞”33计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l存在问题及改进 (1)l改进方法之一:增加连接模式,使其能与相邻体素的状态相匹配以消除“空洞”34计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l存在问题及改进 (1)l改进方法之二:将六面体体素分解为四面体单元,并将等值面抽取限制在四面体单元中进行l改进方法之三:采用双曲线渐近线交点来决定具有二义性的面上的交点的连接
13、方式35计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件Marching Cubes算法l存在问题及改进 (2)l所生成的等值面中往往包含大量的三角面片,影响存储与绘制的效率l改进方法之一:对所生成的等值面三角形网格进行简化l改进方法之二:采用适用于密集数据场等值面生成的Dividing Cubes算法36计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件主要内容l概述l面绘制算法l直接体绘制方法l实用可视化系统VTK简介及实例程序37计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件直接体绘制算法lWhy?l面绘制算法的两个
14、假设对于某一个给定的等值面的值C0,可以从数据场中抽取出一系列多边形来逼近该等值面所抽取出来的多边形网格表面能反映物体的结构l上述两个假设都有可能不成立38计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件直接体绘制算法lWhy?l面绘制算法无法显示出整个三维数据场的全貌会导致三维数据场中大量的信息丢失l对于规模较大的三维数据场,采用面绘制方法所生成的等值面网格往往过于复杂甚至会超出现有图形硬件的处理能力39计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件直接体绘制算法l直接体绘制:指不经过体数据到多边形的转换,而直接对三维体数据进行处理生成可视图
15、像的方法通常简称为体绘制光线投射体绘制算法40计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l图像空间算法l步骤l设计传输函数(transfer function),该函数将空间任一点的标量值映射为点的光照属性值l朝画面每一像素投射光线,沿该光线方向对标量场进行重采样,选取适当光照模型计算各采样点处的光亮度值l沿投射光线方向对各采样点的光亮度值合成,生成像素的显示光亮度41计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l设计传输函数l对三维数据场各采样点上存贮的数据值进行分类,依据一定的准则为数据场每一采样
16、点赋一颜色值(R,G,B)和不透明度值(opacity,用表示)42计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l沿投射光线方向重采样计算光亮度值l从当前视点位置出发,向屏幕上的每一像素点发出一条光线,穿过数据场,同时沿着光线进行均匀点采样,得到一系列重采样点43计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l沿投射光线方向重采样计算光亮度值(cont.)l对于每一数据场内的重采样点PR,找出它所在的体素,对该体素的8个顶点的不透明度和颜色作三线性插值得到PR处的不透明度和颜色l类似地,通过三线性插值计算
17、得到PR处的梯度(即法线方向)l根据体光照明模型计算PR处光亮度值44计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l光亮度值合成l将分布在同一光线上的所有重采样点的光照强度按照一定的次序进行累计得到相应屏幕像素最终显示的颜色l两种合成方法从后向前从前向后45计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l光亮度值合成l从后向前合成46计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件光线投射体绘制算法l光亮度值合成l从前向后合成l在从前向后的累加过程中,不透明度将不断增加,逐渐向1逼
18、近。当接近于1时,可终止当前光线的跟踪过程47计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件其他体绘制算法l景物空间的直接体绘制方法l从三维数据场的每一体素出发,根据视点位置和方向将其投影到屏幕上l根据该体素各顶点的存贮的数据场值计算其不透明度和颜色,由体光照明模型计算出各点处的光亮度值l根据所采用的重构核函数计算出该数据点所影响的屏幕像素的范围及对所覆盖区域内各像素的光亮度的贡献l每个像素点的光亮度由多个数据点的贡献累加得到48计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件主要内容l概述l面绘制算法l直接体绘制方法l实用可视化系统VTK简介
19、及实例程序49计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件VTK简介l全称:Visualization Toolkitl源码开放的免费可视化软件系统l采用面向对象的方法设计开发,以C语言编写l包含由700多个类组成的内容极为丰富的类库l支持几何造型及可视化中复杂数据的表达、对标量场、矢量场、张量场的可视化以及隐函数造型、多边形网格简化、Delaunay三角分割等高级造型技术l除C语言外,还允许用户通过Tcl/Tk,Java和Python等解释性语言编写应用程序以快速完成可视化应用实例的开发50计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件V
20、TK简介l采用一个数据流模型以实现数据信息向图形信息的转换l在这个模型中,相关模块连接成网络l数据在网络中流动,同时模块将算法应用于数据上l可视化网络的运作有两种控制方式:需求驱动方式和事件驱动方式l包含了两类基本对象:过程对象和数据对象过程对象是可视化网络中的模块(算法部分),可进一步分为三类:源、过滤器和映射器,分别执行可视化数据的输入、变换、预处理及映射功能数据对象又称数据集,包含了结构和属性数据51计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件VTK实例程序l运行、讲解光盘中的实例程序52计算机图形学第七章科学计算可视化课计算机图形学第七章科学计算可视化课件件