gnoblin писал(а):Вот допустим завершена первая рабочая версия проекта.
Какими инструментами вообще можно пользоваться для оптимизации\нахождения узких мест в игре?
На что стоит обратить внимание?
и тд
Вопрос наверное скорее риторический и к сообществу, но попробую поделиться мыслями.
Из того что я пока понял следует:1. Обратить внимание и протестить все коллайдеры(которые конечно сделаны отдельно и по мега упрощённым схемам) ибо ошибка в коллайдере выдёт к падению приложения. В случае браузерной гамы - краху браузера. И вообще всей системы.....(системы - шутка, а вот лиса и опера дружненько так упали)
2. Чтобы не дуплить материалы(а их дуплить вообще не стоит ибо драу калс растет сразу и на всегда), видимо, следует в максе использовать мегамультиматериал для абсолютно всех объектов сцены, он вроде бы меньше создаёт персональных материалов, ну а если юнити и насоздаёт персональных материалов, их всегда можно по быстрому переназначить на один ваш.
3. использовать скрипт из острова демки(что с проектом) combinechildrens. В случае мультиматериального текстуринга он разрывает объекты на куски по материалам и эти куски склеивает мужду собой(дерево к дереву, прах к праху) ===>>>> количество драу калл падает.
ПРимер - 50 чайников типа max teapot (~950poly) на каждом по 30 активных материалов. Для них используется один мегамультимат из 30 позиций.
Экспорт в юнити - драу калл = 50*30=1500... при 47 килополи.
Делаем нью ГО в юнити и туда наши чайники, а на ГО - комбайнчилдрен скрипт.
Драу калл = всего 30, 47килополи.
Итог: драу калл упал в 50 раз. Но объекты очень хитро порубились, и такая оптимизация пойдёт только для статичных объектов.
И есть оч существенное ограничение - в родителе может быть объектов до 65килополи. Иначе глюки((( Объекты начинают забывать свою геометрию, тут пол пропал, тут мышку вывернул
(на сыр от увиденного)4. в юнити-доке(том что частично русифицирован
http://docs.unity3d.ru/) есть оч интересный раздел по оптимизации и если кратко то:
я. количество поликов в сцене для видях новее чем fx5200 не такой уж критичный показатель, но
а. на один объект желательно не боле 2-3килополи
б. Вроде бы есть какая то заморочка с дублирующимися нормалями, чтото с группами сглаживания связано. Мол если у вас весь объект гладкий а тут один полик без сглаживания - то это не айс, мол нормали будут пересекаться и объект будут сложнее просчитать.
в.если вы хотите чтобы ваш
проект пошёл на интеловских встроенных видяхах(аля еееПИСИ) то извольте не более
25килополи в сцену, ибо на встроенной графике процессор обрабатывает положения вершин. И ни каких пиксельлайтов.
г. НИкаких пиксельлайтов.
Никакого нормалбампа,
спекуляров и прочих прелестей. А если уж решились, то или думайте как оптимизировать или пеняйте на себя. Ибо мы вам ГОВОРИЛИ -
лайтмапы, только на кишку и с молитвой.
(автор не пропагандирует такой суровый способ безцельного проведения времени)Кстати есть мысль - ежели мне надо чтобы бамп был только на полу, дык почему бы мне свет и пол не перенести на отдельный слой, так сказать устроить им очную ставку.
д.
Аtтачить и ещё раз аtтачить. Если оно может быть приатачено, то оно должно быть приаtтачено.
(max->edit poly->attach)
е. Использовать лоды. Ну или если не в прямом смысле лоды то хотя бы скрывать на лету не нужное. Вот вы в здании, зашли в кабинет, там парты, столы, компы. Подошли к стене и словили тормоза. Откуда? Ведь на стене всего лишь табличка -
"Ученье свет, а неученье - чуть свет и на работу". Неужели комп так призадумался над этой фразой.
Ан нет, за стеной у вас 5 классов, 4 этажа, растительность. И всё это считается.....
В идеале: Подошли к двери аудитории - затронули коллайдер в режиме триггера, он вам подгрузил то что надо в кабинетеи открыл дверь. На обратном пути отгрузил и закрыл.
ж. 9 макс -ацтой...Уточнение - для лайтмапов.
Дело в том что начиная с 2008 макса появилась возможность работать с мультиЮВИкоорданатами.
Это значит что можно сформировать лайтмапу для всего этажа(стены, полотки, столы, доски, степлеры и тддддд.....). Вы только представте как приятно будет её накидывать. Чуть ли не даблкликом. Как компутеру будет легко с ней работать, не тебе там лишнихз файловых операций, не лишних метасвязей, и как вы будете ругаться когда чтото на этой лайтмапе закосячит или зОхотите переделать
(не всё так страшно - вопрос решаемый)
з. когда будуте делать развёртки объектов, позаботтесь о компутере, не делайте слишком много разрезанных кусков - представте каждый раз компу высчитывать куда какой кусок лепить. Меньше кусков унврапа - меньше пустой рутины для компа и больше той же самой рутины для вас. Так что ститчите(stitch) ювивишки на здоровье юзеров.