这个程序是我从http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html弄下来的
#include "stdafx.h" #include <GL/glut.h> void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); 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; }
运行程序出现如图的矩形
看下这个程序
1)头文件
1."stdafx.h"这个与工程有关 和opengl无关···
2.<GL/glut.h>:这是GLUT的头文件。
本来OpenGL程序一般还要包含<GL/gl.h>和<GL/glu.h>,但GLUT的头文件、
中已经自动将这两个文件包含了,不必再次包含。
2)main函数:
1、glutInit,对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了。
2、 glutInitDisplayMode,设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜 色)。GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。更多信息,请自己Google。当然以后的教程也会 有一些讲解。
3、glutInitWindowPosition,这个简单,设置窗口在屏幕中的位置。
4、glutInitWindowSize,这个也简单,设置窗口的大小。
5、glutCreateWindow,根据前面设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。
6、glutDisplayFunc,设置一个函数,当需要进行画图时,这个函数就会被调用。(这个说法不够准确,但准确的说法可能初学者不太好理解,暂时这样说吧)。
7、glutMainLoop,进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。)
3)myDisplay函数
在glutDisplayFunc函数中,我们设置了“当需要画图时,请调用 myDisplay函数”。于是myDisplay函数就用来画图。观察myDisplay中的三个函数调用,发现它们都以gl开头。这种以gl开头的函 数都是OpenGL的标准函数,下面对用到的函数进行介绍。
1、glClear,清除。GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西,但这里不作介绍。
2、glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。
3、glFlush,保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)类似。
相关推荐
OpenGL入门学习之一——编写第一个OpenGL程序.pdf 系列教程
第一部分包括第1章到第12章,介绍经典OpenGL绘图的所有基础知识,包括3D图形和OpenGL简介,OpenGL空间绘图,集合转换,颜色、材料和光照,纹理贴图,曲线和表面,管线交互式图形等内容。第二部分包括第13章到第15章...
OpenGL编程指南 第8版 高清 中文 完整版,PDF格式的。...1.5 第一个程序:深入分析 10 1.5.1 进入main()函数 10 1.5.2 OpenGL的初始化过程 12 1.5.3 第一次使用OpenGL进行渲染 21 第2章 着色器基础 25 2.1
资源包括:OpenGL编程指南第七版、OpenGL超级宝典第五版、OpenGL_Nehe中文教程、与一个画三角形的示例小程序,新手入门必备。
第一部分包括第1章到第14章,介绍如何构建一个使用OpenGL的程序,如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后,深入研究使用OpenGL和它的一些高级特性及不同的特殊效果。第二部分包括第...
图书目录: 第1章 走进三维真彩世界 第2章 OpenGL概述 第3章 极小化OpenGL 第4章 绘制二维图形 第5章 OpenGL变换 第6章 显示列表 第7章 模拟真实世界 第8章 OpenGL动画 第9章 OpenGL图像处理基础 第10章 ...
OpenGL图形系统是一个软件接口,让程序员能够创建交互式程序,使用计算机图形学技术生成具有真实感的图像。本书是OpenGL ARB推荐的OpenGL 1.4版学习指南。本书首先阐述OpenGL的功能和计算机图形学基本知识,包括状态...
要开始学习OpenGL,首先需要搭建一个合适的开发环境。以下是一些常用的方法: 安装OpenGL库:首先需要安装OpenGL...通过以上步骤,就可以搭建一个合适的OpenGL开发环境,开始学习和开发OpenGL应用程序。祝你学习顺利!
OpenGL图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理...
chm格式,OpenGL 开发资料汇编,虽然这个教程很小,不过觉得内容挺全的,一共分二大部分:Jeff Molofee的OpenGL教程和OPenGL基础图形编程教程,在Jeff Molofee的OpenGL教程里,你将学习第一个OPENGL三角形的生成、...
第一个 OPENGL程序...................................................................................................................4 、OPENGL的优点......................................................
第一部分包括第1章到第7章,介绍如何构建一个使用OpenGL的程序、如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后深入研究如何使用OpenGL,并向读者介绍GLSL,以及如何创建自己的着色器。第二...
第一部分包括第1章到第14章,介绍如何构建一个使用OpenGL的程序,如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后,深入研究使用OpenGL和它的一些高级特性及不同的特殊效果。第二部分包括第...
实验内容 1、请编写地球围绕太阳自动旋转的方式 2、请再加上一个月亮, 并围绕地球旋转,并添加轨道 3、实现用户通过键盘或鼠标加入或减少行星和卫星 3. 实验结果 1. 开始运行 2. 增加地球和月亮(按键L或l)或其他...
在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。 读完了这一课,你会学到如何在空间放置...
《国外经典教材·计算机科学与技术·OpenGL编程基础(第3版)》完整、详细介绍基本的OpenGL函数...Angel采用一种自上而下的体系来讲解计算机图形学,让读者从动手编写程序的角度能尽快学习现代化计算机图形学方面的知识。
第一部介绍经典OpenGL绘图的所有基础知识,包括3D图形和OpenGL简介, OpenGL空间绘图,几何转换,颜色、材料和光照,纹理贴图,曲线和表面,管线,交互式图形等内容。第二部分是着重介绍OpenGL的一些高级功能。第三...
第一部分包括第1章到第12章,介绍经典opengl绘图的所有基础知识,包括3d图形和opengl简介,opengl空间绘图,几何转换,颜色、材料和光照,纹理贴图,曲线和表面,管线,交互式图形等内容。第二部分包括第13章到第15...
第一部分包括第1章到第14章,介绍如何构建一个使用OpenGL的程序,如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后,深入研究使用OpenGL和它的一些高级特性及不同的特殊效果。第二部分包括第...
openGL红宝书的第一个程序,入门学习之用