第一个opengl程序完整攻略
2008-10-20 15:22
417 查看
第一步: 选择一个编译环境。这里我使用的是MS的VS2005.
第二步:http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip 到这里下载最新的glut包(这很重要,否则通不过编译)
第三步:配置VS环境
1.在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC/PlatformSDK/include/gl文件夹”)。把解压得到的glut.h放到这个文件夹。
2.把解压得到的glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC/lib”文件夹)。
3.把解压得到的glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:/Windows/System32)
第四步:建立opengl工程
这里以VisualStudio2005为例。
选择File->New->Project,然后选择Win32 Console Application,选择一个名字,然后按OK。
在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。
然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。
#include <GL/glut.h> //需要包含头文件#include <GL/glut.h>,这是GLUT的头文件。本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h>,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含。
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f,1.0f,0.0f);
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;
}
编译执行就可以了。
这里转载一篇文章:
引用: 怎么把那个DOS窗口去掉啊?
答:首先,那个窗口不叫DOS窗口,而叫“命令行窗口”。
如果使用GLUT的话,最好还是保留那个窗口,因为如果在使用GLUT过程中有任何错误或者警告,都会直接显示到命令行窗口——如果你绘制图形失败,多半可以根据命令行窗口中的信息找到一点原因。这样会给我们带来方便。
另外,使用GLUT可以做到平台无关。也就是说,虽然我们现在讲的是Windows下面的编程,但这些代码拿到Linux, Apple Macintosh,IBM OS/2或者其它的窗口系统,都可以被正确的编译并执行(需要下载并安装相应版本的GLUT),不需要修改代码。如果需要去掉“命令行窗口”
如果你真的感到“命令行窗口”很不爽,可以在建立工程时选择“Win32 Application”,而不是“Win32 Console Application”。(对于已经建好的工程,需要在Projcet->Properties-> Configuration Properties->Linker->System那个窗口里面,把SubSystem选项由 Console改为Windows),并在程序开始时使用WinMain作为程序入口,而不是main。然后,你还需要一些Win32的编程基础。如果你不介意的话,把下面的代码抄下来也可以。
#include <windows.h>
#include <GL/glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev,
PSTR CmdLine, int iCmdShow)
{
int argc = 1;
char *argv[] = {"OpenGL Application"};
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
注意这个程序和前面的示例所不同的地方:
1、多加了头文件:#include <windows.h>。
2、main变成了WinMain,并且函数的参数有所不同。
3、在WinMain中,定义了假的argc和argv,方便使用glutInit函数。虽然看起来有些别扭,但总算是成功的将GLUT给初始化好了。
建议:GLUT在学习的开始时期会给查错带来方便,因此使用GLUT,并且打开命令行是比较好的做法。当我们不再需要GLUT,打算一切自己干时,再来考虑如何写一个不带命令行的程序,这样可能会比较合适。
第二步:http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip 到这里下载最新的glut包(这很重要,否则通不过编译)
第三步:配置VS环境
1.在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC/PlatformSDK/include/gl文件夹”)。把解压得到的glut.h放到这个文件夹。
2.把解压得到的glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC/lib”文件夹)。
3.把解压得到的glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:/Windows/System32)
第四步:建立opengl工程
这里以VisualStudio2005为例。
选择File->New->Project,然后选择Win32 Console Application,选择一个名字,然后按OK。
在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。
然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。
#include <GL/glut.h> //需要包含头文件#include <GL/glut.h>,这是GLUT的头文件。本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h>,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含。
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f,1.0f,0.0f);
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;
}
编译执行就可以了。
这里转载一篇文章:
引用: 怎么把那个DOS窗口去掉啊?
答:首先,那个窗口不叫DOS窗口,而叫“命令行窗口”。
如果使用GLUT的话,最好还是保留那个窗口,因为如果在使用GLUT过程中有任何错误或者警告,都会直接显示到命令行窗口——如果你绘制图形失败,多半可以根据命令行窗口中的信息找到一点原因。这样会给我们带来方便。
另外,使用GLUT可以做到平台无关。也就是说,虽然我们现在讲的是Windows下面的编程,但这些代码拿到Linux, Apple Macintosh,IBM OS/2或者其它的窗口系统,都可以被正确的编译并执行(需要下载并安装相应版本的GLUT),不需要修改代码。如果需要去掉“命令行窗口”
如果你真的感到“命令行窗口”很不爽,可以在建立工程时选择“Win32 Application”,而不是“Win32 Console Application”。(对于已经建好的工程,需要在Projcet->Properties-> Configuration Properties->Linker->System那个窗口里面,把SubSystem选项由 Console改为Windows),并在程序开始时使用WinMain作为程序入口,而不是main。然后,你还需要一些Win32的编程基础。如果你不介意的话,把下面的代码抄下来也可以。
#include <windows.h>
#include <GL/glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev,
PSTR CmdLine, int iCmdShow)
{
int argc = 1;
char *argv[] = {"OpenGL Application"};
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
注意这个程序和前面的示例所不同的地方:
1、多加了头文件:#include <windows.h>。
2、main变成了WinMain,并且函数的参数有所不同。
3、在WinMain中,定义了假的argc和argv,方便使用glutInit函数。虽然看起来有些别扭,但总算是成功的将GLUT给初始化好了。
建议:GLUT在学习的开始时期会给查错带来方便,因此使用GLUT,并且打开命令行是比较好的做法。当我们不再需要GLUT,打算一切自己干时,再来考虑如何写一个不带命令行的程序,这样可能会比较合适。
相关文章推荐
- OpenGL(二)第一个OpenGL程序绘制三角形
- OpenGL入门(二):第一个OpenGL程序
- Struts2学习【1】第一个完整程序
- OpenGL从1.0开始--第一个OpenGL程序
- 第一个OpenGL程序
- 第一个完整的Map/Reduce小程序
- 第一个OpenGL程序
- OpenGL--第一个OpenGL程序
- OpenGL 第一个小程序
- 第一个完整的程序。著名的俄罗斯方块
- OpenGL初学:安装配置与第一个程序
- OpenGL(试用篇)——第一个OpenGL程序(1)
- 第一个OpenGL程序
- VB OpenGL绘图 -------我的第一个VB6.0 OpenGL程序
- 第一个OpenGL程序
- 一个计算机爱好者的不完整回忆(二十)第一个windows程序
- New程序媛OpenGL全解析之—第一个OpenGL程序解析
- 在vs2005下的第一个OpenGL程序。
- [OpenGL学习] mac上运行第一个openGL程序
- 在vs2005下的第一个OpenGL程序