计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(下)
来源:互联网 发布:施耐德plc编程软件 编辑:程序博客网 时间:2024/05/28 03:02
OpenGL多边形填充区函数(下)
除了三角形和一般多边形的图元函数,OpenGL还可描述两类四边形。用GL_QUADS图元常量和下面两维坐标数组指定的8个顶点,可生成图3.57(a)的显示结果。
glBenin (GL_QUADS); glVertex2iv (p1); glVertex2iv (p2); glVertex2iv (p3); glVertex2iv (p4); glVertex2iv (p5); glVertex2iv (p6); glVertex2iv (p7); glVertex2iv (p8);glEnd();前面四个点定义一个四边形的顶点,接下来四个点定义下一个四边形,依次类推。我们为每一个四边形填充区指定逆时针次序的顶点位置。如果没有重复的顶点位置,则显示一组不相连的四边形填充区。使用该图元时至少要列出四个顶点,否则什么也不显示。而如果指定的顶点数不是4的倍数,则多余的顶点将被忽略。
将前面的四边形程序例中的顶点集重新安排,并将图元常量改为GL_QUAD_STRIP,我们得到图3.57(b)中一组相连的四边形。
glBenin (GL_QUAD_STRIP); glVertex2iv (p1); glVertex2iv (p2); glVertex2iv (p4); glVertex2iv (p3); glVertex2iv (p5); glVertex2iv (p6); glVertex2iv (p8); glVertex2iv (p7);glEnd();在先指定两个顶点后,每个四边形用再两个顶点指定,而且我们必须列出能使每一个四边形获得正确的逆时针顶点次序的顶点集。在N>=4时,N个顶点可生成N/2-l个四边形。如果N不是4的倍数,顶点集中多余的坐标位置则不被使用。我们可按n=1, n=2,.....,n = N/2-1对填充多边形和顶点计数。这样,多边形表中第n个四边形的顶点次序为2n-1, 2n , 2n+2 , 2n+1。在本例中,N=8因而有三个四边形组成一个带。因此,第一个四边形(n = 1)的顶点次序为(p1, p2, p3, p4)。第二个四边形(n=2)的项点次序为((p4, p3, p6, p5)。而第三个四边形(n=3)的顶点次序为(p5,p6,p7,p8)。
多数图形软件包使用逼近平面片来显示曲面。这是因为平面方程是线性的,而处理线性方程比二次或其他类曲线方程快得多。因此OpenGL和其他图形软件包提供多边形图元来实施曲面的逼近。对象用多边形网络来建模,而几何和属性信息的数据库按处理多边形面片的目标来建立。在OpenGL中,可用于此目的的图元有三角形带(triangle strip )、三角形扇形(triangle fan)和四边形
带(quad strip )。高性能图形系统使用快速多边形硬件绘制,使得显示速度达到每秒形成百万以上的多边形(通常为三角形),包括使用表面纹理和特殊的光照效果。
尽管OpenGL的核心函数库只允许凸多边形,但OpenGL的实用函数库(GLU)提供有关函数处理凹多边形和其他有线性边界的非凸对象。可使用一组GLU多边形细分子程序来将那些形状转换成三角形、三角形网络、三角形扇形和直线段。一旦那些形状被分解,就可以使用OpenGL函数进行处理。
图3.57用8个顶点显示四边形填充区:(a)用GL_QUADS生成两个不相
连的四边形;(b)用GL_QUAD_STRIP生成三个相连的四边形
0 0
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(下)
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(上)
- 计算机图形学(二)输出图元_10_多边形填充区_1_多边形分类和识别
- 计算机图形学(二)输出图元_10_多边形填充区_2_分割凹多边形
- 计算机图形学(二)输出图元_10_多边形填充区_4_多边形表
- 计算机图形学(二)输出图元_10_多边形填充区_3_内-外测试
- 计算机图形学(二)输出图元_10_多边形填充区_5_平面方程
- 计算机图形学(二)输出图元_10_多边形填充区_6_前向面与后向面
- 计算机图形学(二)输出图元_9_填充区图元
- 计算机图形学(二)输出图元_16_字符函数
- 计算机图形学(二)输出图元
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_4_中点椭圆算法(下)
- 计算机图形学(二)输出图元_14_OpenGL像素阵列函数_2_像素图函数
- 计算机图形学(二)输出图元_14_OpenGL像素阵列函数_1_位图函数
- 计算机图形学(二)输出图元_12_OpenGL顶点数组
- 计算机图形学(二)输出图元_17_图形分割
- 计算机图形学(二)输出图元_1_OpenGL画点函数
- 计算机图形学(二)输出图元_2_ OpenGL画线函数
- POJ 1250 (水题)
- (行为模式)MEDIATOR——中介者模式
- SPP for Visual Recognition
- PowerDesigner重新学习
- (结构型模式)FLYWEIGHT——享元模式
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(下)
- 设计模式入门
- Apache + PHP + MariaDB环境搭建
- C++实现设计模式之——工厂模式
- 行为型模式:OBSERVER——观察者模式
- 中国压缩传感资源(China Compressive Sensing Resources)
- Java学习基础(2)
- 结构型模式:DECORATOR——装饰模式
- Linux快捷键大全