.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
『原创』适合初学的简单3D碰撞检测初探(对于3D编程初学人员)

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站


一般游戏中都要涉及物体运动之间的交互。相比之下2D画面中的碰撞检测要容易的多,无论是采用像素判断还是使用物体面积与距离判断都是可行的。

但是问题到3D游戏中就有很大的麻烦。对于PC机的运算能力,几乎不可能使用检测每个物体的多边形和顶点的穿透,那样的运算量对PC来讲几乎是不可完成的。所以PC游戏上使用的碰撞检测不可能使用太精确的检测。而且对于3D碰撞检测问题,还没有几乎完美的解决方案。目前只能采取根据需要来取舍运算速度和精确性。

目前成功商业3D游戏普遍采用的碰撞检测是采用BSP树及包装盒方式。简单讲就是采用一个描述用的正方体或者球型体包裹住3D物体对象整体(或者是主要部分),之后根据“描述用”包装盒的距离、位置等信息来计算是否发生碰撞。当然除了球体和正方体以外,其他形状也可以作包装盒,但是相比计算量和方便性来讲 还是前边两中形状更方便些,所以其他形状的包装只用在一些特殊部分使用。BSP树是用来控制检测顺序和方向的数据描述。因为在一个游戏场景中可能存在很多物体,他们之间大多属于较远位置或者相对无关的状态,一个物体的碰撞运算没必要遍历这些物体,同时节省重要的时间。

我们今天主要讨论的不是这种3D碰撞检测方式。因为我们是对初学3D编程的人员写的这篇文章。目的在于使大家简单建立自己的3D场景,而不用在开始就把大量精力消耗在碰撞检测问题上,从而把注意力放在基础的图形编程之上。


相关文章

相关软件