这几天在做3d的一个验证demo,场景硕大,碰撞体众多,现在对于碰撞的处理方式是全部都采用AABB
首先由美工在编辑器里为所有碰撞体绑定AABB,然后我写了个插件导出这些box,再写了一个外部工具来把box信息重新编码成二进制,最后在j2me里读取并重新构造这个AABB Tree
原理很简单,但美工那边的反馈是希望我能支持OBB以增加碰撞的真实性
的确,有些斜着摆放的物体,如果用AABB,则好些空地走不过去,非常不爽
但OBB的碰撞效率是非常低的,我们只能想方设法减少真实OBB碰撞的发生
现在目前的思路有两个,
1. 说服美工在摆放场景时尽量都是沿轴摆放,也不要有OBB的情况发生,这样对程序来说最方便,哈哈,不过有点偷懒的嫌疑
2. 我首先用AABB包围OBB,90%的情况下还是AABB的碰撞检测,如果发生AABB碰撞了,再看目标碰撞体是否包围有更精确的OBB,如果有,就进行更进一步的AABB-OBB检测
今天终于搞定了那个沿墙壁滑动的效果,过几天总结一下
附带一个高效的AABB_OBB的检测方法































































































































