您所在的位置:读书频道 > 移动开发 > Android > 11.8.1 3D 中的边界形状

11.8.1 3D 中的边界形状

2013-10-29 21:54 赵凯/佘建伟 译 清华大学出版社 作者: 赵凯/佘建伟 译 字号:T | T
一键收藏,随时查看,分享好友!

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

AD:

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

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

11.8.1 3D 中的边界形状

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

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

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

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

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

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

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

设计模式:可复用面向对象软件的基础(双语版)
《设计模式:可复用面向对象软件的基础》(双语版)是引导读者走入软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i