Новоиспеченный вопрос?

Успешно раскрыв древнюю тайну противостояния func_detail и деформаций в предыдущей статье, я получил известия от Верховного Рекомендации по оптимизации Source. Оказывается, есть ещё одна загадка, спрашивающая решения, так что передо мной встал новый вопрос.

Как тяжкие и лёгкие ассеты влияют на частоту кадров? Есть ли между ними существенная разница в плане фреймрейта (собственно, это два проблемы, но мы это опустим)?

Методика

Статья и на этот раз будет небольшой, но ёмкой; меньше слов, вяще цифр и скриншотов. Систематический подход тоже не претерпел особых изменений: у нас будет две равных тестовых карты, только одна с лёгкими версиями ассетов, а иная с тяжёлыми. Сами ассеты будут одинаковыми, как и их расположение.

Новоиспеченные ассеты из переработанной de_nuke в CSGO отлично нам подойдут, поскольку вящую их часть Valve выполнила в лёгком и тяжёлом вариантах. Тяжкие версии пропов насчитывают больше полигонов. У тяжёлых текстур есть карты нормалей (вплоть до двух), карты отражений, продвинутые отражения, карты детализации и в линии случаев затенение по Фонгу. Их лёгкие версии – это просто диффузные текстуры, порой с картой детализации.

Я замерю fps на каждой карте, и выведу заточение, которое, будем надеяться, удовлетворит Верховный Совет.

Тестирование

Вначале будем тестировать лёгкие ассеты. Карта у нас простая, заключается из четырёх стен, пола и расставленных тут и там пропов и блоков с текстурами. Текстуры, как правило, бетонные, пропы воображают собой ящики, машины, трубы, провода, двери и вентили.

assets-test-cheap

На этой карте мы получаем 330 fps. Вторая карта будет идентичной, но легковесные версии пропов и текстур мы заменим тяжёлыми.

assets-test-expensive

Здесь у нас 286 fps, что ж, интересненько. Ну всё, пойду снесусь с Советом, передам им данные.

Постойте, не торопитесь. Мы с вами люд науки, и вы же понимаете, что одной карты для закономерных выводов недостаточно.

Дальше мы протестируем нашу карту, увеличив её вчетверо, как в размерах, так и в числе содержимого (Нобелевка уже ждёт меня). Мы скопируем имеющиеся у нас пропы и браши с текстурами и размножим их на повышенной площади. Начнём с лёгкой версии тестовой карты 4x (будем именовать её так).

assets-test-cheap4x

Частота кадров просела на 279 с 330, поскольку движку доводится отрисовывать больше содержимого. Но главное для нас – сравнить этот показатель с тяжкой версией. Как вы уже поняли, мы снова берём вчетверо увеличенную версию сейчас уже тяжёлой карты.

assets-test-expensive4x

229 fps. Производительность упала приблизительно соразмерно разнице в легковесных версиях. Для наглядности соберём данные в таблицу:

assets-test-fps

Как видите, фреймрейт проседает на 44 fps в несложных версиях и на 50 fps в картах 4x.

Из таблицы мы можем сделать два вывода:

Разница между легковесными и тяжёлыми версиями ассетов существенна (44/50 fps), то же касается и разницы между несложными и четырёхкратными версиями (51/57 fps) с добавлением большого количества потенциально видного контента.

Наши результаты могут пролить свет на приметную разницу в производительности обновлённой de_nuke и стандартных карт CSGO. Большенное количество деталей, видимых с одной позиции усугубляется тяжкими ассетами в игровой области (в дополнение к открытому скайбоксу).

В качестве бонуса прилагаю пора компиляции тестируемых карт, чтобы вы смогли оценить разницу в легковесных и тяжёлых ассетах с этой точки зрения, особенно в vrad, немало зависимом от количества полигонов и сложности текстур.

assets-test-compile

Вы прекрасно видаете, насколько время компиляции vrad увеличивается на тяжёлых и на повышенных версиях карт.

Ну а теперь прошу меня извинить, необходимо сделать один звонок. Старейшина больше не может ожидать.

Итоги

Тяжёлые ассеты делают карту более симпатичной глазу, что необходимо в сегодняшних реалиях непрерывно совершенствующейся графики. Низкополигональные модели и несложные текстуры невыгодно скажутся на картинке. Однако, тяжёлые ассеты мощнее нагружают рендерный движок и снижают производительность на карте.

Они необходимы, если вы желаете, чтобы карта блистала (в прямом и переносном смысле), основное знать меру, обращаясь к лёгким ассетам при оформлении неигровых районов и мест, которые игрок не увидит настолько близко, чтобы приметить разницу.