Part I 空气曲棍球 Chapter8(Building Simple Objects)
我们的空气曲棍球项目已经捣鼓好久了,现在绘制出来的桌面也是呈现出了一个好视角并且配合纹理映射后看起来更好了;然而由于球棍只是一个点所以看起来并不像真正的球棍,你能想象下使用像一个点一样的球棍打球会是什么样的体验吗?很多应用程序都是通过组合简单的形体来绘制一些复杂的物体,在这一章里面我们将学习如何使用简单的形体绘制一个更好的球棍。
现在的应用里面还缺少一种简单的方法去放置、旋转及移动场景中的物体,很多3D应用程序都是通过使用view矩阵去实现这个功能的;通过改变矩阵来决定物体在场景中的位置,这种感觉就像是从一个移动的相机里面观察事物一样。我们将会增加一个view矩阵使得旋转及移动物体更容易。
下面是这章的主要内容:
- 首先学习如何使用绘制三角形的命令组合三角形绘制简单物体。
- 然后学习如何定义view矩阵并集成到已有的矩阵中去。
一旦我们完成了这些任务,就可以使用一行代码来移动场景,而且我们也会绘制一个更像现实生活中的一个球棍,下图是本章完成后效果图。最后在开始这章之前先把前一章节的项目拷贝一份,并且命名为AirHockeyWithBetterMallets。
下面是这一章的内容划分:
8.1 三角形绘制(Combining Triangle Strips and Triangle Fans)
8.2 定义形体(Adding a Geometry Class)
8.3 构造形体(Adding an Object Builder)
8.4 更新相应类(Updating Our Objects)
8.5 更新着色器(Updating Shaders)
8.6 代码集成(Integrating Our Changes)
8.7 小结(Review)
恭喜你已经完成了比较精彩的一章,这里学习了triangle strips及triangle fans两种绘制命令并使用他们来绘制简单形体,同时学习了如何封装绘制命令使得代码复用更容易且在需要的时候通过一行代码就可以实现形体绘制。
我们同时还学习了相关矩阵:投影、相机、模型三个,通过分解成这三种矩阵进行操作使得你更好把握相关场景绘制及移动物体。
8.8 练习(Exercises)
1 在onDrawFrame()稍微旋转你的视角。
2 更有挑战的练习,如下图所示,你如何修改球棍相关代码来绘制下面的形体?这里你还是可以使用简单形体来绘制上面的形体。
最后附上本章代码(点击下载)
Part I 空气曲棍球 Chapter8(Building Simple Objects)相关推荐
- Part I 空气曲棍球 Chapter8(8.4 Updating Our Objects)
8.4 更新相应类(Updating Our Objects) 现在我们已经有了一个ObjectBuilder对象,时候更新Mallet类了因为我们不再把它画成一个点了.我们还需要增加新类Puck,在 ...
- Part I 空气曲棍球 Chapter8(8.6 Integrating Our Changes)
8.6 代码集成(Integrating Our Changes) 这一章节最困难的部分已经完成,我们学习了如何使用基本的几何体组合成一些复杂的形体,同时相应的着色器也已经更新了.下一步是把前面的修改 ...
- Part I 空气曲棍球 Chapter8(8.3 Adding an Object Builder)
8.3 构造形体(Adding an Object Builder) 现在开始创建我们的构建者类,在包com.airhockey.android.objects中创建类ObjectBuilder,并添 ...
- Part I 空气曲棍球 Chapter8(8.2 Adding a Geometry Class)
8.2 定义形体(Adding a Geometry Class) 我们现在已经明确的知道需要些什么去构建冰球及球棍:为了构建冰球,我们使用triangle fan命令构建冰球的顶部,再使用trian ...
- Part I 空气曲棍球 Chapter8(8.5 Updating Shaders)
8.5 更新着色器(Updating Shaders) 我还需要更新相应的着色器,我们之前使用atrribute类型属性定义了球棍或者冰球的顶点坐标,这里我们将会使用uniform类型定义相应的颜色, ...
- Part I 空气曲棍球 Chapter8(8.1 Combining Triangle Strips and Triangle Fans)
8.1 三角形绘制(Combining Triangle Strips and Triangle Fans) 在开始构建球棍或者冰球之前,我们可以站在一个更高的角度上来想象下,一个冰球可以使用一个扁平 ...
- 空气曲棍球 由哪几部分组成_Excel中的曲棍球运动员数据分析
空气曲棍球 由哪几部分组成 Congratulations to the USA Women's Hockey team, who won the Olympic gold medal. They b ...
- Part I A Simple game of air hockey(空气曲棍球)-Chapter2 Defining Vertices and Shaders
上一章节简单介绍了OpenGL ES 2.0开发的简单入门知识,实际上你学没有真正进入OpenGL ES 2.0的世界,从这一章开始将会一步步的带着你开始你的OpenGL ES 2.0实战之旅,这里最 ...
- Building COM Objects in C#
原文:http://www.codeproject.com/Articles/7859/Building-COM-Objects-in-C Building COM Objects in C#. In ...
最新文章
- 设置文字QT按钮包含图片与文字,以及鼠标停留备注显示,和sheetstyle风格设置。...
- 理解 Azure 虚拟机的性能监视
- Mysql中使用命令行导入.sql文件新建数据库表(图文)
- iOS 跨平台开发,该用 Flutter 还是 Swift?
- 【渝粤教育】广东开放大学 演绎娱乐经验管理 形成性考核 (49)
- python学习(十八)爬虫中加入cookie
- Typora自动生成标题编号(包含从二级标题开始的)
- tensorflow系列之_pspnet网络
- 假设检验的一般步骤(t检验/z检验)
- 多少秒算长镜头_什么是长镜头画面(电影里的长镜头有哪些分类)
- 数据仓库项目实例(马蜂窝数据仓库)
- 给儿子的一封信——大学才是人生真正的起点
- 有道词典Android客户端包体积优化之路
- 在标准IO库中,rewind函数作用?
- 渐变色---背景图片
- [ 习题 ] 句子简化题 细节题 排除题
- NandFlash基础知识-K9F2G08
- python绘制花朵图案_Python编写万花尺图案实例
- 机器学习及其应用2015 [高新波,张军平 主编] 2015年版
- CentOS 6.8 安装JStorm集群(jstorm-2.1.1 )
热门文章
- AWS EC2 ss与客服argue收费问题
- NGS数据分析实践:03. 涉及的常用数据格式[3] - gtf/gff格式
- 复试:求sinx,cosx在x=0处的泰勒展开式,精确到10e-7,以及编程中出的错误
- idea每次修改java都要重启_IDEA修改java代码、Thymeleaf的html模板需要重启
- 用FME2012征服LiDAR
- 你为什么累成狗了还这么穷?
- Spring容器练习
- CANoe常用操作(CANoe系列其一)
- c/c++时间操作函数总结
- MAC地址和IP地址是否缺一不可