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