【前言】
从今天开始着手学习OpenGL了。虽然好多做三维的朋友说现在都使用现成的库,但我觉得基础必须是吃透,否则用现有的库都不知道该调什么函数。
在网上找了本安卓OpenGL ES 2.0的书,可看了几章之后发现很不适用于新手,所以果断PASS了。
又找了本《OpenGL编程指南4》感觉不错,我就从这个开始学起了。
【环境】
我的PC机安装的是32位的win7系统,和VS2010。看了看VC的安装目录中,有gl.h,并且lib和dll也存在。然后就新建了一个工程,把书上的代码敲了一遍发现好多函数都不存在。
上网搜索一下,才知道需要glut这个东东。那它是什么呢?
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。
节选自:http://blog.csdn.net/zckloveczy/article/details/4240189
【搭建】
glut下载地址:
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
glut.h ---> X:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
glut.dll ---> X:\Windows\SysWOW64 (windows7 64位操作系统)
glut32.dll ---> X:\Windows\System32 (windows7 32位操作系统)
glut.lib,glut32.lib ---> X:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
【例子】
#include <gl\glut.h> //绘制矩形使用GL_POLYGON void myDisplay(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); glBegin(GL_POLYGON); glVertex3f(0.25,0.25,0); glVertex3f(0.75,0.25,0); glVertex3f(0.75,0.75,0); glVertex3f(0.25,0.75,0); glEnd(); glFlush(); } int _tmain(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(500, 250); glutInitWindowSize(400, 400); glutCreateWindow("OpenGL程序"); glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }【运行结果】