Три дня угрохал на оптимизацию
Бился за снижение кол-ва Draw Calls, экспериментировал с различными настройками батчинга (static, dynamic, instancing), для чего - делал текстурные атласы, допиливал шейдеры, писал скрипты которые позволяют передавать в шейдер UV, уникальные для каждого меша.
Пока что в групповой instancing объединил всю небольшую растительность которая не реализована SkinnedMesh'ем (статична либо анимирована вертексным шейдером).
На очереди - мелкие булыжники. В будущем планирую еще чего-нить выжать из системы группового инстанциирования.
Результаты: Draw Calls не превышают 1200 на динамических сценах с 1,3 млн треугольников в кадре.Среднее значение 850-950.
Конфигурация:Xeon 1220V3, GF 570 GTX,16 Gb RAM, Windows7x64Сборка L2CPP, х86_64
Падение частоты кадров только на переключениях между процессами - ну там скриншот сделать или в настройки FPSMonitor залезть. На моей конфигурации держится не ниже 93 frames \ sec в самых "тяжелых" ракурсах.
Подробнее
G e С e 1 *" «Si [',^V jf'v 'yJPi . ” г ttt .
FPSMonitor (Demo) Программа становится лучше благодаря тем, кто приобрел лицензию. Сделайте свой вклад, спасибо!
скриншоты,screenshotsaturday,gamedev,Игры,сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам,Инди игры,Neamee
Цель - снизить до 800-900 в пиковой нагрузке и 500-600 в средней.
Но там еще другие моменты имеются:
1. Буду изучать как группировать на отрисовку SkinnedMesh'и
2. Сейчас многие текстуры в разрешениях 2К, а для мобилок оно будет лишним. сейчас текстуры ОЗУ жрут в районе 0,7Гб.
3. Довольно много памяти звук отъедает. Тоже надо повозиться с компрессией, почистить библиотеку, доработать динамическую подгрузку. А то и половины озвучки нет, а уже 0,5 Гб только на звуки.
В 3D для батчинга еще и меши одинаковые (по массиву вертексов) должны быть.
Но я люблю 3D, ну и замоделлить мне проще - 2D артист из меня никакой.)
У меня хуже - 230-250 SetPass, а draw calls гораздо больше - т.к. дофига разных мешей, даже использующих один материал. Конечно такие draw calls дешевле полноценных - со сменой стейта, но все равно.