OpenGL ES1.1.12 第二章 2.6 2.6.1

(仅是草稿,未做整理)

2.6 基本元素和顶点

GL中,画几何对象,是通过一系列的坐标组来完成,这些坐标组包括顶点,可选法线(optionally normals),纹理坐标。坐标组是由顶点数组来定义(详见2.8小节)。有七种的几何对象以以下画的方式完成:点(包括点角),连接线段(线带),线段环,分离的线段,三角形带,三角形扇,分离的三角形。

每一个顶点由两个,三个或四个坐标定义。另外,current normalmultiple current texturecoordinate sets, and current color 可能会用在处理顶点过程中。

GL光线计算中会用到Normalscurrent normals是一个三维向量,由定义它的三个坐标来设定。Texture coordinate决定着一个纹理图像如何映射到一个基本元素。多组Texture coordinate则可能用来定义把多纹理图像如何映射成基本元素。纹理单元的个数取决于实现平台,但至少需要两个。此个数可以通过查询MAX_TEXTURE_UNITS而得到。

颜色与每一个顶点相关联。颜色主要由当前颜色或由光线来决定。由光线决定,那么还要看光线功能有没有使能。Texture coordinate同样与每一个顶点相关联。多组Texture coordinate也可能与每一个顶点相关联。图2.2表明了辅助数据和转换顶点生成的处理后的顶点之前的关联。

Current值是GL状态的一部分。顶点,normals和纹理坐标是转换值。颜色可能会会被光线所影响或替换。处理过程表明Current值是用于发送至GL的每一个顶点。

后续部分将讨论关于顶点,normals,纹理坐标,颜色发送到GL的方法及normals如何转换和顶点如何映射到二维屏幕方法。

在颜色被赋于一个顶点,顶点所需的状态是它的坐标,normals,当前物体属性(见2.12.2小节)和多纹理坐标组。这是由于着色是一个顶点一个顶点操作。处理一个顶点包括顶点坐标,着色和多纹理坐标组。

2.3显示了从一组顶点创建一个元素(点,线,或三角形)的操作。元素一理建立,就会被翻转(剪辑)成viewing volume。这时可能改变元素,如顶点的坐标,纹理坐标和颜色。在线和三角形情况下,翻转(剪辑)过程会插入新的顶点到基本元素。顶点所定义的光栅化的元素,有纹理坐标和颜色与之相关联。

2.6.1  基本元素类型

一组顶点送至GL,是通过DrawArrays 或者DrawElements(见2.8小节)来完成。顶点的数量主要是由顶点向量大小来决定。

命令中的参数mode,决定着所要画的元素的类型。相关的模式和类型主要如下:

点,一系列独立的点可能会被定义成POINTS。每一个顶点则定义成分离点或 点顶点

线带,一个或多外相连的线段会被定义成LINE_STRIP模式。至少需要两个顶点坐标。这种情况下,第一个顶点表示第一个部分的起点,第二个顶点表示第一部分的终点和第二部分的起点。即,第ii>1)个顶点表示第i部分的起始,及第i-1部分的结束。最后的顶点表示最后部分的终点。如果只有一个顶点那么将不创建任何元素。


图2.2 从顶点向量坐标和current值创建处理后的顶点。只显示了两个纹理单元,但多纹理可以支持更多数量单元,当然这取决于实现平台。


图2.3 元素的封装和处理。


图2.4 a三角形带,b三角形扇,c独立的三角形。顶点所给定的数值顺序是以顶点向量内的数值顺序的基准的。注在ab中三角形的边顺序是由第一个三角形决定的。而在c中三角形的边的顺序是相互独立的。

状态所需包括先前所传递的顶点处理后的顶点(这样,线段就可以从它到当前的顶点创建)和布尔型标识,此标识表明当前顶点是否是第一个顶点。

线环,模式用LINE_LOOP表示。环与线带类似,只是环的最后部分,是最后的顶点加到第一个顶点。

所需状态包括处理的第一个顶点,其他与线带一样。

分离线,独立的线段,每部分由顶点对来定义。可能会以LINES模式出现。第一个两个顶点,表明第一部分,接下的顶点对定义更多的部分。如果顶点个数为奇数,那么要忽略最后一个顶点。状态所需与线环一样,但是用法不一样:所要处理的顶点保持着第一个当前部分的终点,布尔标识,此标识表明顶点个数是奇数还是偶数(部分的起始或终点)。

三角形带,是一组边共享的三角形。由TRIANGLE_STRIP模式来表示。前三个顶点表示第一个三角形(它的顺序也显著通用的)。后续的每一个顶点和之前的两个顶点定义新的三角形。如果少于三个顶点,那么将没有元素被创建,见图2.4

三角形带所需的状态包括一个标识(表明第一个三角形是否已经完成),两个保存处理后的顶点(如顶点A和顶点B),和一个指针表明哪一个保存的顶点将要被下一个顶点所取代。指针最初指向顶点A,每一个后续的顶点切换使用些指针。因此,第一个顶点将保存为顶点A,第二顶点保存为顶点B,第三顶点保存为顶点A,以下类推。第二个顶点后的任何顶点生成的一个三角形都是从顶点A,顶点B和当前顶点(按序)来完成。

三角形扇,与三角形带相似,只有一个不同之处:第一个顶点之后,总是取代两个保存的顶点中的顶点B。用TRIANGLE_FAN模式来表示。

分离三角形,以TRIANGLES模式来表示。3i+1st, 3i+2nd3i+3rd顶点(按顺序)决定第i=0,1,2,...,n-1个三角形,将可以画3i+k个顶点。k可以是012,如果k0,那么最后的k顶点将被忽略。对于每一个三角形,顶点A是顶点3i,顶点B是顶点3i+1,否则分离形就变成了三角形带。

三角形的顶点的顺序,不管是三角形带,三角形扇或分离三角形,在光线和多边形光栅过程中都是一致的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值