GLUT 教程

                                            体系

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

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

你需要什么!

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

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

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

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

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

3:glut32.dll(windows)和glut.dll(SGI)--这个文件必须放在system32文件夹里。

在VC/VC6.0里的设置

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

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

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

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

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

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

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

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

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

#pragma comment(linker,“/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 2003和VS2005的编译器里。下面是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.h在stdlib.h的前面。改下顺序就可以解决这个问题。

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

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

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

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

OpenGL---GLUT教程(一) GLUT简介,体系相关推荐

  1. c语言GLUT头文件下载,GLUT教程.pdf

    GLUT教程 GLUT教程 (一) 简介 为了用 GLUT 写一个 C 语言程序你需要有三个文件: 1:glut.h-这个头文件是要包含到你的代码里的去的.一般把这个文件放到.include/gl 文 ...

  2. opengl库区分:glut、freeglut、glfw、glew、gl3w、glad

    opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了!) opengl实用工具 ...

  3. OpenGL 关于旧版glut和新版本glfw和glad的环境配置

    目录 一.OpenGL的环境: 1.OpenGL 2.gult:OpenGL工具库 OpenGL Utility Toolkit 3.glew 4.glfw 5.glad(2018.9) 二.旧版本 ...

  4. GLUT教程 - glutPostRedisplay函数

    http://www.cnblogs.com/live41/p/3395899.html [译]GLUT教程 - glutPostRedisplay函数 Lighthouse3d.com >&g ...

  5. OpenGL中常用的 GLUT 函数

    GLUT函数说明 一.初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库.对应 main 函数的形式应是: int main(int arg ...

  6. OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建

    OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助 ...

  7. OpenGL,glx,glaux,glut,freeglut,glew,glfw,mesa

    转自:http://www.lai18.com/content/1297257.html 一.OpenGL OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux).实用工具 ...

  8. OpenGL入门教程(转)

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

  9. linux opengl安装教程,求OpenGL安装过程

    呵呵 好在前些日子用VC++还弄过它... 1.先做好准备工作,上网下载了相关的动态链接库文件(opengl.dll glut32.dll glut.dll等)放在systemboot\system3 ...

  10. OpenGL完整教程专栏完整目录

    OpenGL完整教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:OpenGL完整教程 数量:314篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去的博文, ...

最新文章

  1. UML基础教程(内部使用教程) 非常不错的ppt!!强烈推荐
  2. 49天备考信息系统项目管理师3科50+
  3. php://input allow_url_include,php allow_url_include的应用和解释_PHP教程
  4. 为什么待办事项清单不管用
  5. 力扣——k个一组翻转链表
  6. 置顶图片代码加链接html,css图片怎么加链接?
  7. javascript-各种取值的操作-样式操作
  8. 【作者面对面问答】包邮送《Redis 5设计与源码分析》5本
  9. 利用python提取abaqus节点坐标的脚本_用于在Abaqus中提取结点力的Python程序
  10. 你和一位姑娘正在恋爱,很想知道她是不是喜欢自己
  11. EmEditor中正则表达式
  12. unity 地图画格_[蛮牛译馆]UnityC#教程—六边形地图系列之创建网格(中)
  13. fx2n4ad模块中文手册_三菱PLC特殊功能模块FX2N-4AD实用程序讲解
  14. Python基础 4 字符串的变形 判断
  15. 【接口协议】FPGA 驱动 VGA 显示实验(一)原理部分
  16. 数字IC面试高频考点之跨时钟域信号处理
  17. Android G711编解码
  18. 10天学会PHP之PHP快速入门
  19. 使用Rust开发编译系统(C以及Rust编译的过程)
  20. 一文弄懂:训练集、测试集、验证集

热门文章

  1. 软工系列之--数据流图(DFD图)
  2. 2017 主流手机分辨率与尺寸
  3. 新浪微博开放平台账号申请(基于dcloud开发)
  4. 【Pytorch深度学习实践】B站up刘二大人课程笔记——目录与索引(已完结)
  5. 微信打开页面,提示到浏览器上打开
  6. 集成微信支付后每次打开app都会跳转到微信显示正在连接
  7. Unix/Linux中的read和write函数
  8. 返利网PHP面试_【返利网PHP面试】面试不算难 但是公司的办事奇怪-看准网
  9. 最新亿级流量电商详情页系统的大型高并发与高可用缓存架构实战第一版附全套资料
  10. 想自学编程,不知道先学哪个?