OpenGL开发环境简介

  

基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。OpenGL函数命令方式十分有规律,每个库函数均有前缀gl、glu、aux,分别表示该函数属于OpenGL基本库、实用库或辅助库。Windows NT下的OpenGL包含了100多个核心函数,均以gl作为前缀,同时还支持另外四类函数:

OpenGL实用库函数:43个,以glu作为前缀;

OpenGL辅助库函数:31个,以aux作为前缀;

Windows专用库函数(WGL):6个,以wgl作为前缀;

Win32API函数(WGL):5个,无前缀。

  

安装GLUT工具包

  

GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。

Windows环境下的GLUT下载地址:(大小约为150k)

http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

  

GLUT代表OpenGL应用工具包,英文全称为OpenGL Utility Toolkit,是一个和窗口系统无关的软件包,

  它由Mark Kilgard在SGI时写的。作为AUX库的功能更强大的替代品,用于隐藏不同窗口系统API的复杂性。

  是一个学习OpenGL编程的一个良好开端。

  

VS环境配置

  

将下载的压缩包解开,将得到5个文件(glut.dll, glut32.dll, glut.lib, glut32.lib,glut.h)

(1)把glut.h复制到x:\Program Files\Microsoft\Visual Studio 10.0\VC\include\gl文件夹中,如果没有gl这个文件夹则可以自己新建一个。(x是你安装VS的盘符号)

(2)把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(即与include并排的lib文件夹下)。

(3)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)

(注:如在开发应用程序时用到OpenGL辅助库函数,则还需下载相应动态链接库,包含glaux.dll, glaux.lib, glaux.h,相应步骤同上)

  

第一个OpenGL程序

  

首先创建工程,其步骤如下:

(1)创建一个Win32 Console Application。

(2)链接OpenGL libraries。在Visual C++中先右击项目,选择属性,找到连接器标签,最后在输入中的附加依赖库加上opengl32.lib glut32.lib glu32.lib.

现在你可以把下面的例子拷贝到工程中去,编译运行。你可以看到一个三角形。

  

 1 #include "stdafx.h"  2   3 #include<gl/glut.h>  4   5 //#include<gl/glu.h>  //glut.h自动包含了glu.h 和 gl.h  6   7 //#include<gl/gl.h>  8   9   10  11 void renderScene(void) 12  13 { 14  15          glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 16  17          glLoadIdentity(); 18  19          glBegin(GL_TRIANGLES); 20  21          glVertex3f(-0.5,-0.5,0.0); 22  23          glVertex3f(0.5,0.0,0.0); 24  25          glVertex3f(0.0,0.5,0.0); 26  27          glEnd(); 28  29          glutSwapBuffers(); 30  31 } 32  33   34  35 int _tmain(int argc, _TCHAR* argv[]) 36  37 { 38  39          glutInit(&argc, (char**) argv); 40  41          glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); 42  43          glutInitWindowPosition(100,100); 44  45          glutInitWindowSize(320,320); 46  47          glutCreateWindow("Hello OpenGL"); 48  49          glutDisplayFunc(renderScene); 50  51          glutMainLoop();//enters the GLUT event processing loop.52  53          return 0; 54  55 }

     

  

main函数中以glut开头的函数都包含在glut.h中。GLUT库的函数主要执行如处理多窗口绘制、处理回调驱动事件、生成层叠式弹出菜单、绘制位图字体和笔画字体,以及各种窗口管理等任务。

glutInit用来初始化GLUT库并同窗口系统对话协商。

glutInitDisplayMode用来确定所创建窗口的显示模式。参数GLUT_SINGLE 指定单缓存窗口,这也是缺省模式,对应的模式为GLUT_DOUBLE 双缓存窗口。参数GLUT_RGB指定颜色RGBA模式,这也是缺省模式,对应的模式为GLUT_INDEX 颜色索引模式窗口。

glutInitWindowSize 初始化窗口的大小,第一个参数为窗口的宽度,第二个参数为窗口的高度,以像素为单位。

glutInitWindowPosition 设置初始窗口的位置,第一个参数为窗口左上角x的坐标,第二个参数为窗口左上角y的坐标,以像素为单位。屏幕的左上角的坐标为(0,0),横坐标向右逐渐增加,纵坐标向下逐渐增加。

glutCreateWindow 创建顶层窗口,窗口的名字为扩号中的参数。

