当前位置:文档之家› 三维可视化系统

三维可视化系统

1.三维可视化的目标与主要研究内容可视化(Visualization)技术是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。

它涉及到计算机图形学、图像处理、计算机视觉、计算机辅助设计等多个领域,成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。

在之前的十几年中,计算机图形学得到了长足的发展,使得三维建模技术逐步完善,通过计算机仿真能够再现三维世界中的物体,并且能够用三维形体来表示复杂的信息;同时,最近几年来并行计算技术与图形加速硬件的快速崛起,使得可视化技术也得到了质的飞跃。

一般讲的可视化,包括科学计算可视化和信息可视化。

前者大量运用在医学、地理、物理等领域(空间数据),比如虚拟样机系统对数字样机部件运行时的实时演示图像生成,就可以归为科学计算可视化的一种;后者则主要是信息系统、商业金融、网络等领域(非空间数据,或者多维数据)。

在我们的基于超算的三维可视化子系统中,所涉及的基本为科学计算可视化的范畴。

在我们基于超算的数字样机应用中,实际的物理模型是由样机来产生激光,并使激光在一个具有各种物理参数的场中的特定位置处聚焦。

因此,可视化模块就能将样机的虚拟模型、靶场物理属性的动态变化、激光打靶的动态仿真数据以即时动画的方式显示,使用户能够实时地观测到样机产生激光时的温度、动能的变化情况,也能即时看到激光在靶场中的射击效果以便调整激光喷射头的位置和角度。

此外,激光对环境介质的影响以及激光的的一些破坏性效果,也能通过精良的可视化技术来渲染这些基于物理及仿真数据的模型,使用户看到具有相当真实感的激光物理效果。

2.三维可视化技术相关领域国内外技术现状、发展趋势及国内现有工作基础2.1国际标准中图形软件到硬件的接口相关领域的研究者对三维可视化技术的研究已经历了一个很长的历程,而且形成了许多比较实用的可视化工具。

由于可视化需要图形应用程序与图形硬件驱动程序的数据交互,因此首先要考虑的是这两者之间的中间件,即用户需要一个向底层的驱动程序发送指令、回馈数据的中介,然后用户和中介之间的交互只需使用简单的API来定义各种相关参数。

这个中介目前有两个主流的技术标准。

其中SGI公司推出的GL三维图形库表现突出,易于使用而且功能强大。

利用GL开发出来的三维应用软件颇受许多专业技术人员的喜爱,这些三维应用软件已涉及建筑、产品设计、医学、地球科学、流体力学等领域。

现在GL已经进一步发展成为OpenGL,OpenGL已被认为是高性能图形和交互式视景处理的标准,目前包括ATT公司UNIX软件实验室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft 公司和SGI公司在内的几家在计算机市场占领导地位的大公司都采用了OpenGL图形标准。

此外,Microsoft公司开发的DireccX三维图形库,也是业界的另一个图形标准。

DireccX和OpenGL都可以看成是从软件到硬件的底层接口库,但DireccX只针对于Windows平台设计,而OpenGL是跨平台的标准;DireccX 目前最热门的应用便是3D游戏的开发上,因为DireccX有针对性地进行了封装和优化,使得DirectX加速在实时绘制中仿佛更有优势;然而,在实时CG/离线动画的制作、CAD应用上以及海量数据可视化上,OpenGL拥有更多的优势,而且由于它的跨平台特性,OpenGL在大型图形工作站中仍然是首选。

在我们的三维可视化系统中,使用的底层标准仍然是OpenGL,所有的真实感渲染、风格化绘制的系统框架都是在OpenGL的基础上实现2.2 三维可视化技术在的发展现状以及国内的工作基础以计算机技术为基础的三维可视化技术,大多以软件的形式体现出来,目前主要分为建模软件、平台软件和应用软件3类。

建模软件中,目前应用较多是欧特克(Autodesk) 公司的3ds MAX 和Maya;Multigen 公司的Creator;Google 公司的SketchUp;Microsoft旗下Caligari 公司的trueSpace 等。

这些建模软件,几乎可以满足我们所见到的任何现实世界中的物体模型的建立,比如房屋、道路、管道、机械配件、植物、动物、日常用品以及我们现实生活中见到的一切。

在这些建模软件中,3ds MAX,Creator 功能强大,SketchUp 简单易学,但SketchUp 本身不能对三维场景进行很好的渲染,3dsMAX 的应用比较复杂。

也就是说每个软件都有自己的优缺点,只有配合使用才能发挥最好的效果。

另外,每个软件的数据存储格式都不相同,SketchUp 为.skp,Creator 为.flt,3ds MAX 为.max, trueSpace 为.cts,数据的相互调用实现起来不很方便,有待进一步改进。

在平台软件与应用软件中,目前国内比较专业的三维可视化系统及软件平台有以下几种:(1)国内适普软件有限公司的IMAGIS Classic。

该系统是一套以数字正射影像(DOM)、数字地面模型(DEM)、数字线化图(DLG) 和数字栅格图(DRG) 作为综合处理对象的虚拟现实管GIS 系统。

(2)国内灵图的VRMap。

VRMap 支持OpenGL 和DirectX 两种国际主流的图形标准,具有完整的空间数据描述体系,强大的三维空间数据处理能力和三维空间分析能力,海量数据管理能力,大规模场景可视化支持,高度数据共享与互操作,并拥有包括VBA、插件和控件开发功能,适用于开发三维应用系统。

