西蒙iphone-OpenGL_ES_教程.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
西蒙iphone-OpenGL_ES_教程

iphone-OpenGLES iphone-OpenGLES 西蒙iipphhoonnee--OOppeennGGLLEESS 教程 西蒙iphone-OpenGL ES 教程-01 西蒙iphone-OpenGL ES 教程-01 西西蒙蒙iipphhoonnee--OOppeennGGLLEESS 教教程程--0011 受到花生大大的鼓励,继续努力翻译给大家看 西蒙iphone-OpenGL ES 教程 图元是构成复杂物体的基本绘图要素。在OpenGL ES 中,你可以使用的图元有点,线,三 角形。它们都有非常强的自我解释性,我觉得你需要有些例子让你看到它们。 首先,让我们来看看一些代码,然后我们可以谈论这是怎么回事,这样您就可以使用它来创 建一些自己的代码。 图元 #1 - 三角形 三角形是最“复杂”的图元,但是很容易使用,并且非常实用,这将是你可以绘制的第一个Op enGL 的图元。当我们绘制一个三角形的时候,我们需要告诉OpenGL 在3d 空间中的三角形 的3系坐标,并且,OpenGL 将非常顺利的渲染这个三角形。 在开始之前,复制00教程中的项目代码或者从这里下载下项目代码: AppleCoder-OpenGLE S-00.tar.gz .在XCode 中打开,开启EAGLView.m 文件,找到drawView 函数。这里就是施 展魔法的地方。 首先,我们需要定义一个三角形。要做到这点,我们需要知道在我们要处理的坐标的两种类 型:模型和世界。模型坐标是指我们正在绘制的实际图元,世界坐标告诉OpenGL 观察者在 哪里。(在世界坐标中,观察者一般在(0.0,0.0,0.0)的地方) 第一个例子将说明这点。首先,我们定义这个三角形在模型空间使用3 x 3d 坐标(x,y,z): const GLfloat triangleVertices[] = { 0.0, 1.0, -6.0,// Triangle top centre -1.0, -1.0, -6.0,// bottom left 1.0, -1.0, -6.0,// bottom right }; 如上所示,这里使用了3个坐标来表示一个三角形,需要注意的是,我们定义三角形顶点是 逆时针来显示的。虽然描述三角形的可以用逆时针也可以用顺时针,但是我们必须和上述一 样用逆时针来描述三角形。不过,我建议你用逆时针来描述三角形,因为我们以后可以用逆 三角形来达到一些先进的功能。 (补充:逆三角形在3d 中被认为是正面,而顺三角形则被认为是反面。在纹理渲染中被使 用到) 虽然本教程应该是纯粹的iPhone OpenGL ES 的,对于初学者来说,我会简要的描述三维坐 标系统。看看这张图片: 对于我的绘画技巧,我深表遗憾。不过这个图代表了模型空间和世界空间。 试想一下,这 是您的计算机屏幕, X 和Y 的横向和纵向的,你应该预料到, Z 表示深入。这个中心位 置就是(0.0,0.0,0.0). 所以,看我们的三角形中所描述的顶点上述情况,第一点( 0.0 , 1.0 , -6.0 )中心将 在的Y 轴,上涨1点,在屏幕的深度为6点。第二个坐标是右边的Y 轴1.0点,低于X 轴(因 此-1.0的Y 值) ,仍然回到屏幕-6.0点。这同样适用于第三个坐标。 为此,我们确定目标在我们眼睛之前(z 值是负的),所以这个目标是可见的(记得吗,观察者 或者说照相机是在(0.0,0.0,0.0)的位置上)所以说OpenGL 的深度测试是失败的并且它 没有被渲染。 我可以听到你尖叫“嘿,我还以为你说,这是模型坐标不是世界坐标! ” 。 是的,这是对 的,但是,当我们去渲染这个三角形之前, OpenGL 的将只是把对象放在( 0.0 , 0.0 , 0.0 ) 的位置上。 因此,我们将它放到屏幕内才可见。 当我们进入转换(移动,旋转等) ,您会看到,您将不必设置对象Z 值为负,也可以使之可见。在此之前,让目标的Z 坐标 在-6.0的位置上。 绘制函数: 所以我们这样做是为了说明目前的三角形。我们现在需要告诉OpenGL,数据保存在哪里, 以及如

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档