OpenGL开发库的选择问题
用更高层次的开发库,而不是直接用OpenGL的API
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分别用于Coin与Qt, Windows原生界面, X, MAC界面控件库配合使用。
以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 阅读(666) 评论(0) 编辑 收藏 举报