OpenGL---GLUT教程(一) GLUT简介,体系

 

                                           GLUT 教程

                                            体系

 

GLUT 代表OpenGL Utility TookitMark J.Kilgard 为了使OpenGL应用程序结构能够真正独立于窗口系统构思了GLUT库。感谢GLUT,使我们可以写程序而不必去学关于X windows或者微软自己的窗口系统。KilgardX windows上应用这个库,后来Nate Robins把它扩展到微软的窗口系统。感谢他们,他们做的太棒了。

 

在这个教程里,我将给你介绍基本的使用GLUT建立一个应用程序。这个教程将不介绍如何去渲染那些比较精美的视觉场景。这是为了保持代码尽可能的简洁。

 

你需要什么!

为了能够使用GLUT写程序,你应该有最新版本的GLUT库。(GLUT库的下载,网上搜一下,很多的。)

http://www.opengl.org/documentation/specs/glut/spec3/spec3.html 这个网站里有很多GLUT库里函数的原型定义。

 

为了用GLUT写一个C语言程序你需要有三个文件:

1glut.h—这个头文件是要包含到你的代码里的去的。一般把这个文件放到、include/gl文件夹里。

2glut.libglut32.libglut.libSGI的,glut32.libMicrosoft的。好像就是看你用的什么操作系统了。一般down的这两个文件都有)这个文件必须连接到你的程序。所以必须放在lib文件夹里。

3:glut32.dllwindows)和glut.dllSGI--这个文件必须放在system32文件夹里。

 

VC/VC6.0里的设置

Visual C/C++里建立工程可以有两个选择:控制台(console)和Win32。第一个是最常用的,选第一个的话,应用程序将会有两个窗口,一个控制台窗口(就是命令行那样的窗口)一个OpenGL窗口。选择Win32的也有可能用GLUTwindows编程结合建立一个应用程序。所有你必须做的是改变一个设置。

 

主菜单中选择“工程”(project->“设置”(setting

对话框中选择“连接”(link)标签。

在“分类”(Category)组合框里选择“输出”(output

再在“入口点”(Entry-point symbol)文本框里键入“mainCRTStartup

 

对一个现有的控制台应用程序,有一个简单的办法把它转换成Win32应用程序,这样可以摆脱那个命令行窗口。

1:接着上面的添加入口点的那个标签。

2:在“工程选项”(Project options)文本框里把“subsystem:console”替换成“subsystem:windows

 

你也可以仅仅在你的代码的开头添加下面的这一行代码,而不进行上述设置。

 

#pragma commentlinker,/subsystem:/”windows/”/entry:/”mainCRTStartup/””

 

现在这个应用程序就没有控制台窗口,只有OpenGL窗口。为了把GLUT连接到一个程序里,你还得进行以下几步。

1:选择“工程”(project->“设置”(settings)。

2:选择“连接”(Link)标签。

3:增加下面的文件到“对象/库模块”(Object/library modules):OpenGL32.lib,glut32.lib,glu32.lib.(一般加一个glut32.lib就可以了)

 

上面添加了glut32.lib,和opengl32.lib。这两个都是标准OpenGL的库,glu是一个API来自标准的OpenGL扩充。

 

VS.NET里使用OpenGL

很多人在使用VS.NET来建立OpenGL应用程序时,都遇到了一个小问题:一个编译器错误。根据我所知道的,好像仅存在与VS 2003VS2005的编译器里。下面是VS2005里产生的错误。

c:/programas/microsoft visual studio 8/vc/include/stdlib.h(406) : 
   
   
         error C2381: 'exit' : redefinition; __declspec(noreturn) differs
   
   
        c:/opengl/toolkits/includes/gl/glut.h(146) : see declaration of 'exit'

 

这个问题好像是因为包含文件时glut.hstdlib.h的前面。改下顺序就可以解决这个问题。


   
   
#include <GL/glut.h>
   
   
#include <stdlib.h>
   
   
改成
    
    
#include <stdlib.h>
   
   
#include <GL/glut.h>
   
   

  
  
   
    
  
  

OK,所有的都设置好了,让我们开始学习怎么去写GLUT程序。如果这里还有什么地方不清楚的请告诉我,我会试着改进的,你的反馈很总要。

 

(这是本人翻译的第一个网上的英文教程。我的英语水平很不好。所以很多地方没说明白。还望各位指正。这也是我学习英语的一个过程。谢谢。

原文来自http://www.lighthouse3d.com/opengl/glut/。)

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用OpenGL绘制国旗可以通过以下步骤实现: 1. 创建OpenGL上下文和窗口。 2. 设置绘制区域和视口。 3. 设置绘制颜色和深度缓冲区。 4. 绘制国旗的红色背景。 5. 绘制五颗黄色的五角星。可以使用OpenGL的绘制多边形功能来绘制五角星,也可以使用纹理映射来贴上五角星的图案。 6. 交换前后缓冲区,显示绘制结果。 以下是一个简单的OpenGL绘制国旗的示例代码: ``` #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glColor3f(1.0, 0.0, 0.0); // 设置绘制颜色为红色 glBegin(GL_QUADS); glVertex2f(-1.0, 1.0); glVertex2f(-1.0, -1.0); glVertex2f(1.0, -1.0); glVertex2f(1.0, 1.0); // 绘制国旗的红色背景 glEnd(); glColor3f(1.0, 1.0, 0.0); // 设置绘制颜色为黄色 glBegin(GL_POLYGON); glVertex2f(-0.5, 0.5); glVertex2f(-0.25, 0.25); glVertex2f(0.0, 0.5); glVertex2f(0.25, 0.25); glVertex2f(0.5, 0.5); glVertex2f(0.375, 0.25); glVertex2f(0.5, 0.0); glVertex2f(0.375, -0.25); glVertex2f(0.5, -0.5); glVertex2f(0.25, -0.375); glVertex2f(0.0, -0.5); glVertex2f(-0.25, -0.375); glVertex2f(-0.5, -0.5); glVertex2f(-0.375, -0.25); glVertex2f(-0.5, 0.0); glVertex2f(-0.375, 0.25); // 绘制五角星 glEnd(); glutSwapBuffers(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 600); glutInitWindowPosition(100, 100); glutCreateWindow("OpenGL Flag"); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 该示例代码使用了OpenGL的基本绘图功能,通过绘制红色背景和黄色五角星实现了绘制国旗的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值