【转】OpenGL Related Development ToolKits

来源:互联网 发布:金山数据恢复大师安卓 编辑:程序博客网 时间:2024/04/29 11:33

OpenGL render tips的这个题目也比较大,而且具体讲那些内容,我还没有完全确定下来,我先讲一个比较小的题目。

 
关于这个题目的具体内容我也想了很久,我想介绍一些大家经常用到的内容。
Glu
Glaux
Glut
OpenGL extension Toolkits
GL2PS
GLtrace
Industry develop Toolkits
 
1 glu
目前的版本是glu1.3,下载地址(http://www.geocities.com/vmelkon/glu.html)我想这方面的内容和参考手册大家一定背得比我还熟。我就多嘴几句。Glu是调用OpenGL API实现的,我们可以使用VC++6.0的Depends得到验证。我们可以认为它是OpenGL的一个辅助工具包。Glu的基本函数功能可以划分为三个方面:
(1)       Transform辅助函数
gluOth2D, gluLookAt, glProject,gluUnProject,glPickMatrix,gluPerspective
(2)       Texture辅助函数
自动Mipmap纹理生成或者纹理缩放为宽高为2^n
glBuild1DMipMaps
glBuild2DMipMaps
gluScaleImage
(3)       高级OpenGL几何图元生成
Sphere,Cylinder等
任意多边形(无论凸多边形、或者凹多边形)三角形剖分;
Nurbs曲线和曲面;
Bezier曲线,曲面的定义在OpenGL中已经实现,glMap*。
 
2 glaux
这是微软开发的,支持OpenGL初始化工作,窗口管理,消息处理等工作的一个开发包。根据我的程序跟踪和使用,发现这个开发包包含了大量的错误,many bugs,而且能够引起严重的内存泄漏(memory leak)。
Advice:尽可能避免使用这个开发包。
 
3 glut
3.7.6下载地址(http://www.xmission.com/~nate/glut.html)
它是一个跨跨平台windows/Linux/unix/mac的OpenGL辅助开发包,它主要完成的任务有:
窗口创建与删除;
窗口消息的处理;
键盘鼠标消息回调函数;
OpenGL context的自动管理;
全屏幕程序支持;
一致的弹出式菜单支持;
http://www.opengl.org/developers/documentation/glut/index.html
 
Advice:它非常适合算法研究。
 
4 OpenGL extension Toolkits
4.1  SGI’s ogl SDK
opengl 1.2以上版本 请用opengl 扩展库, 我用的是 glew  ,下载地址 http://glew.sourceforge.net/
关于OpenGL extension SDK,可以说它一个官方的SDK
http://oss.sgi.com/projects/ogl-sample/sdk.html
 
42 glux
    关于另外一个OpenGL extension SDK
http://w3imagis.imag.fr/Membres/Sylvain.Lefebvre/glux/
 
模仿glut写的,如果和glut配合使用,可以获得比较一致的程序设计风格。
4.3   CSGL: C# graphics library
基于C#的一个OpenGL开发包,可以在C#中调用OpenGL1.4。
csgl.sourceforge.net/
4.4 OpenGL extension Detection Software(similar to DXCaps)
    关于OpenGL extension Support检查软件:
              www.realtech-vr.com/glview/ 
 
5 GL2PS
我们在阅读图形学相关的PDF文件的时候,我们通常会发现一些文件中的插图比较奇怪,当我们拖动页面的滚动条的时候,它们不断地刷新自己,这表明这些插图是矢量的EPS图形。同时我们似乎觉得它们应该是OpenGL的输出结果。我们的直觉是对的,它们是OpenGL程序输出的EPS文件!如果有了这个开发包,我想我们可以不再使用屏幕截图的方式生成的paper插图了。
 
OpenGL程序输出矢量的eps或者ps文件程序库的官方站点:
http://www.geuz.org/gl2ps/
 
6 GLtrace
这是OpenGL开发库中最有名的开发包之一。它是一个OpenGL的Hook DLL。它能够截获OpenGL 1.3的所有函数调用。假设你知道一个应用程序是使用OpenGL1.3写的,但是你没有它的源代码,那么GLtrace能够记录所有的OpenGL API调用,那么你就可以知道这个OpenGL程序是如何实现的。它相当一个Hack程序。
它的可以完成的工作如下:
(1)       截获一个OpenGL程序调用的所有OpenGL API序列;
(2)       分析一个OpenGL程序的实现算法;
(3)       强制一个OpenGL程序使用Front Buffer绘制,对于跟踪一个.exe应用程序非常有效;
(4)       对于一个OpenGL程序,修改GLtrace后,下载一个应用程序的纹理数据,或者说叫窃取,特别是一些Game或者BenchMark;
(5)       修改GLtrace后,窃取一个应用程序的图元数据,或者网格;
(6)       对一个程序作性能优化测试和分析,例如经典的Quake III,Profile或者performance tuning;
 
至于如何使用这个工具,需要大家开动聪明的大脑袋。
这里我告诉大家它的官方网站,不过这个工具有多个明显的BUG,希望大家在使用的过程中能够把它修订,我就不告诉大家是那几个具体的问题了。大家可以学习源代码的时候思考一下。
http://www.hawksoft.com/gltrace/
Advice:推荐等级 *****
 
7 Industry Development Toolkits
 
下面主要介绍工业界的大型或者Open Source,能够实现强大功能和场景组织,输入设备管理的工具包:
 
我简单列举一下,大家可以到相关网站下载。
SGI OpenGL inventor:
http://oss.sgi.com/projects/inventor/
 
SGI OpenGL performer:
http://www.sgi.com/software/performer/
Kitware VTK
http://public.kitware.com/VTK/
Open ML: 我感觉它完全是模仿DirectX SDK体系结构的一个东西。大家有兴趣可以研究一下。
http://www.khronos.org/openml/
 
OpenGVS: Quantum3D 的一个大型仿真系统软件包
http://www.opengvs.com/
 
OpenSceneGraph: open source high peformance 3D graphics toolkit
http://openscenegraph.sourceforge.net/
 
OpenSG:一个Open Source 的基于对象的Scene Graph
http://www.opensg.org/
 
VR Juggler: a good VR open source toolkit.
www.vrjuggler.org/
      
8 Game Development Library
8.1 Quake III/IV
8.2 Doom II/III
这两个是最有名的,但是它们没有公开。

opengl 1.2以上版本 请用opengl 扩展库, 我用的是 glew  ,  这里下载http://glew.sourceforge.net/ 最新 1.5.1

原创粉丝点击