OpenGL开发库的选择问题

用更高层次的开发库,而不是直接用OpenGLAPI

OpenGL本身是一组比较底层的接口,用于开发实用的应用程序所需要的工作量是比较巨大,所以需要使用如Open Inventor这种比较高层次的、用面向对象技术封装的开发库,更详细的清单见

http://www.opengl.org/resources/libraries/higherlevel/

学习计算机图形学时,仔细地分析和试用OpenGL的标准接口未尝不可,但实际开发时,要采用开发效率高的工具。

区分GUI,还是图形图像应用

OpenGL可以画出界面上的全部内容,可以粗略的分为几种:

一是专门画用户界面,包括菜单、按钮、工具栏等,用于开发非常漂亮的用户界面,这种情况下的主要要求是美观,主要使用OpenGL出色的渲染功能;二维的图形图像处理软件包含其中。这时可以考虑用:

http://www.opengl.org/resources/libraries/windowtoolkits/

http://www.bramstein.com/projects/gui/

二是三维图形图像应用,即应用程序的主体功能是三维数据的处理,如CAD软件和大型的仿真软件,这时主要使用OpenGL的计算机图形学方面的功能。这时可以考虑用下表列出的开发库

http://www.opengl.org/resources/libraries/higherlevel/

三是计算机游戏,强调立体感,同时,一般整个屏幕都用OpenGL渲染,所以也要画用户界面。

三维图形应用程序的用户界面与OpenGL的结合

图形应用程序都是需要有用户界面的,必须考虑OpenGL与用户界面控件的结合问题,为此Coin(Open Inventor的一个实现)提供了SoQt, SoWin, SoXt, Sc21分别用于CoinQt, Windows原生界面, XMAC界面控件库配合使用。

以Qt为例,SoQt完成了如下典型功能:

1)实现Qt的事件与Coin系统事件的转化

2)实现选中场景中特定图形对象的功能

这样就实现了从软件和用户界面对图形模型进行操作的功能,具体使用方法见:

http://www.coin3d.org/internal/Coin3D-Qt%20Paper.pdf Introduction to Coin3D and Qt

http://doc.coin3d.org/SoQt/ SoQt的项目文档



posted on 2011-05-13 18:45  zhihuichien  阅读(659)  评论(0编辑  收藏  举报

导航