glutDisplayFunc 注册当前窗口的显示回调函数。当一个窗口的图像层需要重新绘制时,GLUT将调用该窗口的的显示回调函数。在此例中的mydisplay就是显示回调函数,显示回调函数不带任何参数,它负责整个图像层的绘制。我们的大部分工作将集中在这个函数中。

glutMainLoop 进入GLUT事件处理循环。glutMainLoop函数在GLUT程序中最多只能调用一次,它一旦被调用就不再返回,并且调用注册过的回调函数。所以这个函数必须放在注册回调函数的后面,此例中为glutDisplayFunc 。

  

[转] http://blog.csdn.net/genganpeng/article/details/6882048

转载于:https://www.cnblogs.com/lzhitian/archive/2012/04/04/2432233.html

OpenGL学习入门之VS2010环境配置 [转]相关推荐

  1. PHP入门及服务环境配置(Nginx+PHP)

    PHP入门及服务环境配置(Nginx+PHP) PHP入门 PHP维基百科: PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一 ...

  2. express学习 - (1)环境配置与第一个express项目

    express学习 (1) 环境配置与第一个express项目 CSDN主页:jcLee95 邮箱:291148484@163.com [任务]: 安装express: 创建第一个express项目: ...

  3. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  4. OpenGL学习入门之3D光照机器人

    OpenGL学习入门之3D光照机器人 // myopengl.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include " ...

  5. ESP32_WIFI Mesh学习笔记1---Ardino IDE 环境配置

    ESP_WIFI MESH学习笔记1-Ardino IDE 环境配置 文章目录 ESP_WIFI MESH学习笔记1---Ardino IDE 环境配置 前言 一.Arduino IDE配置问题 二. ...

  6. OpenStack(M)+ ubuntu 搭建学习二:基础环境配置

    目录 一.配置网络接口 二.配置域名解析 三 .配置国内的软件源 四. 启用OpenStack库 五.安装OpenStack客户端 六.同步系统时钟与时钟服务器(NTP) 具体步骤可参考官方文档:Op ...

  7. Python 基础入门--简介和环境配置

    2019 年第 32 篇,总 56 篇文章 本文大约 1w 字,建议收藏阅读 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理,应该这周内会 ...

  8. python安装方法_Python基础入门——简介和环境配置,超实用!

    作者 | kbsc13 来源 | 机器学习与计算机视觉(ID:AI_Developer) 上周结束了如何构造一个机器学习项目的系列文章,当然还有一篇简单的总结以及介绍一些入门的学习资料,不过还在整理, ...

  9. C++ OpenGL学习——入门篇

    本文参考自 opengl学习网站 opengl学习网站中文版 一.什么是OpenGL OpenGL主流上被认为是一个API(一个应用程序程序接口),提供了大量的函数,使用这些函数可以操作图形和图像.但 ...

最新文章

  1. .net core 17
  2. 区别于传统低效标注,两种基于自然语言解释的数据增强方法
  3. file_operations结构体分析 (设备文件的操作)
  4. 【VISIO2016箭头使用】
  5. c语言mergesort 参数,求教关于归并排序MergeSort()的问题
  6. java 企业微信对接_Java对接企业微信
  7. h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
  8. Excel单元格保护
  9. Python:批量修改图片的后缀名
  10. c语言教学方法措施,C语言教学对策
  11. jmeter第21讲 阿里云下载安装JDK并配置环境变量
  12. numpy基础—numpy的轴
  13. Vivo(IQOO)无法输出调试日志解决办法
  14. 基于Java+Spring+Vue+elementUI大学生求职招聘系统详细设计实现
  15. 访问我的网站时杀毒软件报警提示中了病毒怎么办?
  16. java垃圾回收浅析
  17. 驾考 科目一 日期相关
  18. 微信支付备案香港服务器,只要备案就“皆准”
  19. Mysql高级查询~~关于优秀、及格、不及格
  20. iOS系统下检查第三方APP是否安装及跳转启动

热门文章

  1. PHP开发工具 zend studio
  2. php与ajax技术
  3. css3 animation(左右摆动) (放大缩小)
  4. 谈谈Linux下的数据流重定向和管道命令
  5. 使用AppleScript播放指定时间的电影片段
  6. 【玩转Ubuntu】01. Ubuntu上配置JDK
  7. WP7应用开发笔记(12) 添加页面动画
  8. Spring bean 实现生命周期的三种解决方案
  9. 解决PhpStorm卡顿的问题
  10. 在pandas数据框中选择多个列