【转】OpenGL Related Development ToolKits
来源:互联网 发布:金山数据恢复大师安卓 编辑:程序博客网 时间:2024/04/29 11:33
OpenGL render tips的这个题目也比较大,而且具体讲那些内容,我还没有完全确定下来,我先讲一个比较小的题目。
关于这个题目的具体内容我也想了很久,我想介绍一些大家经常用到的内容。
l Glu
l Glaux
l Glut
l OpenGL extension Toolkits
l GL2PS
l GLtrace
l 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几何图元生成
l Sphere,Cylinder等
l 任意多边形(无论凸多边形、或者凹多边形)三角形剖分;
l 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辅助开发包,它主要完成的任务有:
l 窗口创建与删除;
l 窗口消息的处理;
l 键盘鼠标消息回调函数;
l OpenGL context的自动管理;
l 全屏幕程序支持;
l 一致的弹出式菜单支持;
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
- 【转】OpenGL Related Development ToolKits
- Mobile Development Related Knowledge
- Lotus BS CS development related.
- which Toolkits should i used for Cross-Platform Android Development
- Some Useful MOSS Search Development Related Articles
- Steps to set up toolkits Libraries for your OpenGL applications
- 10 cool web development related articles in 2007
- wxWidgets compared to other toolkits (转)
- Deep Learning Toolkits 的比较(转)
- Lotus Domino/Notes Toolkits综述(一) (转)
- Lotus Domino/Notes Toolkits综述(四) Java (转)
- Lotus Domino/Notes Toolkits综述(六) 其他 (转)
- Lotus Domino/Notes Toolkits综述(七) 分析比较 (转)
- OpenGL ES 2.0 development on Chromium OS
- Typical UI development with OpenGL ES
- /LGC图形渲染/Typical UI development with OpenGL ES
- Development
- development
- 安装sqlserver2000出现的问题
- 一般的树的创建,兄弟孩子表示法
- 10月份19
- [转]OPENGL中GLU和GLUT工具箱
- 转载一篇过来人谈的大学期间关于课外学习的意见
- 【转】OpenGL Related Development ToolKits
- 昨天很郁闷
- 今天面试
- 【转】如何在windows平台开发OpenGL程序使用OpenGL1.2或更高版本
- 成长
- 【转】OpenGL版本与OpenGL扩展机制
- 杂感
- 站在不同视角 感受性能测试
- “白话C++”之list疑问