OpenGL函数名称的格式
glVertex3f(x, y, z):
gl:属于GL库 GLU库:glu GLUT库:glut
3代表参数个数,f代表x,y,z为float类型
glVertex3fv(p):p为指向float的指针
OpenGL不是面向对象的,因此逻辑上的一个函数却对应着多个OpenGL函数
第一个 OpenGL程序
#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、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,进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示
窗口,并且等待窗口关闭后才会返回,这就足够了。
以 gl开头的函数都是 OpenGL的标准函数:
1、glClear,清除。GL_COLOR_BUFFER_BIT 表示清除颜色,glClear 函数还可以清除其它的东西,但这里
不作介绍。
2、glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。
3、glFlush,保证前面的 OpenGL 命令立即执行(而不是让它们在缓冲区中等待)。其作用跟 fflush(stdout)
类似。
分享到:
相关推荐
Java OpenGL(JOGL)学习笔记 在学习 JOGL 时,我们需要了解图形显示器是如何工作的。图形显示器是一个由许多像素点组成的绘图区域,图形系统的核心是一个魔法画笔,这支画笔能以非常快的速度移动到一个确定的像素...
### OpenGL学习笔记关键知识点 #### 一、OpenGL坐标系与绘图函数 - **坐标系定义**:在OpenGL中,坐标系定义了三维空间中物体的位置。X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从观察者的视角由近及远(即从里至...
### OpenGL学习笔记知识点详解 #### 一、OpenGL简介与安装准备 OpenGL(Open Graphics Library)是一种用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。它被广泛应用于游戏开发、图形软件以及...
这本书籍“Android 3D游戏开发技术宝典 OpenGL ES2.0学习”深入浅出地介绍了如何利用OpenGL ES 2.0在Android上构建高性能、视觉震撼的游戏和应用程序。 首先,OpenGL ES 2.0相比其前代1.0,引入了重要的变化,最...
总的来说,这个压缩包提供了一个全面的学习OpenGL的实践平台,通过这些代码,读者可以深入理解OpenGL的工作原理,掌握图形渲染、变换、光照和相机控制等核心概念,同时也能了解C++在图形编程中的应用。每个文件都是...
**Qt OpenGL纹理映射Demo详解** 在计算机图形学领域,OpenGL是一种...此外,`OpenGL_Qt学习笔记之_05(纹理映射).pdf`和`opengl_nehe_05`等资源也能提供宝贵的学习材料,帮助开发者掌握纹理映射和OpenGL在Qt中的应用。
- 建立第一个App:介绍如何创建Android项目和执行程序。 - 创建Android项目:解释如何搭建一个新的Android开发环境。 - 执行Android程序:演示如何运行和测试应用程序。 - 建立简单的用户界面:介绍布局和控件的...
- **Three.js**:一个流行的WebGL库,简化了WebGL开发,提供了丰富的功能和良好的文档。 - **WebGL Inspector**:调试工具,帮助检查和理解WebGL渲染管线。 - **Shadertoy**:在线平台,可以探索和分享基于WebGL...
这里,我们将编写一个简单的OpenGL程序,绘制一个红色的正方形: ```cpp #include void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0); // 设置颜色为红色 glBegin(GL_QUADS); // 开始...
总之,这个OpenGL学习笔记展示了如何创建基本的3D立方体,包括设置图形环境、深度测试、视口和投影矩阵的配置,以及使用顶点数据绘制几何体。它是学习OpenGL基础和理解3D图形渲染流程的一个良好起点。
Unicode是一种字符编码标准,旨在为世界上所有字符提供一个统一的编码方式。它包括了各种语言的字母、数字以及符号,确保了不同语言之间的文本可以无缝交互。在编程中,使用Unicode有助于处理多语言文本,避免了...
第一部分:OpenGL API基础 这部分是入门者的引导,详细介绍了OpenGL的基础概念和API接口。它包括了OpenGL的安装与配置,以及如何在不同的平台上设置开发环境。此外,还会讲解基本的绘图操作,如绘制点、线和多边形。...
1. 创建第一个QT5应用:通常从一个简单的“Hello, World!”程序开始,了解如何配置开发环境,创建和运行QT5项目。 2. 掌握QML:学习QML的基本语法和组件,理解其与JavaScript的交互方式,尝试制作动态的UI。 3. 实践...
OpenGL ES 2.0是移动设备和嵌入式系统上广泛应用的图形库,它是OpenGL标准的一个子集,专为资源有限但需要高质量3D图形处理能力的设备设计。这个开发包包含了必要的工具类和资源,有助于Android游戏开发者构建高性能...
6. 编译并运行HelloWorld项目,观察到基本的游戏框架运行在屏幕上,此时Cocos2d-x的入门学习已成功迈出第一步。 此外,学习Cocos2d-x还应该包括以下几个方面: - 掌握Cocos2d-x的基本架构:Cocos2d-x框架中包括...