仿真软件开发工具介绍(2)—显示引擎VTK/OSG

在VTK之上开发的Paraview成为开源软件和很多公司的可视化工具。尤其在医疗三维可视化方面,基本上算是首选开发工具。采用VTK和Paraview为可视化开发工具比较出名的有OpenFOAM,Salome,StressCheck,Cubit等。

屏幕截图 2022-10-29 135748

 

Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk

VTK以用户使用的方便性和灵活性为主要原则,具有如下的特点:

1) 具有强大的三维图形功能。Visualization Toolkit 既支持基于体素Voxel-basedrendering 的体绘制Volume Rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件

2) Visualization Toolkit 的体系结构使其具有非常好的流streaming和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制

3) Visualization Toolkit 能够更好的支持基于网络的工具比如Java 和VRML 随着Web 和Internet 技术的发展VisualizationToolkit 有着很好的发展前景

4) 能够支持多种着色如OpenGL 等

5) Visualization Toolkit 具有设备无关性使其代码具有良好的可移植性

6) Visualization Toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为

7) Visualization Toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理

8) 既可以工作于Windows 操作系统又可以工作于Unix 操作系统极大的方便了用户。

 

——————————————————————————————————–

 

OSG,OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;而更低层次的OpenGL 硬件抽象层(HAL)实现了底层硬件显示的驱动。以OpenGL技术为图形元素(多边形、线、点……)和状态(光照、材质、阴影……)的编程提供了标准化的接口。而OSG开发的主要意义在于,将3D场景定义为空间中一系列连续的对象,以进行三维世界的管理。正是由于场景及其参数定义的特点,通过状态转化、绘图管道和自定制等操作,OSG还可以用于优化渲染性能。

从系统开发人员的角度看,相比工业标准OpenGL 或其它的图形库,OSG的优点显而易见。除了开源和平台无关性以外,它封装并提供了数量众多的提升程序运行时性能的算法、针对包括分页数据库在内的几乎所有主流数据格式的直接数据接口、以及对脚本语言系统Python 和Tcl 的支持,特别的,支持脚本语言系统的意义不仅限于用户可以使用除C++语言以外的工具进行图形系统的开发,事实上,对弱类型计算机语言的支持将突破现有交互式图形系统在人-机交互性能方面的最终限制。 

OSG采用以下思想和工具进行构建: ·

ANSI标准C++; 

C++标准模板库(STL); ·

设计模式(Design patterns)。 

这些工具使得OSG的开发者可以在自己喜好的平台上进行开发,并且依据用户所要求的平台进行配置。OSG支持骨骼动画、关键帧动画等各种流行的动画,它可以把3DMAX建立的动画模型转化成OSG格式导入到项目中进行控制,osgAnimation库中有大量的动画实用类。在OSG相关扩展中,最引人注目的是osgEarth、VPB与osgOcean,它们可以帮助开发人员完成一个功能强大且完善的三维地形展示系统,osgEarth功能类似于GoogleEarth,且地形的实时生成效率可媲美GoogleEarth。osgOcean是OSG的扩展海洋模块,特点是可以逼真地仿真大面积水域,也可以在此基础上做二次开发。

 

简单来讲,VTK和OSG都能作为图形显示开发的工具。VTK更偏向于科学数值计算工具,具有大规模计算的能里,OSG更适合做渲染方面的工作,场景显示漫游以及游戏等。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞4668 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容