此教程配套openGL 超级宝典super Bible圣经 第六版基于最新openGL4.3,但只有英语版
第六版比第五版(第五版目前有中文版基于openGL3.2)跨了一个时代,改变非常巨大,所以笔者推荐各位初学者(其实包括笔者也是)抛弃3.X版本,生啃4.X版本吧,因为3.X版本已经毫无借鉴了(笔者经过多方
// Include the "sb6.h" header file #include "sb6.h" // Derive my_application from sb6::application class my_application : public sb6::application { public: // Our rendering function void render(double currentTime) { // Simply clear the window with red static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f }; glClearBufferfv(GL_COLOR, 0, red); } }; // Our one and only instance of DECLARE_MAIN DECLARE_MAIN(my_application);
闲话不多说..
第一步,安装vs2010
这一步属于搭建开发环境,各位自己安装,破解...
第二步,安装GLUT工具包
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip
Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件,分别是glut.h,glut.lib,glut32.lib,glut.dll,glut32.dll
2、在E盘,我用的E盘,当然你们也可以用D盘。。随你新建文件夹用于管理 ,我创建了E:\GLUT文件夹
3 分别创建E:\GLUT\include,E:\GLUT\lib文件夹,并把glut.h放在include中。 glut.lib,glut32.lib放在lib中
4 新建一个空控制台项目..这应该会吧.在项目->配置->VC++目录中 的包含目录中添加E:\GLUT\include 引用目录,库目录中添加E:\GLUT\lib
5 现在编译项目的时候会自动搜索E:\GLUT\include中的头文件和E:\GLUT\lib中的静态库文件了
6 吧glut.dll和glut32.dll放入C:\Windows\System32文件夹中(32bit系统)C:\Windows\SysWOW64中(64bit系统)
完成后在项目中添加源文件里添加XX.cpp文件,名字随意,拷贝如下代码:
#include <GL/glut.h> //注意此行语句一定要放在最开始的地方
#include<gl/gl.h>
#include<gl/GLU.h>
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
编译,通过...你的第一个GL程序完成上述针对普通OpenGL开发
下面针对openGL超级宝典第六版
作者在超级宝典中写了自己的代码 若想和笔者一样希望和作者保持相同的代码,,好想是废话....
那么就下载http://www.openglsuperbible.com sb6code压缩包
解压后,放在E盘,你会看到解压后文件夹下就有include,lib等文件夹,作者给你打包好了,不用自己去分类棒棒的
和上面一样添加包含文件目录(头文件引用)和库引用。。。
创建一个空win32项目,,对你没看错是win32项目,这本书的例子都是基于windows窗口编写的,所以需要windows操作系统的支持啦,
新建一个XX.cpp
// Include the "sb6.h" header file #include "sb6.h" // Derive my_application from sb6::application class my_application : public sb6::application { public: // Our rendering function void render(double currentTime) { // Simply clear the window with red static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f }; glClearBufferfv(GL_COLOR, 0, red); } }; // Our one and only instance of DECLARE_MAIN DECLARE_MAIN(my_application);编译运行,如果你不慎创建了一个控制台程序,那么编译时会出现LINK链接错误
done!
enjoy your first gl programme :)