Системы частиц

Материал из BestWay wiki
Перейти к: навигация, поиск

Все системы частиц рисуются через один менеджер, который сортирует отдельные патиклы в зависимости от типа смешивания (add, blend) и от глубины. Для того чтобы эта схема работала все текстуры, использующиеся на сортируемях патиклах добавляются в общие текстуры (текстурные группы /texture/groups) соответствующего типа. Ввиду того, что для разного типа смешивания необходимы разные проходы, и при этом должен сохраняться порядок отрисовки, фрастум по глубине разбивается на r_lightBlendStripe диапазонов, внутри которых производится сортировка отдельно add-, отдельно blend-патиклов. Таким образом, при равномерно нагруженой сортирующимися патиклами обоих типов сцене и значении r_lightBlendStripe=100 (по-умолчанию), получаем максимум 200 проходов. Если включены реальные отражения на воде, то количество проходов увеличивается вдвое. Существуют так же другие патиклы, текстуры которых не относятся к стандартным текстурным группам alpha.bg и light.bg. Такие патиклы не сортируются, но группируются по текстуре и рисуются одним проходом на группу. Так же все POINT-патиклы (без текстур, только цвет, рисуются точками) объединяются в одну группу и рисуются одним проходом. В каждой группе может быть не более 16000 патиклов. Лишние патиклы просто не рисуются. Всего в сцене может быть не более 40000 патиклов. При попытке выделить 40001-й патикл в системе находтся самый старый по времени жизни патикл и заменяется вновь создаваемым.