这个程序是我从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程序。 **1. 准备工作** 在开始之前,你需要确保安装了必要的库文件。这些文件通常包含DLL(动态链接库)、INCLUDE(头文件)和LIB(库文件)。DLL文件夹中包含GLU.DLL、...
#### 四、编写第一个OpenGL程序 以下是一个简单的OpenGL程序示例: ```c #include void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glFlush(); } int main(int ...
OpenGL实验2是一个深入学习计算机图形学的实践环节,主要聚焦于使用OpenGL库进行交互式图形渲染。OpenGL是一种跨语言、跨平台的编程接口,用于渲染2D和3D图形。这个实验旨在帮助学生理解如何利用OpenGL创建动态、...
**3.3 创建第一个项目** 创建OpenGl项目的基本流程包括: - 初始化GLFW。 - 创建窗口。 - 设置回调函数处理输入事件。 - 加载OpenGL函数。 - 渲染循环。 **3.4 链接OpenGL库** 根据操作系统不同,链接OpenGL库的...
这个"OpenGL第一个示例",特别是第八版中的"triangles"示例,是初学者入门OpenGL编程的经典起点。它旨在教授如何使用OpenGL库在屏幕上绘制基本的几何形状,如三角形。 在OpenGL中,所有渲染都始于一个叫做顶点的...
第一个程序:2 简单图形 这个程序可能包含了绘制基本几何形状,如点、线和多边形。在OpenGL中,通常会使用`glBegin()`和`glEnd()`来定义一个图元的开始和结束,然后在它们之间调用`glVertex()`来指定顶点坐标。例如...
五、第一个 OpenGL 程序 1. #include 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); ...
JOGL 程序要与 AWT 或 SWING 结合,第一个程序我们要使用到的类并不多,主要有以下几个: * GL2:这是一个接口,是用来调用 OpenGL 函数的,这个接口对象的取得下面会讲到 * GLCanvas:这是一个类,是一个支持 ...
8. **OpenGL工程创建**:学习OpenGL编程的第一步是建立一个OpenGL工程,这通常涉及到设置项目属性,链接所需的库,并编写基本的框架代码来初始化OpenGL上下文。 9. **基本几何形状的绘制**:后续的学习将逐步深入到...
本教程的第一课主要关注如何创建一个基本的OpenGL窗口。 在Windows开发环境中,通常使用GLUT(OpenGL Utility Toolkit)库来快速搭建OpenGL应用的框架。GLUT简化了创建窗口、处理用户输入和初始化OpenGL上下文的...
四、第一个 OpenGL 程序 下面是一个简单的 OpenGL 程序: ```c #include void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glFlush(); } int main(int argc, char ...
OpenGL是一种强大的图形库,用于在各种操作系统上创建2D和3D图形...这个项目提供了一个基础的OpenGL学习示例,展示了如何在QT环境中利用OpenGL进行3D图形渲染。通过深入理解这些概念,你可以进一步开发更复杂的3D应用。
"与一个画三角形的示例小程序"是所有OpenGL学习者的起点。在计算机图形学中,三角形是最基本的形状,所有的复杂3D模型都可以分解为多个三角面片。这个示例程序将演示如何设置OpenGL环境,定义顶点,以及使用基本的...
2. **游戏开发**:描述中的“小游戏”表明这是一个基于OpenGL的交互式应用,可能是第一人称或者第三人称视角,或者更简单的2D滚动视图。游戏开发通常涉及动画处理、用户输入响应、物理模拟等多个方面。 3. **物理...
OpenGL演示程序是一个旨在帮助用户直观学习和理解OpenGL图形编程的软件。OpenGL,全称为Open Graphics Library,是一个跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。这个演示程序通过实例...
1. **顶点着色器(Vertex Shader)**:这是OpenGL中的第一个着色器,用于处理几何数据。在烟花程序中,顶点着色器可能用来定义烟花发射点的位置,以及它们如何在空间中移动。 2. **片段着色器(Fragment Shader)**:...
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超级宝典(第四版)及代码"是一本权威的参考书籍,它详细介绍了OpenGL的最新版本,包括核心特性...
在Android平台上,OpenGL ES被广泛用于2D和3D图形应用程序的开发,提供了一个强大的、硬件加速的图形编程接口。 在学习Android OpenGL ES时,首先需要理解基本概念,例如顶点、图元、着色器等。顶点是构成几何形状...
glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(myDisplay); glutMainLoop(); return 0; } ``` #### 三、总结 本教程首先介绍了OpenGL的关键特点和优势,包括其与C语言的紧密集成、强大的跨平台能力...