目录
目录
3、代码示例
后续
1、glut下载
OpenGL工具库 OpenGL Utility Toolkit,包含大约30多个函数,函数名前缀为glut。
glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。 函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能,此函数由glut.dll来负责解释执行。由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。对于有经验的程序员来说,一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。
这部分函数主要包括
- 窗口操作函数:窗口初始化、窗口大小、窗口位置等函数glutInit() glutInitDisplayMode() glutInitWindowSize() glutInitWindowPosition()等
- 回调函数:响应刷新消息、键盘消息、鼠标消息、定时器函数等,GlutDisplayFunc() glutPostRedisplay() glutReshapeFunc() glutTimerFunc() glutKeyboardFunc() glutMouseFunc()
- 创建复杂的三维物体:这些和aux库的函数功能相同。创建网状体和实心体。如glutSolidSphere()、glutWireSphere()等
- 菜单函数:创建添加菜单的函数GlutCreateMenu()、glutSetMenu()、glutAddMenuEntry()、glutAddSubMenu() 和glutAttachMenu()
- 程序运行函数:glutMainLoop()
GLUT(OpenGL Utility Toolkit)是一个跨平台工具库,只能在win32下使用,不提供64位的开发环境,而且在1998年之后一直没有更新了。
目前最后版本GLUT v3.7的历史可追溯至1998年8月,且该项目似乎已经被废弃。它的许可证禁止任何人发布修改后的库代码。
glut32.dll和glut.dll有什么区别?glut32.dll是为微软封装的,官方的。而glut.dll是sgi封装的。
官网地址:
GLUT - The OpenGL Utility Toolkithttp://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2、freeglut下载
freeglut is an open-source alternative to the OpenGL Utility Toolkit (GLUT) library.
freeglut最初由帕维尔·W. Olszta与安德烈亚斯·乌姆巴赫和史蒂夫·贝克的贡献。史蒂夫是现在官方的拥有者/维护者。帕维尔在1999年12月1日开始freeglut的开发。目前,该项目几乎可以100%的替代原来的GLUT,只有少数差别(如the abandonment of SGI-specific features,按钮盒子和动态视频分辨率)和 其他一小部分程序Bug。
这个库是原始的GLUT库修改之后得到的,它既提供32位、也提供64位的编译环境。
官网地址:
http://freeglut.sourceforge.net/freeglut download | SourceForge.net
Martin Payne's Windows binaries (MSVC and MinGW):http://www.transmissionzero.co.uk/software/freeglut-devel/
DLL放置目录:
32位的DLL X:\Windows\System32
64位的DLL X:\Windows\SysWOW64
3、代码示例
3.1 打印显卡驱动信息
3.2 绘制一个三角形
3.3 使用VBO绘制一个三角形
顶点缓冲对象(Vertex Buffer Objects,VBO)
3.4 使用VAO,VBO绘制一个矩形
- 顶点缓冲对象(Vertex Buffer Objects,VBO)
- 顶点数组对象(Vertex Arrary Object,VAO)
- 索引缓冲对象(Element Buffer Object,EBO)
4、调试OpenGL
后续
如果你觉得该方法或代码有一点点用处,可以给作者点个赞;╮( ̄▽ ̄)╭
如果你感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O???
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ ` )っ!!!