中国领先的IT技术网站
|
|

11.8.1 3D 中的边界形状

《Android 4游戏入门经典(第3版)》第11章3D 编程技巧,本章我们揭开了游戏编程的神秘面纱。我们探讨了3D 向量,其使用方法与2D 中的向量类似,仅需要增加一个z 坐标即可!本章也讨论了OpenGL ES 中的光照系统。还探讨了如何借助Matrix 类用少量的代码实现简单的欧拉照相机和跟随照相机。本节为大家介绍3D 中的边界形状。

作者:赵凯/佘建伟 译来源:清华大学出版社 作者: 赵凯/佘建伟 译|2013-10-29 21:54

CTO训练营 | 12月3-5日,深圳,是时候成为优秀的技术管理者了


11.8 3D 中的碰撞检测与对象表示

在第8 章中曾经讨论过对象表示和碰撞检测之间的关系。我们尽量让游戏中的对象独立于其图形表示,为此用边界形状、位置和方位等属性定义它们。位置和方位很容易表示:用Vector3 表示前者,而用后者用绕x、y 和z 轴的旋转角(注意可能出现的万向节死锁问题) 来表示。下面探讨边界形状。

11.8.1 3D 中的边界形状

与2D 编程一样,边界形状有很多种选择。图11-12 展示了3D 编程中比较常用的几种边界形状。

三角形网格:这种边界尽可能紧地包围着物体。但当基于两个物体的三角形网格检测碰撞时,计算量十分大。

轴对齐边界盒:这种边界包围物体比较松散,它的计算量要远小于三角形网格边界。

边界球:这种边界更为松散。然而它的碰撞检测速度最快。

三角形网格与轴对齐边界盒的另一个问题是在每次旋转或缩放物体后都需要重新调整,这与在2D 中操作相同。相反,对物体进行旋转或缩放后,边界球却不需要做任何改动。如果需要对物体进行缩放,仅需缩放球的半径,而这只是一个简单的乘法操作。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

数据库加密——最后的防线

本书是关于如何使用已有的密码技术和算法对数据库中存储的信息进行保护的书,书中所关注的内容主要是如何设计、建立(或者挑选、集成)一套...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言