优化2D光线投射

问题描述

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

该程序当前的工作方式是

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

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

Refrence picture

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)