Сейчас пробую реализовать следующим образом:
Всё пространство разлёта бъётся на сектора
. В дерево квадрантов погружаются уже не лучи-направления разлёта, а четырёхугольники, вершины которых являются углами секторов, т.е., если это визуализировать, то будет шарик, поверхность которого аппроксимирована четырёхугольниками. Теперь от ускоряющей структуры будем иметь уже не индексы лучей-направлений разлёта, а секторов, далее, в зависимости от расстояния от точки разлёта до ограничивающего цель прямоугольника (
AABB), в пределах секторов генерируется необходимое количество лучей. В таком случае имеем, что при небольшом расстоянии дерево выдаёт много индексов секторов, но плотность в каждом требуется невысокая, на большом расстоянии картина противоположная.
Пока не очень понимаю как учесть искажения плотности потока в пределах одного сектора, когда он находится близко к полюсам. С другой стороны форма сектора дополнительно искажается, когда к скорости потока осколков в статике прибавляется произвольно направленный вектор скорости снаряда\бч и аккуратный четырёхугольник превращается в нечто.
Вот как выглядит визуализация дерева:
(Оффтоп)
По диагонали видно уплотнение дерева, в этих направлениях разлетается основаная масса осесимметричного корпуса -- цилиндрическая часть