OpenGL超级宝典6 学习环境配置

来源:互联网 发布:java源码 编辑:程序博客网 时间:2024/04/29 21:59

好久没有写博文了,最近觉得图形学方面的知识非常缺乏,于是有了借由《OpenGL超级宝典》第6版的学习来填补这方面空白的想法。目前已经看到第四章,打算自己动手重现一下书中的例子,加深一下印象。在环境搭建方面,参考了一些文章,也自己动手实践了一下。以下是环境搭建的步骤:


一、下载资源


1. 下载随书源码

原书提供的地址:http://www.openglsuperbible.com,需要翻墙。所以我把自己下载到的资源放在了这里:http://download.csdn.net/detail/zhouworld16/9480166。


2. 下载freeglut和glew

可以在sourceforge上下载,地址是https://sourceforge.net,搜索并下载freeglut和glew。我下载到的版本是freeglut-3.0.0,glew-1.13.0。


3. 下载CMake

在前一步下载的freeglut的压缩包解压后,并没有我们想要的VS工程,所以还需要下载CMake来得到VS工程。官方地址https://cmake.org/download/,里面有很多版本可供选择,我下载的是cmake-3.5.1-win32-x86.msi,直接安装。


二、获取和复制需要的文件


1. 通过CMake获取freeglut的VS工程

安装好CMake以后,打开cmake-gui,如图所示,选择freeglut解压缩后的文件夹,以及生成后的工程要放置的位置,点击configure,在弹出的窗口中选择你的VS版本。



完成后以上操作后,得到如图所示的界面,根据红色界面下的提示,再次点击Configure,之后再点击Generate,即可在上一界面选定的文件夹位置得到freeglut的VS工程。




2. 复制freeglut和glew相关文件

打开上一步得到的freeglut工程,选择Release模式进行编译,即可得到freeglut.lib和freeglut.dll文件。现在我们就可以进行freeglut和glew相关文件的复制工作了。


首先是.h头文件:打开VS安装目录,找到VC\include文件夹,新建一个以GL为名的文件夹。到freeglut压缩包解压后的文件夹中,找到include\GL文件夹,将此文件夹中的所有4个.h文件全部复制到VC\include\GL文件夹中。同理,打开glew压缩包解压后得到的文件夹,将include\GL文件夹中的全部3个.h文件复制到VC\include\GL文件夹中。


接下来是.lib静态库文件:在我们上一步编译后的freeglut工程中,找到lib\Release文件夹,将其中的freeglut.lib文件复制到VS安装目录的VC\lib文件夹中。打开glew压缩包解压后得到的文件夹,将lib\Release\Win32文件夹中的glew32.lib和glew32s.lib文件也复制到VS安装目录下的VC\lib文件夹中。


最后,是.dll动态链接库文件:同样在我们上一步编译后的freeglut工程中,找到bin\Release文件夹,复制freeglut.dll文件到C:\\Windows\System32中,如果是64位系统,就复制到C:\\Windows\SysWOW64文件夹中。打开glew压缩包解压后得到的文件夹,将bin\Release\Win32文件夹中的glew32.dll文件也复制到上述文件夹中。


三、建立新工程,搭建书中源码环境


先用VS2013新建一个Win32工程。解压随书源码,将sb6code-master\include\GL文件夹和sb6code-master\extern\glfw-2.7.6\include\GL文件夹内的.h文件复制到VC\include\GL文件夹中,再将sb6code-master\lib中的3个.lib文件复制到VC\lib文件夹中。最后,将sb6code-master\include中的sb6.h及sb6ext.h复制到新建的项目文件夹下,并在项目中导入这两个文件,完成配置。




四、编写代码及运行

新建一个.cpp文件,以书中的第一个程序为例进行试运行。

#include "sb6.h"// Derive my_application from sb6::applicationclass my_application : public sb6::application{public:// Our rendering functionvoid render(double currentTime){// Simply clear the window with redstatic const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };glClearBufferfv(GL_COLOR, 0, red);} };// Our one and only instance of DECLARE_MAINDECLARE_MAIN(my_application);



运行结果如上图,证明配置成功。在书中随后几章的程序中,可能要用到随书源码中的其他文件,如vmath.h,只要照sb6.h一样复制到工程文件夹下,再导入到工程中即可。

0 0
原创粉丝点击