2.OpenGL学习之基本图元
2017-12-04 15:13
411 查看
基本图元
在OpenGL中,基本图形元素如点、线、折线和多边形都是由一个或多个顶点所定义。这些顶点必须处于glBegin()和glEnd()函数之间。glBegin()的参数确定要画的对象,指示OpenGL开始收集绘制对象的元素数据,glEnd()函数命令结束并完成对象的元素列表,并将所有数据送到OpenGL图形绘制管道中进行绘制。例如glBegin(GL_POINTS); glVertex3f(0.0f, 1.0f, -6.0f); glVertex3f(-1.0f,-1.0f, -6.0f); glVertex3f(1.0f,-1.0f, -6.0f); glEnd();
常数GL_POINTS内置于OpenGL中。为了绘制其他类型的元素,可以将GL_POINTS换成GL_LINES、GL_POLYGON等。绘制直线,参数为GL_LINES;绘制折线(在OpenGL称为线条),参数为GL_LINE_STRIP;绘制多边形,参数为GL_LINE_LOOP,,绘制的多边形不能填充颜色或图案;绘制填充多边形,参数为GL_POLYGON。其他五种元素:
绘制图元
绘制三角形和点来演示如何绘制图元。头文件如下,添加两个私有函数drawTriangles和drawPoints。#ifndef MY_QGLWIDGET_H #define MY_QGLWIDGET_H #include <QGLWidget> class MyQGLWidget : public QGLWidget { Q_OBJECT public: MyQGLWidget(QWidget *parent = 0); protected: void initializeGL(); void resizeGL(int width, int height); void paintGL(); private: void drawTriangles(); void drawPoints(); }; #endif
两个函数的定义如下所示:
void MyQGLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
drawPoints();
}
void MyQGLWidget::drawTriangles()
{
glBegin(GL_TRIANGLES);
glVertex3f(0.0f, 1.0f, -6.0f);
glVertex3f(-1.0f,-1.0f, -6.0f);
glVertex3f(1.0f,-1.0f, -6.0f);
glEnd();
}
void MyQGLWidget::drawPoints()
{
glBegin(GL_POINTS); glVertex3f(0.0f, 1.0f, -6.0f); glVertex3f(-1.0f,-1.0f, -6.0f); glVertex3f(1.0f,-1.0f, -6.0f); glEnd();
}
当paintGL()函数中调用drawTriangles()函数,运行结果:
当paintGL()函数中调用drawPoints()函数,运行结果:
基本的OpenGL语法
OpenGl基本库中的函数名要以gl为前缀,并且函数名中的每一个组成词的第一个字母要大写。下面例子给出了这个命名规范的例子:glBegin, glClear, glEnd
有些函数要求一个或多个变量用符号常量赋值,如参数名、参数的值或特定的模式。所以这些常量均以大写字母GL开发。另外,常量名中每一个组成词均采用大写,单词之间用下划线(_)分割开。下面列出OpenGL函数使用的几百个符号常量中的几个例子:
GL_POINTS, GL_2D, GL_RGB, GLPOLYGON
OpenGL函数也要求专门的数据类型,例如,OpenGL函数的参数可以要求一个32位整数类型的值。但是,不同机器上的整数描述范围可能有所不同。OpenGL采用专门的内置数据类型名来描述数据类型,例如:
GLbyte, GLshort, GLint, GLfloat
代码下载
OpenGL学习系列导航
相关文章推荐
- openGl学习之基本图元
- openGl学习之基本图元
- opengl学习笔记2-1-基本的运行框架
- OpenGL学习笔记(12)基本光照
- OpenGL学习笔记:动画基本概念
- cocos2D-X源码分析之从cocos2D-X学习OpenGL(5)---绘制基本图形
- VC++下OpenGL的配置和OpenGl基本图元—点和线的的绘制
- 【OpenGL学习代码笔记之一】 基本形状绘制及动画初窥
- OPENGL学习笔记整理(四):几何图元渲染
- 游戏开发学习笔记-3.基本图元绘制
- OpenGL学习(1)基本概述
- opengl学习,一篇就够你基本了解
- cocos2d-x学习笔记02:绘制基本图元
- OpenGL系统设计-OpenGL基本图元
- 3.OpenGL学习之图元属性
- OpenGL学习(2)基本图形绘制
- OpenGL学习笔记1:环境配置和基本流程
- OpenGL学习笔记1:环境配置和基本流程
- 【OpenGL】绘制基本图元
- 计算机图形学(OpenGL版)-OpenGL基本几何图元