`
s2003zy
  • 浏览: 8953 次
  • 性别: Icon_minigender_1
  • 来自: 赤峰
最近访客 更多访客>>
社区版块
存档分类
最新评论

opengl 学习2 第一个程序

 
阅读更多

这个程序是我从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)类似。

 

  • 大小: 15.2 KB
分享到:
评论

相关推荐

    我的第一个OpenGL程序

    本教程将引导你完成创建你的第一个OpenGL程序。 **1. 准备工作** 在开始之前,你需要确保安装了必要的库文件。这些文件通常包含DLL(动态链接库)、INCLUDE(头文件)和LIB(库文件)。DLL文件夹中包含GLU.DLL、...

    OpenGL入门学习之一——编写第一个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 ...

    opengl实验2_opengl实验2交互_

    OpenGL实验2是一个深入学习计算机图形学的实践环节,主要聚焦于使用OpenGL库进行交互式图形渲染。OpenGL是一种跨语言、跨平台的编程接口,用于渲染2D和3D图形。这个实验旨在帮助学生理解如何利用OpenGL创建动态、...

    openGL学习

    **3.3 创建第一个项目** 创建OpenGl项目的基本流程包括: - 初始化GLFW。 - 创建窗口。 - 设置回调函数处理输入事件。 - 加载OpenGL函数。 - 渲染循环。 **3.4 链接OpenGL库** 根据操作系统不同,链接OpenGL库的...

    opengl第一个示例

    这个"OpenGL第一个示例",特别是第八版中的"triangles"示例,是初学者入门OpenGL编程的经典起点。它旨在教授如何使用OpenGL库在屏幕上绘制基本的几何形状,如三角形。 在OpenGL中,所有渲染都始于一个叫做顶点的...

    图形学 - OpenGL绘制简单图形程序2个

    第一个程序:2 简单图形 这个程序可能包含了绘制基本几何形状,如点、线和多边形。在OpenGL中,通常会使用`glBegin()`和`glEnd()`来定义一个图元的开始和结束,然后在它们之间调用`glVertex()`来指定顶点坐标。例如...

    OpenGL入门教程(快速学习OPENGL)

    五、第一个 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); ...

    Java程序中的OpenGL(JOGL学习教程)

    JOGL 程序要与 AWT 或 SWING 结合,第一个程序我们要使用到的类并不多,主要有以下几个: * GL2:这是一个接口,是用来调用 OpenGL 函数的,这个接口对象的取得下面会讲到 * GLCanvas:这是一个类,是一个支持 ...

    OpenGL编程入门学习

    8. **OpenGL工程创建**:学习OpenGL编程的第一步是建立一个OpenGL工程,这通常涉及到设置项目属性,链接所需的库,并编写基本的框架代码来初始化OpenGL上下文。 9. **基本几何形状的绘制**:后续的学习将逐步深入到...

    NeHe的Opengl教程源程序第一课

    本教程的第一课主要关注如何创建一个基本的OpenGL窗口。 在Windows开发环境中,通常使用GLUT(OpenGL Utility Toolkit)库来快速搭建OpenGL应用的框架。GLUT简化了创建窗口、处理用户输入和初始化OpenGL上下文的...

    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绘制球的程序

    OpenGL是一种强大的图形库,用于在各种操作系统上创建2D和3D图形...这个项目提供了一个基础的OpenGL学习示例,展示了如何在QT环境中利用OpenGL进行3D图形渲染。通过深入理解这些概念,你可以进一步开发更复杂的3D应用。

    OpenGL学习资料文档.rar

    "与一个画三角形的示例小程序"是所有OpenGL学习者的起点。在计算机图形学中,三角形是最基本的形状,所有的复杂3D模型都可以分解为多个三角面片。这个示例程序将演示如何设置OpenGL环境,定义顶点,以及使用基本的...

    opengl小程序

    2. **游戏开发**:描述中的“小游戏”表明这是一个基于OpenGL的交互式应用,可能是第一人称或者第三人称视角,或者更简单的2D滚动视图。游戏开发通常涉及动画处理、用户输入响应、物理模拟等多个方面。 3. **物理...

    OpenGL演示程序

    OpenGL演示程序是一个旨在帮助用户直观学习和理解OpenGL图形编程的软件。OpenGL,全称为Open Graphics Library,是一个跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。这个演示程序通过实例...

    OpenGL烟花程序代码

    1. **顶点着色器(Vertex Shader)**:这是OpenGL中的第一个着色器,用于处理几何数据。在烟花程序中,顶点着色器可能用来定义烟花发射点的位置,以及它们如何在空间中移动。 2. **片段着色器(Fragment Shader)**:...

    OpenGL编程指南(第8版 PDF) 中文版 高清晰 最新 完整版 (带目录书签)

    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超级宝典(第四版)及代码"是一本权威的参考书籍,它详细介绍了OpenGL的最新版本,包括核心特性...

    Android OpenGL ES学习

    在Android平台上,OpenGL ES被广泛用于2D和3D图形应用程序的开发,提供了一个强大的、硬件加速的图形编程接口。 在学习Android OpenGL ES时,首先需要理解基本概念,例如顶点、图元、着色器等。顶点是构成几何形状...

    OpenGL 入门学习教程

    glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(myDisplay); glutMainLoop(); return 0; } ``` #### 三、总结 本教程首先介绍了OpenGL的关键特点和优势,包括其与C语言的紧密集成、强大的跨平台能力...

Global site tag (gtag.js) - Google Analytics