OpenGL教程之ZEUS教程第二课:设置OpenGL编程环境

 

ZEUS 教程2设置OpenGL编程环境

作者:Grant James (ZEUS)    翻译:oglmatrix

译者序:Grant James (ZEUS)OpenGL教程比较简单,基本属于入门级教程,教程中对OpenGL的使用过程讲解的极为细致,有的时候感觉都过于详细,不过对于初学者这是好事。英文教程中每篇都有相应的源码下载,如果你使用教育网不方便下载的话,也可以与我联系。

英文教程的网址:http://www.zeuscmd.com/tutorials/opengl/index.php

中文翻译网址:http://blog.csdn.net/oglmatrix/

 

简介

 

本教程将会告诉你如何在C/C++中建立使用OpenGL的编程环境。

•如果你想在Windows下并且使用微软Visual Studio.NET编程的话,请看Visual Studio.NET部分。

•如果你想在Windows下编程,但使用一个免费的编译和开发环境(Dev-C++),请看Dev-C++部分。

•如果你想在Unix / Linux环境中编程,请看Unix / Linux部分

 

Microsoft Visual Studio.NET

 

首先你需要确认已经安装Visual Studio.NET (VS.NET)

打开VS.NET,点击File > New ProjectProject Types下选择Visual C++ ProjectsTemplates下选择Win32 Projects

输入一个工程名字,比如02-SettingUpYourEnvironment之类,点击OK

这时向导就会出现,点击Application Settings选择Empty Project如果你想学习使用Win32的教程,选择Windows Application.如果你想学习使用GLUT的教程,选择Console Application.

单击Finish如果你没有在Solution Explorer窗口中看到你得测试工程,选择View > Solution ExplorerSolution ExplorerSource Files上点击右键,选择Add > New Item选择C++ File(cpp)并且键入main.cpp作为文件名,点击OK

此时你会得到一个空白页,如果你现在按F5来编译和连接你的文件,你会发现因为出现连接错误而不能继续进行,你可能会看到类似下面的错误:"error LNK2019: unresolved external symbol _WinMain@16 referenced in function _WinMainCRTStartup".
   
不过不用担心,这是因为你没有编写任何代码。你已经学习怎样成功地建立一个VS.NET工程开始编程。

如果你决定学习那些使用Win32的教程,请开始阅读Win32部分,如果你决定使用GLUT学习,请开始阅读GLUT章节。

 

使用Visual StudioWin32进行OpenGL编程

 

第一步是在main.cpp中输入以下代码,main.cpp的内容:

当链接你的OpenGL应用程序的时候,下面包含两个动态库的这两行是必需的。许多其他的源代码会告诉你怎么在IDE中配置,但把下面的代码放在你的源代码中更为简单。注意,opengl32.libglu32.lib是必需要添加的,这些在最新版本的Visual Studio.NET即将成为标准。

#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")

下面的三行是我们在使用这个教程的过程中必须包含的头文件。GL/gl.h主要是用来使用标准的OpenGL函数库,GL/glu.h是用来使用OpenGL实用库中的部分函数。

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                                                            LPSTR lpCmdLine, int nShowCmd)
{

下面我们将书写一些简单的OpenGL函数。你现在不用担心这些函数,在这里调用它们是为了简单测试是否包含正确的头文件,如果你发现类似下面的错误: error LNK2019: unresolved external symbol __imp_glEnable@4 referenced in function _WinMain@16,这就表明你的.lib文件没有正确地被指定。

              glEnable(GL_LIGHTING);
              return 0;
}

现在你就可以开始使用OpenGL ,Win32Visual Studio.NET.编写你的应用程序。

 

使用Visual StudioGLUT进行OpenGL编程

 

你的第一步是从Nate Robins的网站上下载GLUT包,下载二进制包,编写这个教程的时候的版本是3.7.6,因此需要下载的文件就是glut-3.7.6-bin.zip.

解压缩这个文件之后,有三个文件我们将会使用到,它们是glut.hglut32.lib glut32.dll

你需要把glut.h文件放在你的Visual Studio.NETinclude目录下,同时把glut32.lib放在你的lib目录下,这些目录的位置与你的Visual Studio安装位置有关,如果你的Visual Studio安装在“C:/Program Files/Microsoft Visual Studio .NET 2003/”目录下,那么glut的目录如下:

C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/gl/glut.h

C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/lib/glut32.lib

当你运行已经编译的GLUT应用程序的时候需要glut32.dll文件,这个文件需要和你的应用程序放在同一个目录下,一个更为简单的方法就是把它放在“C:/windows/system32”目录下。这样你可以不必在你创建的所有应用程序的同一目录下放置glut32.dll文件。这样会导致一个问题,如果你想在另外一台机器上运行任一个你的应用程序,你需要记得把glut32.dll和你的应用程序一起拷贝。

现在是时候写一些代码了,把下面的代码放在你的main.cpp文件中。

main.cpp文件内容:

我们的第一行是包含GLUT的头文件:

