塑料水塔
为何要对场景进⾏区域划分,这个同样是为了优化碰撞检测。因为相对于其他逻辑⽽⾔碰撞检测尤其消耗性能,尤其是对⽹格类的碰撞体进⾏碰撞检测时性能开销更⼤。 电加热棒
试想⼀下场景中有1000个物体 如果没有区域划分的情况,物体两两碰撞检测的次数是 1000 * 1000次,⽽如果游戏帧率达到60,那么这个碰撞检测逻辑就达到了 1000 * 1000 * 60次,仙台病毒
快递系统⽽即时采⽤优化的机制,因为当⼀个物体与场景中其他物体碰撞之后,可以不再参与后⾯的碰撞检测。那么次数是(1000 + 999 + 998 + ...+ 1 )* 60 = (1000 * 999) / 2 * 60
如果我们将场景中的物体平均分配到 16个区域中, 当物体的⼤⼩不超过区域⼤⼩的时候,通常我们只需要和所在区域内的物体进⾏碰撞检测。理想情况 1000个物体分配到16个区域 ,每个区域中有 62 个物体
碰撞检测次数为 62 * 62 * 60 * 16 = 369 0240次
相⽐于 1000 * 1000 * 60 = 6000 0000次 可以节省 5630 9760次,⼤⼤减少了碰撞检测的总次数。
自行车棚制作
岩心箱需要注意的是 处理区域边界问题,另外需要保证场景中最⼤的物体的⼤⼩不能够超过⼀个区域的⼤⼩。这样实际情况中最坏的情况是⼀个物体处于边界时可能同时在 4个区域中