另外,像国3.虚拟样机系统的三维可视化技术关键3.1 系统设计宗旨和基本理念数据可视化与信息图形、信息可视化、科学可视化以及统计图形密切相关。

在我们的三维可视化系统中,设计的宗旨在于利用超算的强大计算能力以及可编程图形硬件的并行计算优势,及时地为基于真实数据的物理模型和动态仿真数据生成高质量的图像,同时,可视化系统不仅要再现模型互动的物理过程,还要以形象地描述信息为原则来为各种非实体模型的数据来构建可视化的模型,并快速地生成易于观察的图像。

此外,可视化系统的设计考虑到了支持高并行算法的服务器平台,所以三维可视化子系统的设计要面向协同计算和硬件加速,即基于并行与分布式计算的理念。

从建模到仿真到可视化数据的渲染,每个过程中,都是通过任务的有序分配,将其分派到各个计算节点,然后在每个节点上用基于硬件的并行策略来加速计算。

3.3 三维可视化子系统的框架组织我们的三维可视化子系统中,由于很多核心算法使用了新的设计方式来编写,虽然有不少算法依赖于底层函数库,需要自主开发,但总体而言该系统的平台依赖性较小,所以使用的集成开发环境为Eclipse(集成了C/C++的版本)或者Visual Studio;许多算法比如一些线性代数的算法(向量/矩阵的操作、泊松求解器、多重网格求解器等),均使用已经经过成熟优化的开发包,例如BLAS和Matlab;在并行可视化计算方面,我们使用的当前最为流行的CUDA。

CUDA(C ompute U nified D evice A rchitecture,统一计算架构)是由NVIDIA 所推出的一种集成技术,是该公司对于GPGPU的正式名称。

通过这个技术,用户可利用NVIDIA的GeForce 8以后的GPU和较新的Quadro GPU进行计算。

亦是首次可以利用GPU作为C-编译器的开发环境。

NVIDIA营销的时候,往往将编译器与架构混合推广,造成混乱。

实际上,CUDA架构可以兼容OpenCL或者自家的C-编译器。

无论是CUDA C-语言或是OpenCL,指令最终都会被驱动程序转换成PTX 代码,交由显示核心计算。

基于超算可视化子系统中,系统的输入参数相当于建模与仿真子系统的输出,这些参数可以是描述物理模型几何与材质的数据,也可能是动态仿真计算得到的每一帧各种自由度的数据。

整个可视化过程可分为三段描述:(1).基于物理或者基于过程的建模,得到详细的模型数据(2).根据需要从模型数据中进一步提取出可视化数据(3).进入渲染流程将可视化数据生成图像三维可视化系统的框图也分建模、可视化数据提取和渲染模块。

建模模块的系统架构示意图如下:可视化数据提取模块的架构示意图如下:渲染模块的架构及关系示意图如下:基于超算的可视化系统既要体现模型的细节,又要充分贯彻加速计算的策略。

细节决定了最终图像的视觉效果,精美的视觉效果需要高频细节在图像上呈现;而本系统有实时性的要求,所以效率是先于细节首要保证的方面,在三个子过程中效率居首的理念都要贯彻始终在上述的三个过程中,细节维护的工作主要在前两个过程,即建模与可视化数据的提取。

建模是最重要的方面,因为关于模型的全部物理信息都在这个过程中生成,例如刚体的位置、朝向、所受的合力与力矩、线动量和角动量等;可变性体的内部质量分布、应力情况;流体的密度场、温度场、速度场、粘性系数等等。

本系统的模型是基于真实数据的物理建模来生成的,即通过各个计算节点对数据进行采集后送到超算服务器的参数整合模块中进行综合处理,根据实际物体的组装/拆卸条件进行重新初始化工作,即更新模型的初始状态。

然后,超算通过动力学仿真模块对重新加载的模型数据进行基于物理定律的解算,即以初始形态所在的时刻为0时刻出发点,按时间推进的方式求解当前整个系统的控制方程组,得到每一个时刻的模型数据,然后将这些数据有序地集成并传输到第二个流程——可视化数据提取模块中进行处理。

可视化数据提取模块以建模模块的输出为输入,对当前模型的信息进行进一步处理,以提取出供渲染模块直接使用的数据。

这个过程就是物理信息到可视化信息的转换过程。

在其他的一些三维可视化系统的设计中,可视化数据提取模块通常和建模模块融合成一个子系统,但本系统将其分成独立的两块,原因在于本系统需要生成可视化数据囊括了比较多的类型,按渲染质量分类有需要真实感渲染的数据,有需要风格化渲染的数据;按机制不同分类,有点数据(例如粒子)、线数据(例如剖面图的一些线框显示)、面数据(如带法线的三角化的曲面,是光线追踪的基本操作元素)、体数据(例如火焰、烟雾的温度与浓度分布,这是光线投射的操作元素)、场数据(例如流场的速度场)等。

因此,本系统将可视化数据的提取作为一个单独的模块,目的是为了更灵活、合理的处理不同类型的模型信息。

最后,渲染模块负责将可视化数据映射为最终图像的像素数据。

在本系统的渲染流水线中,除了经典的相机、采样、纹理、材质、光线、滤波等子模块外,还加入了基于图形硬件的并行加速子模块。

如前所述,本系统在三个过程中都使用并行技术来加速,这里渲染流水线是以CUDA为基础设计,通过针对图形硬件的编程实现了高效率与优质的渲染,充分利用了GPU的高并行特性。

相关主题