Всем драсти.
Делаем 2д игрушку. Выбираем каким образом будем отображать объекты ландшафта, тестим конкретно на деревьях.
Варианта 3:
- просто спрайтовая анимация дерева
- Объект состоит из 6 подобъектов (полигонов) - ветки и стволы, при этом каждый кусок имеет на себе анимацию. Ну типо ветерок пошаливает.
- Тот же составной объект, но каждая часть имеет ригид. При этом крона обладает пачкой HingeJointов, которые крепят к ней ветки.
Боссы хотят именно третий вариант, так как присутствуют события, вроде взрыва рядом, проходящее торнадо и так далее. И хотелось бы, чтобы красиво от этих катаклизмов вела себя и растительность.
Итак, в сцене присутствуют 160 деревьев по 6 кусков = 960 объектов
стат показывает 1.9к трианглов
Результат:
анимированные бревна: 250 фпс
физические бревна: 140 фпс
В обоих случаях 96 драу колов и 960 сбатченных объектов (то есть все)
А вот и тема вопроса. С пустой сценой стат показывает полторы тысячи фпс. Компутир мощен достаточно: 2 проца по 3.0, видео - жфорс жт 250
Когда мы построили физические деревья, посчитали что такое падение фпс сугубо изза физики. Но как видно из замеров, затраты только на чистый рендер (кстати, даже с выключенной анимацией) просто огромны. То есть падение объясняется только большим количеством го. Но и тут вопрос, они все сбатчены, получается где-то 1 вызов на 10 деревьев. Выходит, что он столько фпс на процесс батчинга тратит?
Тут я положил демо проект:
http://ifile.it/anzkbty/Trees.rar
В ней 2 сцены: с анимируемыми бревнами и физическими.
Спасибо ин адванс