OpenGL学习五——绘制几何体

本文深入探讨OpenGL中的几何图元及其绘制方法,包括点、直线、多边形等多种图元类型,以及顶点数组的使用,提供提高渲染性能的方法。
1、基本图元
      OpenGL中几何图元包括点、直线以及多边形,其中多边形特指简单凸多边形。它们都是用顶点集合来描述的,要指定定点可以使用函数glVertex*()。
      绘制几何图元时,需要在glBegin和glEnd的之间指定定点数据和图元类型。图元类型主要有:
          点:GL_POINTS
          直线:GL_LINES\GL_LINE_STRIP\GL_LINE_LOOP
          三角形:GL_TRIANGLES\GL_TRIANGLE_STRIP\GL_TRIANGLE_FAN
          四边形:GL_QUADS\GL_QUAD_STRIP
         多边形:GL_POLYGON
     特别说明下三角形、四边形的几种绘图方式:
        GL_TRIANGLES:按顶点顺序每三个点绘制一个三角形
        GL_TRIANGLE_STRIP:按顶点顺序绘制一个三角形带,依次使用n、n+1、n+2(n>0)绘制每一个三角形,这里要求按一定顺序绘制,以保证三角形的方向相同,从而确保三角形带可组成表面的一部分。这个要求十分关键,否则画出来的图形与期望的有很大差别。
       GL_TRIANGLE_FAN:按顶点顺序绘制一个三角形扇,绘制三角形时使用1、n+1、n+2三个顶点,其它与GL_TRIANGLE_STRIP相同。
     GL_QUAD_STRIP:按顶点顺序绘制四边形带,绘制四边形时使用n、n+1、n+3、n+2(n>0)顶点,其他与GL_TRIANGLE_STRIP相同。

2、顶点数组
   OpenGL提供了定点数组函数,让开发者只需使用几个数组即可指定大量与定点相关的数据,并且只需要使用几个函数便能存取这些数据。使用顶点数组来存取数据可提高应用程序的性能。使用顶点数组来渲染几何体包括三个步骤:
   (1)enable顶点数组:用于存储顶点坐标、面法线、RGBA颜色、辅助颜色、颜色索引、雾坐标、纹理坐标以及多边形边界边标记。主要函数:glEnableClientState/glDisableClientState。
   (2)顶点数据存入顶点数组:对数组的存取是根据它们在内存单元地址(即指向内存单元的指针)进行的。在客户端/服务器模式下,数据存储在客户的地址空间中。主要函数:glVertexPointer/glColorPointer/glNormalPointer/glTexCoordPointer等。
   (3)使用数据绘制几何体:OpenGL通过对指针解除引用来获得被启用的数组中的数据。在客户端/服务器模式下,数据被传递到服务器的地址空间中。主要函数:glDrawArrays(绘制一系列相邻的数组顶点元素)/glDrawElements(绘制由顶点索引数组决定的数组顶点数据),这两个函数详解见:http://blog.youkuaiyun.com/ocean2006/article/details/6892608

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值