Ответ: простой ray casting 2d array hit
Находим отрезки в радиусе, кастуем два отрезка к концам кастера, продолжаем два отрезка до квадрата который описывает радиус источника света, и добовляем вершин чтобы прилегал массив вершин к прямоугольнику. Для оптимизации можно объединять стрипы от каждого кастера, и проверять если кастер вообще попал в видимость.
Также мягкие тени не сложно сделать с таким подходом.
|