Panda3d 碰撞检测系统介绍
文章目录
碰撞检测使2个物体在相撞时能够被检测出来并且做出反应,这不仅包括为碰撞事件发送消息,而且还要保证物体不会彼此穿透。碰撞检测为用户营造一种很真实的虚拟环境沉浸感(immersion),只不过该技术实现起来有点复杂。
有2 种方法可以实现碰撞检测。一种是创建一些特殊的空间碰撞几何体来检测碰撞,例如球体或多边形。另一种方法是允许与任何几何体碰撞。虽然第一种更复杂,实现起来也更难,但它运行更快,是一种行之有效的解决方案。而对快速粗糙(quick-and-dirty)的应用而言,第二种几何体碰撞也是可行的。
碰撞几何体的介绍
碰撞几何体是碰撞系统的基础对象,它们代表专门用来检测碰撞的空间几何体。碰撞几何体跟普通的可见几何体一起存储在Panda3d的场景图里。对于碰撞几何体而言大部分是不会显示出来的,只是在于系统开启碰撞检测功能之后,才会去使用这个几何体。
为了加快碰撞测试速度,碰撞几何体做了专门优化。虽然也可以对可见几何体进行碰撞测试,但由于它们没有经过优化所以检测的效率不高。
可以在程序中交互地创建碰撞几何体,也可以在建模软件里建好,然后作为egg或bam文件随场景一起加载。
当在程序中创建一个碰撞几何体的时候,必须同时创建一个