在三维显示编程中,OpenGL是行业标准。任何跨平台的三维显示软件都要使用OpenGL技术。但OpenGL技术不是面向对象的,其难于采用OOP思想来进行编程。这造成OpenGL程序编写效率很低。所以,Open Inventor 库应运而生。

Open Inventor 库是采用OOP技术对OpenGL的完美封装,如果你采用能支持OOP设计模式的语言(如C++,Java),强烈建议放下OpenGL参考手册,投入 Open Inventor 库的怀抱吧。

Open Inventor 是OpenGL技术的母公司SGI公司开发的一个开源软件库。因为是开源的,所以许多公司都在为这个库增加/修改代码,从而使得Open Inventor 库成长速度很快。其中不得不提及 TGS 公司,该公司专注于开发 Open Inventor库,所以我们最常用的TGS版本的Open Inventor库。

Open Inventor 中最基本的概念是类(Class)。从功能上可以将这些类分为两大块。

  1. 存储类:目的在于存储三维信息的类,比如 节点(Node),群组(Group)与路径(Path)等;
  2. 动作类:目的在于实现某种动作行为,比如造型变换类、相机变换类、颜色变换类、场景遍历类等

掌握 Open Inventor ,应该从基本三类入手,即:节点(Node),群组(Group)与路径(Path)。

节点就是三维场景中的空间点,其最需要注意的是,节点(Node)类的属性(Property),在Open Inventor库中被拓展为域(Field)的概念。在OOP中,类的某个变量就是它的属性,而在Open Inventor库中,Node节点上的属性还可以进行“联合赋值”等灵动控制,所以其已经超出了一般OOP编程的类属性概念。对于“域”的了解与掌握,是熟悉节点(Node)类的关键。

群组(Group)就是节点(Node)的组合,而路径(Path)则是将不同的节点或群组以某种形式进行串联,从而利于实现某个动作类的传递。

在Open Inventor 库中,节点(Node)、群组(Group)与路径(Path)是基本概念,其构建了最基本的三维空间信息存储模型;Open Inventor 在基础模型上,提供了基于B样条的NURBS曲面概念。NURBS曲面是Open Inventor库的高级概念,其主要由控制顶点、节点序列与阶来进行控制。一般的商业三维软件,都支持NURBS曲面,其提供了“橡皮泥”式的三维曲面操控能力,但对于基本编程而言,NURBS曲面实在是很难也无意义的东东,如果你仅仅是Open Inventor库的初学者,所编写的软件也就是个课程作业或者学位科研项目实验的话,“远离NURBS,珍惜时间”是我给你的建议。

除了用于存储三维空间信息的类,Open Inventor 还提供了许多的动作类。将这些动作类附加在上述的存储类上,就可以实现许多三维显示效果,如渲染、移动视角、变换纹理等。因为Open Inventor库是面向对象的,所以其具有良好的事件响应功能。你可以通过事件响应的方式来进行编程,如当移动某个节点时进行某个动作,这样就能极大地提高三维编程的效率,这可是OpenGL最不具备的功能,也是Open Inventor库最吸引我的地方。

为了方便事件编程,Open Inventor库还创造性地提出两个新概念,即

  1. 传感器:用于侦听场景中的数据变化,采用统一的事件回调函数;
  2. 引擎:将某些动作进行自动化,实现连贯的动作操作;

“传感器”与“引擎”是很伟大的概念,其极大地方便了三维动画编程。看看Open Inventor库所提供的引擎名称,如 耗时器、单触发器、计时器、闸引擎、算术类引擎,就让人“垂涎三尺”了。噢,三维动画编程将成为“dream(美梦)”而非“nightmare(梦魇)”了。

参考资料

  1. Mercury Computer Systems, Open Inventror from TGS User Guide
  2. 闫锋欣等,Open Inventor 程序设计从入门到精通,北京:清华大学出版社,2007

转载于:https://www.cnblogs.com/yankchina/archive/2009/12/28/1634085.html

