Для игры я рисую плотные кластеры из нескольких тысяч случайно распределенных кругов с различными радиусами, определяемыми последовательностью (x, y, r) троек. Здесь пример изображения, состоящего из 14 000 кругов:
У меня есть некоторые динамические эффекты, такие как слияние кластеров, но чтобы это было возможно, мне нужно будет перерисовать все круги в каждом кадре.
Многие (возможно, 80-90%) кругов, которые нарисованы, покрываются последующими тиражами. Поэтому я подозреваю, что при предварительной обработке я могу значительно ускорить цикл рисования, исключив покрытые круги. Есть ли алгоритм, который может идентифицировать их с разумной эффективностью?
Я могу терпеть довольно большое количество ложных негативов (т.е. нарисовать некоторые круги, которые на самом деле покрыты), если это не так много, что страдает эффективность рисования. Я также могу терпеть ложные срабатывания, если они почти позитивны (например, удалите некоторые круги, накрытые только 99%). Я также поддаюсь изменениям в распределении кругов, если он все еще выглядит нормально.