优化2D光线投射

时间:2020-09-28 16:48:27

标签: javascript optimization 2d polygon raycasting

我一直在进行2D射线投射,并且一直在考虑要检查的对象是否多时进行优化。

该程序当前的工作方式是

  1. 创建从光源位置到每个多边形和多边形交点(如果它们重叠)的每个顶点的光线
  2. 针对每个对象(多边形)检查每个射线,并为每个对象返回最近的命中值。

例如,在生成100个多边形的情况下,实际上只有少数几个多边形保持“可见”状态。多边形数为100时,光线的数量会大于1000(每个顶点3个光线+交点),但是绝大多数物体不在视线范围内,任何给定位置的“所需”光线数量将大大降低。

Refrence picture

是否有一种优化投放的方法?我很感兴趣,因为我只是在玩耍,所以在学术上很有趣,但是我认为这是一个有趣的问题。

我能想到的一种方法是计算方向性死区,并排除驻留在死区中的对象或排除指向死区的光线,但是我不确定这样做是否会更便宜且不确定如何做到聪明。我可以想象的另一种方式是,以类似网格的方式或沿着这些方式预先计算这些死区,但这不适用于非静态环境。

0 个答案:

没有答案