首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

OpenGL ES2学习札记(11)-神秘的w

2013-10-16 
OpenGL ES2学习笔记(11)--神秘的w前面的文章里,基本上都忽略了顶点的z坐标和w坐标,直接把OpenGL当做2D API

OpenGL ES2学习笔记(11)--神秘的w

前面的文章里,基本上都忽略了顶点的z坐标和w坐标,直接把OpenGL当做2D API来使用,本篇文章介绍一下w坐标的用处。

透视

为了在2D的屏幕上表现出3D效果,OpenGL使用的是一种叫做透视的古老技术。说的更具体一点,Vertex Shader处理后的顶点坐标,并不是直接被OpenGL使用,而是还要经过Perspective Division处理。也就是说x、y和z坐标会被w除,w越大,得到的结果就越小,也就越接近0,看上去就越远。

OpenGL ES2学习札记(11)-神秘的w

代码和效果

在OpenGL Console里执行下面的脚本:

代码解释

代码和前一篇文章基本上类似,唯一的区别是顶点数据的定义:

def POSITION_ELEMENT_COUNT = 4def vertices = [// triangle fan// x     y      z  w  -0.5f, -0.5f, 0, 1,  -0.5f,  0.5f, 0, 2,   0.5f,  0.5f, 0, 2,   0.5f, -0.5f, 0, 1,] as float[]
顶点坐标有原来的x和y扩充为xyzw,z坐标为0。靠上的两个顶点的w值为2,因此看起来更远一些。靠下的两个顶点的w值为1,所以看起来更近一些。


热点排行