Open Inventor 库简介相关推荐

  1. 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )

    文章目录 一.Windows 动态库简介 二.Visual Studio 调用动态库 一.Windows 动态库简介 在 C:\Windows\System32 目录中 , 存放着 Windows 中 ...

  2. Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略

    Py之Pandas:Python的pandas库简介.安装.使用方法详细攻略 目录 pandas库简介 pandas库安装 pandas库使用方法 1.函数使用方法 2.使用经验总结 3.绘图相关操作 ...

  3. c++中algorithm头文件、STL库简介及使用说明

    c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...

  4. 网络编程知识预备(5) ——libcurl库简介及其编程访问百度首页

    本文为学习笔记,整合课程内容以及下列文章: 其中,libcurl函数库常用字段解读部分: 参考博文:原文地址 作者:冬冬他哥哥 目录 Libcurl库简介 Libcurl等三方库的通用编译方法 三方库 ...

  5. OpenGL 库 简介

    OpenGL 库 简介 OpenGL库函数的命名方式为:<库前缀><根命令><可选的参数个数><可选的参数类型>. 库前缀有gl.glu.aux.glu ...

  6. python函数库_10. 标准库简介

    10.标准库简介¶ 10.1.操作系统接口¶ os 模块提供了许多与操作系统交互的函数: >>>import os >>>os.getcwd() # Return ...

  7. JSP→JSTL标准标签库简介与环境搭建、JSTL助手EL表达式EL隐式对象、标签→out、set、if、多选择配合、foreach、redirect、格式化、JSTL函数标签、自定义标签、标签类架构

    JSTL标准标签库简介与环境搭建 EL表达式与EL隐式对象 out标签 set标签 remove标签 catch标签 if标签 choose.when.otherwise配合标签 foreach标签 ...

  8. 无人机飞控 ardupilot Copter-4.0.7 库简介

    无人机飞控 ardupilot Copter-4.0.7 库简介 官方文档-库说明 核心库: 库名称 作用 AP_AHRS 使用 DCM 或 EKF 进行姿态估计 AP_Common 所有草图和库所需 ...

  9. ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植

    目录 ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植 Atmel两个官方lib介绍 一.CryptoAuthLib简介 Lib中最主要的三种对象类型: 二. ...

最新文章

  1. SAP-采购订单交货成本抓取方法
  2. R语言包安装方法,及优质包推荐
  3. php设置accept,PHP或htaccess通过Accept-Language重写URL?
  4. java http 302重定向_Java 纯HTTP请求 禁止302自动重定向
  5. 如何复制图文消息封面图片?正文没显示
  6. [转贴]原创控件代码共享--日期选择控件
  7. 还是有点香!苹果官翻2018款iPad Pro及MacBook Air上架
  8. iOS - OC RunLoop 运行循环/消息循环
  9. HDU1160 FatMouse's Speed —— DP
  10. OC门与OD门以及线与逻辑
  11. 编程语言中的句柄是什么?
  12. 数码照片的Photoshop清晰化处理漫谈-photoshop-Photoshop-天极Yesky
  13. 英文学术论文写作基础
  14. 数理逻辑蕴含_16-证明逻辑等价式和逻辑蕴涵式
  15. 关于Ubuntu多显卡服务器,掉显卡的问题
  16. 分布式定时任务调度平台Elastic-Job技术详解
  17. 运行pixellib出现错误
  18. Chrome 谷歌分页打印 去除页眉页脚 点击取消或打印关闭当前窗口
  19. 100天精通Python(数据分析篇)——第51天:numpy模块常用函数大全(字符串/数学/算术/统计/排序/搜索函数)
  20. AMD领先英特尔发表工作频率3.4THz的晶体管 (转)

热门文章

  1. 元计算模拟宇宙人生by剑桥大学材料学博士段晓明 (公号回复“元计算”下载PDF典藏版资料,欢迎转发、赞赏支持科普)
  2. 精读《低代码逻辑编排》
  3. Flink CDC + OceanBase 全增量一体化数据集成方案
  4. Linux 交叉编译
  5. 注册表更改win7的UAC方法
  6. Java基础练习题 已知长方体的长、宽、高分别是a、b、c,求其表面积和体积。
  7. 基站天线效率相关技术研究
  8. 拼多多非标品类目怎么布局?拼多多标品类目怎么布局?
  9. Tourist Attractions
  10. 【二维码案例】民情民意“一扫即达”