今天说一说几种简单的图元。
所有的几何图元都是根据它们的顶点来描绘的。而顶点就是它们在屏幕上的坐标位置。
我喜欢把这几个简单的图元称为点线面。
点,可以看到一个顶点;
线,就是两个顶点指定的一条有限长度的线段;
面,其实更准确讲是一个凸多边形。opengl里所讲的多边形是内部用颜色填充的,视觉上称为面我个人认为是更贴近的。当然,多边形也是由指定的顶点组成的。
需要注意的是,要想被opengl按照设计被绘制必须正确的认识到,所谓的多边形是顶点都处于一个平面上,凸多边形。凸多边形不能理解的,请问度娘。。。
来看一个例子:
glBegin(GL_POLYGON);
glVertex2f(0.0, 0.0);
glVertex2f(0.0, 3.0);
glVertex2f(4.0, 3.0);
glVertex2f(6.0, 1.5);
glVertex2f(4.0, 0.0);
glEnd();
先不去关心代码本身,这段代码最终的结果是要指定5个顶点绘制一个凸五边形。注意,不是5条线段而是一个凸五边形的平面。
不管是点线面的哪一种,都是需要指定一组顶点的。如何判定顶点指定的开始和结束就是glBegin和glEnd的工作。
引用
void glBegin(Glenum mode);
标志着一个顶点数据列表的开始,它描述了一个几何图元。mode参数指定了图元的类型。
void glEnd(void);
标志着一个顶点数据列表的结束。
mode设置的不同,代表着将要绘制的图元也不同。下面这个表就是图元的名称和含义:
| 值 含义 |
| GL_POINTS 单个的点 |
| GL_LINES 一对顶点被解释为一条直线 |
| GL_LINE_STRIP 一系列的连接直线 |
| GL_LINE_LOOP 和上面相同,但第一个顶点和最后一个顶点彼此相连 |
| GL_TRIANGLES 3个顶点被解释为一个三角形 |
| GL_TRIANGLES_STRIP 三角形的连接串 |
| GL_TRIANGLES_FAN 连接成扇形的三角形系列 |
| GL_QUADS 4个顶点被解释为一个四边形 |
| GL_QUADS_STRIP 四边形的连接串 |
| GL_POLYGON 简单的凸多边形的边界 |
试想着,如果将glBegin(GL_POLYGON)修改为glBegin(GL_POINTS),绘制出来的将是什么图形呢? 哈哈,那就是5个点而已么。
上面那段代码还有一个最为重要的函数,那就是顶点函数只有通过顶点函数指定了绘制图形所需要的顶点,才能去绘制我们需要的图形。
下面看一下顶点函数的原形:
引用
void glVertex[234]{sifd}(TYPE coords);
glVertex[234]{sifd}(const TYPE *coords);
指定了一个用于描述几何物体的顶点。可以选择这个函数的适当版本,即可以为一个顶点提供多达4个的坐标(x,y,z,w),也可以只提供2个坐标(x,y)。如果选择的函数版本并没有显式地指定z或者w,z就会当作0,w则默认为1。glVertext*()函数只有当它位于glBegin()和glEnd()之间时才有效。
注:sifd是指顶点数据的类型。
以上就是简单图元的简单绘制方法。更多更复杂的图形及函数后续会陆续涉及到。
分享到:
相关推荐
在VC++中使用OpenGL实现绘制三维图形,是一个学习的好例子.
2个OpenGL绘制简单图形程序
这一节开始学习opengl的几何图形绘制。借助opengl提供的图元绘制函数,首先从最基本的绘制点图元开始
通过VC 环境下的编程实践, 系统地总结了基于OpenGL 技术实现真实感图形绘制( 包括反走样、消隐以及光照模型等) 的基本步骤和方法, 并结合具体实例, 介绍了真实感图形绘制技术在地矿工程三维实体构模中的应用。
opengl三维图形绘制 计算机图形学
OPenGl基本图形,学习VC60三维图形学资料.一个简单的示例.
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。 本资源适合于 ...
2.OpenGL安装 1.OpenGL绘制正方形 2.OpenGL绘制水壶 3.OpenGL绘制多个图形 4.OpenGL绘图代码及原理详解 1.OpenGL语
采用最新的图形管线理论,将OpenGL ES的3D图形管线绘制过程划分为七个管线绘制部分(这七个部分归属于三个绘制阶段),分析每个绘制部分的主要工作,在此基础上针对各个阶段提出了相应的优化方法。
计算机图形学:(6-2)光照与明暗绘制-openGL中的明暗处理.ppt
OpenGL的组合图形 OpenGL的组合图形
OpenGL 技术是实现真实感图形模拟的重要方法之一。本文使用 OpenGL 的编程接口, 应用纹理映射技术, 实现了三维场景的真实模拟。纹理映射技术的应用能增强三维场景绘制的真实感, 并能提高三维场景的渲染速度。
OpenGL入门学习之二——绘制几何图形.pdf
如果我们要绘制一个3D的四棱锥只需要绘制这5个面即可,绘制的方法和前一篇文章OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)的相同。只不过这里的顶点坐标是3维的,所以图像深度那一维不一定为0。因此我们可以事先...
OpenGL入门学习之三——绘制几何图形的一些细节问题.pdf
android openGL es2.0简单图形绘制 简单绘制三角形 里面注释很详细
用QT5 opengl 实现的绘制立体图形的小实例, 实现绘制三棱柱和正方体。
如何在VB中调用OpenGL,以及一些初始化工作过程
OpenGL绘制图形(包含20多个基本例子)。直线,圆,椭圆,球体,曲线,曲面等基础图形的绘制。