来源:http://kb.cnblogs.com/a/1711538/
近日参加了为期10天的OpenInventor三维可视化软件工具的培训,OpenInventor是Mercury公司开发的基于OpenGL的三维可视化开发工具包,该工具包支持C++、.NET和JAVA多种开发语言,并可以与Qt集成开发,提供了1000多个类,用于快速开发稳定、高效的3D程序,石油行业中许多商业化软件产品都是基于OpenInventor开发的。
本次培训的是OpenInventor的8.0版本,开发语言是C++,重点掌握如何使用OpenInventor中的节点、域、材质、光照、相机、传感器、引擎、事件、选择器、节点工具箱类、组件等类完成基本三维对象的显示、选择与交互等功能,同时了解Qt与OpenInventor集成开发的编程思路。
1. OpenInventor安装、基本概念及定义
2. 形状节点,视图变换
3. 颜色与光照,纹理映射
4. 存取三维场景数据
5. 场景遍历,事件和选择
6. 传感器和引擎
7. 节点工具箱和组件库,拖拽器和操纵器
8. VolumeViz的使用
9. Qt简介
10. 创建节点、域
OpenInventor的主要功能特点:
1. 面向对象的3D应用程序端口:
Mercury公司的Open Inventor 8提供了超过1300个易于使用的类,便于用户进行快速开发,Open Inventor 8是应用最广泛的面向对象的专业3D图形开发工具包。
2. 优化的3D渲染:
Mercury公司的Open Inventor 8已经通过利用OpenGL最新的功能集和拓展模块优化了渲染效果,自动基于OpenGL的最优化技术来提供一个大大改善的高端的应用程序接口。
3. 先进的基于OpenGL的着色器
OpenGL的着色渲染技术可应用于Open Inventor的任何版本,通过特效来获得更深入的三维视觉体验。Mercury公司的Open Inventor 8嵌入了一个超过80个渲染程序的列表,完全支持ARB语言、NVIDIA Cg 和 OpenGL 绘制语言,来获得先进的视觉效果,进一步提高终端用户的三维可视化视觉体验。
4. 先进的开发帮助:
IvTune®是一个交互的绘图工具,当程序正在运行的时候对3D程序进行校正和调试。它允许开发人员进行交互式视图和修改场景图。
5. 全面的3D内核
除了其完整的3D几何内核之外,Open Inventor 8提供了强有力的先进的3D功能集支持,如NURBS曲面和碰撞检测。完全支持NURBS曲线和任意的裁剪曲面,可实现快速、持续高效的NURBS镶嵌。Open Inventor 8也提供了一个快速的物体间和摄影间、场景间的快速碰撞检测应用,例如,在漫游类型的应用程序中摄影穿透其他物体。这种优化的碰撞检测应用,已被证明是有效的,即使是面对非常复杂的场景。
6. 大型模型的可视化
Open Inventor 8通过更少的三角形来构建新的几何模型,并自动生成LOD(层次细节)和保存外表的简化节点来提高显示质量和使交互渲染成为可能。它可以将几何模型转换成更高效的三角形条块和将对象重新排序来尽量减少状态的变化。复杂场景的快速编辑也是支持的。
7. 多线程技术
多线程技术相比采用多个处理器和利用单一的高端处理器都能增加整体的显示效果。这种特性也适用于多种图形通道,每个图形通道都有自己的渲染线程。
8. GPU的广泛应用
Open Inventor 8的可视化解决方案对程序员们提供了一个独特的解决方案,这个方案能实现先进的三维可视化和强大的计算功能间的交互,这些计算一般是在一个工作站上进行的并行计算。
OpenInventor的开发工具包的构成
OpenInventor开发工具包分为基础模块和扩展模块。
基础模块是所有其它扩展模块的基础,其中除了提供一些基于open GL开发的所有图形工具外,同时还提供多线程计算处理能力、立体像对浏览、远程三维漫游、NURBS工具、大场景投影支持、体数据内部损伤检测、3D纹理叠加、支持HTML格式发布、支持VRML数据发布、海量数据漫游等功能。
扩展模块包括:VolumeViz、VolumeViz LDM、MeshViz™ XLM、ReservoirViz LDM、ScaleViz和HardCopy等。
VolumeViz可以用于地震数据体的体绘制,而VolumeViz LDM可以支持几十甚至几百GB数据体的体绘制。MeshViz™ XLM 包含了高级的数据可视化设计组件,提供了复杂曲面、三维统计图等多种可视化对象,用于2D/3D流体动力学、地质网格等数据的可视化。ReservoirViz LDM模块是针对石油工业的开发库,能对油藏建模和数模的地质网格进行管理和可视化。ScaleViz可用于虚拟现实大屏幕多通道投影的开发,能实现大图形的分块绘图,集成显示的功能。HardCopy模块用于数据的硬拷贝输出,可以打印高清晰度的展示专题图,支持的格式有CGM、HPGL、PostScript等。