一. 绪论
- 现代科学研究主要方法:
(1) 理论(推导,完全归纳,演绎)
(2) 实验(统计,归纳)
(3) 数值方法,模拟仿真
(4) 大数据,知识发现,数据挖掘
- 可视化定义
可视化是一种方法。它将符号变为直观的几何形体,使研究者可以直接观察他们感兴趣的对象,它提供了一种观察不可见事物的手段。
数据可视化(Data Visualization ):运用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。
数据可视化的类型:
(1) 科学计算可视化
(2) 信息可视化
(3) 知识可视化
下面介绍三种数据可视化的特点,区别和联系
- 科学计算可视化
(1) 特点:空间数据场的可视化
(2) 背景:大量科学计算获取的具有空间关系的数据如何直观显示
(3) 概念:是运用计算机图形学或者一般图形学的原理和方法,将科学与工程计算等产生的大规模有空间结构的数据转换为图形、图像,以直观的形式表示出来。
(4) 方法:显示的对象涉及标量、矢量及张量等不同类别的空间数据,研究的重点放在如何真实、快速地显示二维/三维的数据场。
- 信息可视化
(1) 特点:非空间数据的可视化
(2) 背景:随着社会信息化的推进和网络应用的日益广泛,信息源越来越庞大。除了需要对海量数据进行存储、传输、检索及分类等以外,更迫切需要了解数据之间的相互关系及发展趋势。希望能够对其进行更高层次的分析,以便更好地利用这些数据。
(3) 概念:使用计算机支持的、交互性的视觉表示法,对抽象数据进行表示,以增强认知
(4) 方法:显示的对象主要是多维的标量数据(经济、管理、Web数据),目前的研究重点在于设计和选择什么样的显示方式才能便于用户了解庞大的多维数据及它们相互之间的关系
- 知识可视化
(1) 人类的知识
(2) 背景:信息可视化的目标在于从大量的抽象数据中发现一些新的见
解,或者简单地使存储的数据更容易被访问;而知识可视化则是通
过提供更丰富的表达他们所知道内容的方式,以提高人们之间的知
识传播和创新。
(3) 概念:在科学计算可视化、数据可视化、信息可视化基础上发展起
来的新兴研究领域,应用视觉表征手段,促进群体知识的传播和创
新。一般来讲,知识可视化领域研究的是视觉表征在提高两个或两
个以上人之间的知识传播和创新中的作用。
(4) 方法:除了传达事实信息之外,知识可视化的目标在于传输见解(insights)、经验(experiences)、态度(attitudes)、价值观(Values)、期望(expectations)、观点(perspectives)、意见(opinions)和预测(predictions)等,并以这种方式帮助他人正确地重构、记忆和应用这些知识。
- 科学计算可视化的研究方向
(1) 沉浸式的ViSC
(2) 分布式的ViSC
(3) 交互式的ViSC
- 体数据的来源
(1) 测量,如医学的计算机断层扫描(CT),磁共振成象(MRI )。
(2) 计算,如计算流体力学(CFD), 有限元分析(FEA),这是当前体数据的主要来源之一.这是当前体数据的主要来
(3) 几何实体的体素化(Voxelization) 。
- 科学计算可视化技术分类
两种标准:按照数据类型,按照数据之间的关系结构和分布
按照数据类型分为三类:标量矢量和张量
按照数据之间关系结构和分布:结构化数据和非结构化数据,结构化数据又分为四类
(1) 均匀网格结构化数据(Cartisian)
(2) 规则网格结构化数据(Regular)
(3) 矩形网格结构化数据(Rectangular)
(4) 不规则网格结构化数据
不规则结构化数据和非结构化数据还是不一样的,需要注意区分:
不规则的结构化网格特点
(1) 内部点有相同数目的邻居
(2) 在存储时每个网格节点的坐标值需要保存,同时每个网格节点的连接点采用相同规模的数据结构存储.在存储时每个网格节点的坐标值需要保存,同时每个网格节点的连接点采用相同规模的数据结构存储
非结构化网格特点
(1) 内部点邻居不同
(2) 连接关系需要按照不同的节点分别处理
- 科学计算可视化流程:数据生成->数据处理->可视化映射->绘制->显示
- 科学计算可视化是一种空间信息的可视化,其处理的对象包含三方面信息:
(1) n 维空间中的坐标;
(2) 与n 维空间中其他节点的连接关系;
(3) 数据场中的场值。
Talk is cheap,show you my code.
struct node{
Vector3 Position;
struct node *link;
Value value;} ;
- 科学计算可视化典型应用
(1) 数字化人体
(2) 矿产油藏
(3) 大气及流体,天气预报
(4) 虚拟风洞
(5) 有限元分析,天体物理,遥感,流体力学,化学,生命科学
- 科学计算可视化的研究方向
(1) 沉浸式的ViSC
(2) 分布式的ViSC
(3) 交互式的ViSC
- 体数据的来源
(1) 测量,如医学的计算机断层扫描(CT),磁共振成象(MRI )。
(2) 计算,如计算流体力学(CFD), 有限元分析(FEA),这是当前体数据的主要来源之一.这是当前体数据的主要来
(3) 几何实体的体素化(Voxelization) 。
- 科学计算可视化技术分类
两种标准:按照数据类型,按照数据之间的关系结构和分布
按照数据类型分为三类:标量矢量和张量
按照数据之间关系结构和分布:结构化数据和非结构化数据,结构化数据又分为四类
(1) 均匀网格结构化数据(Cartisian)
(2) 规则网格结构化数据(Regular)
(3) 矩形网格结构化数据(Rectangular)
(4) 不规则网格结构化数据
不规则结构化数据和非结构化数据还是不一样的,需要注意区分:
不规则的结构化网格特点
(1) 内部点有相同数目的邻居
(2) 在存储时每个网格节点的坐标值需要保存,同时每个网格节点的连接点采用相同规模的数据结构存储.在存储时每个网格节点的坐标值需要保存,同时每个网格节点的连接点采用相同规模的数据结构存储
非结构化网格特点
(1) 内部点邻居不同
(2) 连接关系需要按照不同的节点分别处理
- 科学计算可视化流程:数据生成->数据处理->可视化映射->绘制->显示
- 科学计算可视化是一种空间信息的可视化,其处理的对象包含三方面信息:
(1) n 维空间中的坐标;
(2) 与n 维空间中其他节点的连接关系;
(3) 数据场中的场值。
Talk is cheap,show you my code.
struct node{
Vector3 Position;
struct node *link;
Value value;} ;
- 科学计算可视化典型应用
(1) 数字化人体
(2) 矿产油藏
(3) 大气及流体,天气预报
(4) 虚拟风洞
(5) 有限元分析,天体物理,遥感,流体力学,化学,生命科学
二. 三维规则标量数据场及基于面片提取的绘制算法
- 体元:一个二阶魔方,8个顶点构成一个体元.
- 体素:坐标值+数据场值
- 三维规则标量标量场的存储:
三维数组Double RegularField[MaxX][MaxY][ MaxZ]
规则数据场主要特点是各个网格点的坐标、连接关系可以自然推导,不需要显式存储 - 常见绘制方法
a) 基于等值面面片提取的方法 在物体空间的每个体元中提取等值面片,随后按照计算机图形学中绘制面片物体的方法进行绘制。其最大的特点是可以充分利用现有计算机对三维图形的支持。(OpenGL 、显卡加速等)
b) 直接体绘制方法 直接基于体数据进行绘制,其最大的特点是可以体现数据场中的整体数据分布,而且绘制效率高.
i. 从图像空间出发的方法(像序)
ii. 从物体空间出发的方法(物序)
- 计算机图形学中物体表示方法
a) 线框表示
b) 曲面表示
c) 点模型
d) 实体表示
基本几何元素:点线面体
(6)计算机图形学中基于三角形面片绘制需要的主要参数
三个点的坐标信息:用于空间变换,投影
三个点的法向量,或者整个三角形面片的法向量:用于光照计算
三个顶点的纹理,颜色:用于渲染绘制
(7)二维平面等值线求法,双线性插值公式:f(x,y)=(k_1 x+b_1)(k_2 x+b_2)=a+bx+cy+dxy
四个变量,四个方程
- 三维空间标量场基于等值面方法
a) Cuberille
b) MarchingCubes
c) MarchingTetrahedral
- Marching Cubes算法基本流程
(1) 导入相邻的Slice 的数据,形成体元
(2) 逐个处理数据场中的体元,提取出与等值面相交的体元;
(3) 采用插值方法计算出等值面与体元的交点;
(4) 将交点按照一定方式连接生成等值面。
将256 种情况归约为15 种情况,以简化处理
- Marching Cubes算法存在的问题及改进
问题其实就分两类:效率问题和效果问题(精确性,正确性)
(1) 等值面近似性问题:当数据场稀疏,等值面太大,造成误差明显.
(2) 二义性:二义性产生的原因是,共享的表面在不同体元中可以采取不同的连接方式.
解决方法:MT算法,用四面体求等值面.
(3) 密集数据场中,体元太小,每个三角面片太小,以至于不足以容下1个像素.
解决方法:Dividing Cube方法,直接将该体元中心作为一个像素进行投影,称之为”表面点”.
(4) 对于每一个给定的等值面的值,需要遍历体数据中的每一个体元,而许多体元与这个等值面并没有交点,所以需要一种快速过滤方法.如八叉树,层次包围盒等数据结构.
(5) 细节保留问题:场数据在由计算机自动生成时,有些尖锐部分会变得模糊平滑.
(6) 大数据量面片绘制费时.这是一个效率问题
解决方案:层次化绘制,八叉树.
- MT算法:解决二义性问题,不使用正方体求等值面,而是使用四面体
步骤如下
(1) 正方体剖分成若干个四面体(一般使用5划分)
(2) 在四面体中求等值面得到若干个三角面片
(3) 将三角面片投影到绘制平面上
三. 三维规则数据场直接体绘制
- 定义:直接体绘制算法是将离散分布的三维数据场,按照一定的规则不通过中间图元直接转换为图形显示设备帧缓存中的二维离散信号,即生成每个像素点颜色的R 、G 、B 值。
- 直接体绘制算法的特点
(1) 直接体绘制简称体绘制,最主要的特点是不生成中间图元。
(2) 将离散分布的三维数据场(对原有实际数据场的采样结果)转换为二维信号,需要重新采样(Re-sampling)
(3) 需要计算每个数据值(采样点)对二维图像的贡献,同时需要将全部数据值对二维图像的贡献进行合成
(4) 体绘制的实质包括两项内容: 重新采样 、图像合成
- 光照模型
光照模型的作用:
常用光照模型:
(1) 源-衰减模型(Source-Attenuation)
为体数据场中的每一个体素分配一个源强度和一个衰减系数,每一个体素作为一个质点光源发出的光线在数据场中沿距离衰减后被投影到视平面上,形成结果图像。
(2) 变密度发射模型(Varying Density Emitters)
质点光源模型,每个体元都可以发光.
(3) 材料分类及混合模型(Classification&Mixture)
- 直接体绘制算法分类
软件方法
频域:物序(以RayCasting为例),相序(以抛雪球为例)
时域
硬件方法 - 三维规则数据场直接体绘制-------RayCasting算法(光线投射算法)
光线投射算法实现:
(1) 判断一个点在多边形内部(计算几何知识,在光线与多边形求交中遇到)
a) 叉积(只适用于凸多边形):充要条件是,对于多边形每对相邻顶点做叉积,叉积符号相同.
b) 夹角之和360
c) 无穷远处交点个数计数法
(2) Raycasting算法分类
按照合成方式:Pre DVRI,Post DVRI
按照采样方式:等距,不等距
(3) RayCasting算法存在的问题
1) 图像模糊问题:延迟渲染
以前,对于同种物质的各个点,它们毫无干系,各自为战.来一个点,就直接渲染这个点.
现在,对于同种物质的各个点,先把它们累加起来,再对累加和进行渲染.
2) 希望突出体绘制中的边界面信息:增加梯度计算和光照计算,显示表面效果
3) 算法效率,每条射线都需要求交,运算量大:利用射线相关性,减少运算量
4) 采样问题,等距采样太盲目,采样间距不易控制,等距采样默认间距之间只有一种物质.
解决方案:八叉树,相当于变步长采样.
(4) 数据场相关性
a) 数据场场值连续性
b) 数据场空间连续性
c) 成像平面相邻像素连续性
(5) 体元分类
a) Voxel Cell,只含一种物质的体元
b) Blank Cell,空体元
c) Complex Cell,包含多种物质的体元
- 物序法
(1) 足迹表法FootPrint,又叫Splatting抛雪球法--------物序
(2) 物序法的特征
逐层、逐行、逐个地计算每一个数据点对屏幕像素的贡献,将其加以合成,形成最后的图像
(3) 物序法
? Splatting—— 体素
? V-buffer—— 体元
? Slice—— 纹理
? Shear-Warp—— 整体
? 体元相关性投影—— 体元
(4) 错切变形Shear-Warp算法
算法的中心思想:将三维离散数据场变换到一个中间坐标系,在这个中间坐标系中,观察方向与坐标系的一个轴平行,这样将大大简化从三维物体空间到二维图像空间的投影过程。
(5) SBR(SurfaceBasedRendering,基于等值面)和DVR(DirectVolumeRendering,直接体绘制)
四. 不规则体绘制
- 不规则体数据绘制算法:RC,体元投射法
- 使用RC方法
? 插值运算形成规则数据场:最近邻点法、三线性法、
按距离反比加权法等
? 用规则数据场的光线投射方法对上面步骤形成的数据场进行绘制 - 体元投影
- 三维不规则数据场的主要特点:空间分布稀疏、网格的形状不同、
大小不一致。
五. 矢量场绘制
原文地址:https://www.cnblogs.com/weidiao/p/8449559.html