引言:碰撞检测是游戏开发中一个非常重要的技术点,优化碰撞检测性能,是提升游戏体验不可或缺的一环。开发者「我叫98K」写了一个轻量碰撞系统,用以改善 3D 游戏在不同平台遇到的碰撞性能问题和包体问题。下载和在线体验地址见文末。
98K物理-轻量碰撞系统是一个高性能轻量 3D 碰撞管理器,适用于 Cocos Creator 3.4 及以上版本,对 Mesh 模型和基本几何体提供高效的碰撞系统和射线检测系统,以提升游戏在不同平台上的 3D 碰撞检测性能,减少包体大小(尤其是 H5 平台)。
先通过在线体验,看几组应用效果:
http://www.cocospro.com/98K/
场景1,碰撞测试
场景1,1000射线测试
场景2,碰撞测试
场景2,1000射线测试
本文主要和大家详细介绍 98K 中最为重要的自定义碰撞系统的功能与使用、及其实现思路与技术要点,感兴趣的小伙伴可以深入了解。
功能特点
98K 的主要功能特点有:
多物体场景管理:Octree,对场景物体进行高效划分查询。
模型三角化管理:Kdtree,对物体表面进行高效划分查询。
通用 3D 碰撞计算:GJK+EPA,精确计算修正碰撞后的物体。
3D 角色控制器:3D 物体在场景碰撞系统下的自由移动。
高效射线检测:基于 Octree 和 Kdtree 对射线检测加速。
我们在 H5 环境下,对比 98K 和 Bullet,PhysX(由于 Cannon 对 mesh collider 支持不完善,不参与比较)。
虽然和 Bullet、PhysX 相比,98K 的功能还不够全面,但是在需要使用 3D 碰撞检测和射线检测的 MMO、SLG、FPS 等 3D 场景的游戏中,目前 9