- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
还有许多理论知识需要讨论,但与其花许多时间在复杂的数学公式或难以理解的概念上,还不如让我们开始熟悉OpenGL ES的基本绘图功能。请下载OpenGL Xcode项目模板 。我们使用此模板而不是Apple提供的模板。你可以解压到下面目录来安装它:/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application/此模板用于全屏OpenGL程序,它具有一个OpenGL视图以及相应的视图控制器。 大部分时候你不需要动到此视图。此视图用于处理一些诸如缓存切换之类的事物,但在两处调用了其控制器类。首先,当设定视图时,调用了一次控制器。调用视图控制器的 setupView: 方法使控制器有机会增加所需的设定工作。这里是你设定视口,添加光源以及进行其他项目相关设定的地方。现在我们将忽略此方法。此方法中已经有非常基本的设定以允许你进行简单地绘图。控制器的 drawView: 方法根据常数kRenderingFrequency的值 定期地被调用。kRenderingFrequency的初始值为 15.0 ,表示 drawView: 方法每秒钟被调用15次。如果你希望改变渲染的频率,你可以在ConstantsAndMacros.h 中找到此常数的定义。首先加入下列代码到GLViewController.m 的drawView: 方法中:- (void )drawView:(GLView*)view; { Vertex3D vertex1 = Vertex3DMake ( 0.0 , 1.0 , -3.0 ); Vertex3D vertex2 = Vertex3DMake ( 1.0 , 0.0 , -3.0 ); Vertex3D vertex3 = Vertex3DMake ( -1.0 , 0.0 , -3.0 ); Triangle3D triangle = Triangle3DMake ( vertex1, vertex2, vertex3); glLoadIdentity ( ); glClearColor ( 0.7 , 0.7 , 0.7 , 1.0 ); glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnableClientState ( GL_VERTEX_ARRAY); glColor4f ( 1.0 , 0.0 , 0.0 , 1.0 ); glVertexPointer ( 3 , GL_FLOAT, 0 , triangle); glDrawArrays ( GL_TRIANGLES, 0 , 9 ); glDisableClientState ( GL_VERTEX_ARRAY); } 在讨论我们到底做了什么之前,先运行一下,你应该看到以下画面:这是个简单的方法;如果你试过了,你可能已经知道我们到底做了什么,但这里我们还是一起过一遍。因为我们的任务是画三角形,所以需要三个顶点,因此我们创建三个上一篇文章中讨论过的 Vertex3D对象: Vertex3D vertex1 = Vertex3DMake(0.0 , 1.0 , -3.0 ); Vertex3D vertex2 = Vertex3DMake(1.0 , 0.0 , -3.0 ); Vertex3D vertex3 = Vertex3DMake(-1.0 , 0.0 , -3.0 ); 你应该注意到了三个顶点的z值是一样的,其值(-3.0)是处于原点 “之后”的。因为我们还没有做任何改变,所以我们是站在原点上观察虚拟世界的,这是默认的起点位置。将三角形放置在z值为-3处,可以保证我们可以在屏幕上看到它。随后,我们创建一个由这三个顶点构成的三角形。 Triangle3D triangle = Triangle3DMake(vertex1, vertex2, vertex3); 这些代码很容易理解,对吗?但是,在幕后,电脑是将其视为一个包含9个 GLfloat 的数组。如下: GLfloat triangle[ ] = {0.0 , 1.0 , -3.0 , 1.0 , 0.0 , -3.0 , -1.0 , 0.0 , -3.0 } ; 并不是完全相同 – 这里有一个很小但很重要的区别。在我们的示例中,我们传递给OpenGL的是 Triangle3D 对象的地址(即 triangle ),但在第二个使用数组的示例中,由于C数组是指针,我们传递的是数组。现在不需要考虑太多,因为这将是最后一次我用这种方式(第二种方法)定义
您可能关注的文档
- 人力资源理论与实践.doc
- 人力资源管理专业主要课程说明与使用教材.doc
- 人力资源管理工作日志.doc
- 人力资源经理人生感悟.doc.doc
- 人大报告.doc
- 人大财政金融学院导师介绍:张顺明教授.doc
- 人大补选方案.doc
- 人教版一年级下册《识字4》第一课.doc
- 人教版《种群数量的变化》一节同课异构教学设计(第三届普通高中新课程实验优秀教案和教学实录评比活动).doc
- 人教版一年级下册《识字8教学设计.doc
- XX T 1149.11-2010 内燃机 活塞环 第11部分:楔形铸铁环正式版.doc
- XX T 1149.13-2008 内燃机 活塞环 第13部分:油环正式版.doc
- XX T 1149.12-2013 活塞环楔形钢环正式版.doc
- 人教版高中生物必修2全册教学课件.pptx
- 2025年春新北师大版8年级物理下册全册课件.pptx
- 2024年新人教版8年级上册物理全册课件.pptx
- (新统编版)语文三年级下册 第一单元 大单元教学 课件(共9课时).pptx
- 八年级语文下册第六单元24醉翁亭记课件省公开课一等奖新课获奖课件.pptx
- 八年级物理上册第六章质量与密度章末整理与复习习题省公开课一等奖新课获奖课件.pptx
- 外研版三年级英语下册期末复习单词专项.pptx
文档评论(0)