文件名称:
附近:以恒定时间O(1)查找附近的3D对象-源码
开发工具:
文件大小: 47kb
下载次数: 0
上传时间: 2021-01-28
详细说明:附近
Neighborhood是一个易于使用的轻量级JS库,适用于2D / 3D游戏,可帮助您在恒定的时间O(1)获取附近的对象,而不是在O(n)上运行的简单蛮力算法。
从的移植。
问题
在大多数游戏(2D / 3D)中,碰撞检查对于物理或AI(转向行为,如避障,避碰)都是必不可少的。 许多幼稚的实现都依赖于将某个边界框与场景中每个其他对象的边界框进行比较:
forEach object of the scene
checkIfCollided(box, object.box)
这种幼稚的方法在O(n)上运行,尤其对于具有许多动态/静态对象的比较拥挤的场景,这是一个问题。
为了克服此问题,游戏引擎使用数据结构。 但是,对于动态对象,Octree并不是那么容易实现。 在这种情况下,需要重建一棵树,这会触发GC活动并减慢Javascript中的主线程。
解决方案
在研究粒子碰撞时,我尝试了几种解决方案,并最终实现了一种分箱算法,该算法将世界分为多个箱,根据对象的边界框将对象插入不同的箱。 这有助于我们在恒定时间O(1)找到给定点的附近对象。 该库是相同算法的独立版本。
性能比
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.