Сообщение от MoKa
4. Альфа сортировка?
6. Слыхал ещё про сортировку стейтов - что очень мощно оптимизирует.
|
4. теперь есть. пока сделал сортировку раз в 100 кадров. + возможность отсортировать вручную (например при резком переносе камеры) SortAlphaEntites().
6. заюзал. дало ускорение от 20 до 50%. думаю в худшем случае (например очень легкая геометрия и очень тяжелый вершинный шейдер) сортировка с каши в упорядоченную систему может ускорить вывод в 2-3 раза. в среднем случае не думаю что даст больше 5-10 процентов перфомаранса.
На данный момент вручную - SortEntitesListByState() (наверное будет alias на эту функцию через какой нибудь менеджер конвеера). Что то не могу придумать как сделать по человечески автоматом. Каждый кадр - тупо. Стейты далеко не каждый кадр меняются. При изменении стейта ентити - тоже не катит. Возможны ситуации, когда в рантайме меняются стейты у многих объектов - будет тормозить. Раз в определенный промежуток времени - вариант кажется самым оптимальным, но... если стейты не меняются - то и сортировать ничего не надо. Делать ненужную сортировку, пусть и рпаз в 10 сек. например - меня жаба давит. Менять флаги в методах изменения стейтов - некрасиво. Да и опять же, жаба душит.