#include <GL/glut.h>
int main(int argc, char *argv[])
{

不用担心下面调用的两个函数,第一个只是简单地测试GLUT的函数调用,第二个测试一个OpenGL函数调用,我们会在接下来的其他教程中讨论这些函数的。

              glutInit(&argc, argv);
              glEnable(GL_LIGHTING);
              return 0;
}

如果所有的都很好地运行,现在你就可以使用Visual Studio.NETGLUT创建你的应用程序了。

 

Dev-C++

 

首先你应该已经安装Dev-C++,我现在使用的是Dev-C++ Version 5测试版,可以从http://www.bloodshed.net/上下载。

如果你想学习使用Win32的教程,请继续阅读Win32部分,如果你想学习使用GLUT开发的教程,请学习GLUT部分。

 

使用Dev-C++Win32进行OpenGL编程

 

选择File > New > Project

    选择标签Multimedia,接着选择OpenGL,输入02-SettingUpYourEnvironment作为工程的名字,点击OK然后选择你的工程存储的位置。

    这个工程将会生成一个文件,其中包含几行代码,删除这些代码,输入下面的代码

main.cpp的内容:

首先必须包含以下三个头文件,这是我们在整套教程中必须的。头文件GL/gl.h是用来调用OpenGL标准库的函数,GL/glu.h则是调用OpenGL实用库的一些函数。

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                                                            LPSTR lpCmdLine, int nShowCmd)
{

下面将会放置一些简单的OpenGL函数,不用担心这些函数的作用,在此调用仅仅是为了测试所包含的头文件的正确性,如果你得到一个如下的错误:error LNK2019: unresolved external symbol __imp_glEnable@4 referenced in function _WinMain@16,这是因为你的OpenGL库文件放置的位置不正确,导致你不能创建一个OpenGL类型的工程。

              glEnable(GL_LIGHTING);
              return 0;
}

现在你已经成功建立在Dev-C++中使用Win32编制OpenGL程序的环境。

在有些情况下,GLU实用库没有被默认设置,这时你可以选择Project > Project Options菜单,然后选择Parameters标签,在Linker框中添加-lglu32

 

使用Dev-C++GLUT进行OpenGL编程

 

首先你需要从Nigel Stewart's网站上下载Dev-C++版本的GLUT包,下载GLUT 3.7.6+,下载完成之后双击安装,然后把所需要的库文件和头文件放在你Dev-C++的安装目录下的相关位置。

点击File > New > Project,选择Multimedia标签,在安装GLUT包之后会出现一个GLUT选项,选择GLUT,输入02-SettingUpYourEnvironment作为工程的名字,点击OK然后选择你的工程存储的位置。

这个工程将会生成一个文件,其中包含几行代码,删除这些代码,输入下面的代码

main.cpp的内容:

在第一行输入GLUT的头文件,

#include <GL/glut.h>
int main(int argc, char *argv[])
{

不用担心下面的两个函数调用,第一个只是简单地测试 GLUT函数调用,第二个用来测试OpenGL函数调用,我们将在后面的教程中详细解释它们。

              glutInit(&argc, argv);
              glEnable(GL_LIGHTING);
              return 0;
}

 

注意此时没有控制台窗口出现,而在GLUT教程中的第二课和第三课,需要控制台窗口来显示输入结果。如果你想实现这个功能的话,单击Project > Project Options或者Alt + P然后General选择Win32 Console

恭喜你,你已经知道怎么在Dev-C++中编译你的GLUT程序。

 

Unix / Linux

 

目前,所有的Unix / Linux下的教程都是采用GLUT编写,在后面的章节可能会用到其他的库。第一步你得确认已经安装GLUT,你可以通过检查你的/usr/lib目录下是否存在libglut文件来进行确认。如果没有你需要下载GLUT rpm

在我写这个教程的时候,我正在使用Fedora Core 3,这个系统中包含FreeGLUT库,它可以直接地取代 GLUT,如果你有其中的任何一个,你都能编译这些教程。

把下面的内容输入到一个main.cpp文件,

main.cpp的内容:

第一行是简单地包含GLUT的头文件

#include <GL/glut.h>
int main(int argc, char *argv[])
{

不用担心下面的两个函数调用,第一个只是简单地测试 GLUT函数调用,第二个用来测试OpenGL函数调用,我们将在后面的教程中详细解释它们。

              glutInit(&argc, argv);
              glEnable(GL_LIGHTING);
              return 0;
}

一旦这个完成之后,我们需要创建一个Makefile文件。

这与C++教程中的Makefile的唯一不同之处在于它连接了三个新的动态库,它们分别是OpenGL库,OpenGL实用库,GLUT库。

main : main.cpp
              g++ -lGL -lGLU -lglut main.cpp -o main 
clean :
              rm -rf main

 

现在make的话,你的程序应该能够被成功编译。你一定可以成功地在Unix / Linux上编译你的GLUT应用程序。

 

PS:余学OpenGL数月,甚感国内教程之少,故将国外教程译之,方便国人。由于本人能力有限,翻译中难免出现错误,还望各位指正!Emailoglmatrix@126.com

本教程的示例程序请在英文网站下载,抑或与我联系。

版权所有,转载请注明出处,本教程英文版权属原著作者所有。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值