Лого vc.ru

Оптимизация сцены и работа со светом в Unity 5 — советы 3D-художника студии Rammen Speed

Оптимизация сцены и работа со светом в Unity 5 — советы 3D-художника студии Rammen Speed

Платформа для разработки Unity вместе с vc.ru публикует истории разработки игровых проектов, созданных на базе популярной технологии. Расскажите о своём кейсе, чтобы попасть в рубрику.

Сегодня в выпуске — рассказ 3D-художника Киммо Каунела о своей работе с физически обоснованным рендерингом в Unity 5. Автор даёт несколько полезных советов по оптимизации сцен в играх.

Поделиться

Я 3D-художник и живу в Финляндии. Сейчас я работаю в студии Rammin Speed и являюсь частью талантливой команды, работающей над проектом мобильной игры, — отвечаю за вовлечение игроков и общий визуальный стиль. Это работа моей мечты, и этот проект по-настоящему вдохновляет меня.

Я играл в игры почти всю жизнь, и счастлив быть частью этой индустрии. Поскольку я художник-самоучка, то стараюсь быть в курсе новых технологий, во многом из-за этого я и решил заняться Zero Gravity. 3D-графика сочетает в себе красивую визуализацию и технические препятствия, которые нужно каким-то образом преодолевать, и мне всё это очень нравится.

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

Моей целью было создание правдоподобного образа фантастического окружения, которое могло бы существовать в 80-е годы. Просматривая многочисленные материалы, я понял, что космические станции являются модульными структурами, и это понимание стало отправной точкой для моего проекта.

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

О Marmoset Toolbag 2

Начав работать над этим проектом, я занялся изучением физически обоснованного рендеринга. В то время Marmoset Toolbag 2 был для этого лучшим инструментом. Я видел его потенциал, но мне хотелось самому проверить, чего я смогу добиться с его помощью. Этот инструмент отлично подходил для простых моделей, но никто до меня не использовал его для создания окружения.

Я до сих пор использую его для тестирования своих моделей и текстур. Это действительно быстрый и простой в использовании инструмент, который в реальном времени выдаёт результаты, сравнимые с офлайновым рендерингом.

О физически обоснованном рендеринге

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

Многие думают, что физически обоснованный рендеринг можно использовать только для создания фотореалистичный графики, но это не так. Просто намного проще полагаться на физические величины. Это не исключает художественный стиль, но позволяет получать более реалистичные и последовательные результаты. Чем больше созданные вами модели напоминают реальный мир, тем лучше они вовлекают пользователей, а это очень важно для игр и кинофильмов. В качестве примера можно привести студию Pixar с их удивительным пакетом программ RenderMan.

Сейчас физически обоснованный рендеринг поддерживают такие движки, как Unreal Engine 4, CryEngine 3.6 и Unity 5. PBR обеспечивает более качественную графику и, как показывает мой опыт, иногда позволяет работать быстрее по сравнению со старым подходом к шейдингу и текстурированию

Один из ключевых элементов, позволяющих получить красивую графику, — это правильное освещение. Но его расчёт в реальном времени — дорогое удовольствие. Решить эту проблему помогает IBL — Image Based Lighting, освещение, основанное на изображении. Это один из элементов концепции PBR. Смоделировать правильное естественное освещение очень трудно, а IBL позволяет это сделать намного проще.

Ещё одно преимущество PBS (физически обоснованного шейдинга) — то, что он позволяет более точно представить материал. Металл выглядит как настоящий металл, а кроме того, вы можете использовать один и тот же шейдер для многих объектов. До того, как появился PBS, нам приходилось создавать огромное количество шейдеров для разных объектов.

Я привёл всего несколько примеров того, как физически обоснованный рендеринг помогает улучшить графику. Было бы здорово посмотреть, как эта технология работает на мобильных устройствах. PBR требует определённой мощности, и некоторые мобильные устройства пока к этому не готовы.

Работа с Unity 5

Когда я завершил сцену Zero Gravity в Marmoset Toolbag 2, мне захотелось протестировать визуальные возможности Unity 4.6, и я решил построить в нём ту же сцену. Довольно скоро я понял, что это невозможно. Я старался как мог, но, в конце концов получилась обычная сцена из Unity 4. Так случилось потому, что мне нужны были сложные шейдеры и освещение, чтобы повторить результат визуализации, полученный в Toolbag 2.

Я с нетерпением ждал появления Unity 5, потому что знал, что этот движок будет поддерживать PBR и сможет понимать тот язык, который я использовал в Toolbag 2. И действительно, с Unity 5 не было никаких проблем. Я просто импортировал туда свои модели и за несколько часов получил красивый результат. Новая система освещения сделала свою работу замечательно, после того как я разместил в сцене Light probe (зонды освещения) и Reflection probe (зонды отражения). Особенно впечатлила новая система освещения (GI) в реальном времени.

Я использовал те же текстуры, что и в Marmoset Toolbag 2. Всё, что мне пришлось сделать, — это добавить к моделям коллайдеры и контроллер для камеры, и можно было нажимать на кнопку play. За несколько дней я сделал всё, что нужно, со всеми деталями и дополнительными эффектами. Это был настоящий прорыв по сравнению со старой версией Unity.

Unity 5 поддерживает рабочие потоки Spec/Gloss и Metalness/Roughness подходы к шейдингу, так что вы можете выбрать то, что вам лучше подходит. Визуальное качество просто отличное, и эти сцены идут неплохо даже на моём шестилетнем стареньком компьютере. Именно поэтому я считаю Unity 5 огромным шагом вперёд.

Мне не пришлось ни от чего отказываться, напротив, с Unity 5 я смог добавить намного больше контента: эффект частиц, объекты с физикой нулевой гравитации и тому подобное. Unity 5 — отличный инструмент: вы можете настроить многие элементы прямо в редакторе и посмотреть, что и как влияет на общую производительность.

Система освещения в Unity 5

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

Light probe'ы и Reflection probe позволяют работать с довольно сложными сценами. Технология глобального освещения добавляет реалистичности. Ещё один интересный момент: в новой системе Unity сама рассчитывает фоновое освещение, пока вы делаете свою работу.

Инструменты оптимизации в Unity 5

Я создал много объектов для мобильных игр, поэтому стараюсь оптимизировать всё, что только можно. Мне хочется создать сцену, которая будет работать не только на персональном компьютере, но и на менее мощных устройствах и даже с виртуальной реальностью. На конечную производительность влияет множество мелочей, но есть некоторые вещи, которые я считаю полезными для оптимизации сцен в Unity.

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

Постарайтесь разбить ваш уровень на несколько слоёв и подумать, какие из них требуют большего количества деталей. Я обычно стараюсь делить мои сцены на три разных слоя.

  • Первый слой — структурный (пол, крыша, стены), поверх него будет лежать средний слой.
  • Средний слой (панели для стен, двери, мебель) должен иметь больше деталей, чем структурный слой, потому что его игрок будет больше рассматривать.
  • Верхний слой должен быть самым проработанным из всех. Этот слой содержит те предметы, которые игрок будет видеть очень близко и с которыми будет взаимодействовать.

Ещё одна вещь, о которой нельзя забывать, — это текстурные разрешения. В моей системе было всего 512 Мбайт видеопамяти, и я старался не превышать этот предел. Чтобы всё гладко работало, лучше заранее планировать работу с текстурами. Сходные элементы в моделях могут занимать одно и то же текстурное пространство, а также несколько моделей могут использовать одинаковые текстуры.

Старайтесь экономить текстурное пространство, используя его для нескольких моделей. Я называю это текстурным атласом. Это облегчает батчинг в Unity и сокращает время, которое вы тратите на работу с текстурами. При этом не обязательно использовать одни и те же текстурные разрешения со всеми картами, а также старайтесь использовать простой цвет для альбедо (вместо детальной текстуры, как при старом подходе).

Для хорошей производительности идеально подходят повторяющиеся (tiling) текстуры, поэтому по возможности используйте их чаще.

Эффекты постобработки способны «съесть» большую часть производительности, если вы будете ими злоупотреблять. Чтобы избежать лишних проблем, старайтесь использовать как можно меньше эффектов. Например, можно ограничиться только одним эффектом коррекции цвета вместо нескольких.

Я думаю, что работа с Polycount больше не является такой проблемой, как несколько лет назад, но всё-таки стараюсь использовать оптимальное количество полигонов, конечно, не в ущерб красоте модели. Важные элементы должны иметь достаточное количество деталей. Теперь даже в бесплатной версии Unity есть профайлер, и я бы рекомендовал его использовать для выявления того, что нуждается в большей оптимизации. Это всего несколько моментов из тех, что нужно иметь в виду, создавая сцены в Unity или другом подобном движке.

Несколько предложений для будущих версий Unity 5

Unity 5 — это действительно большой шаг вперёд во многих отношениях. Мне очень нравится, что все визуальные эффекты и профайлер можно использовать даже в бесплатной версии, хотя раньше они были доступны только в версии PRO. Это делает Unity очень интересным и конкурентоспособным движком.

Я мало что понимаю в программировании шейдеров, поэтому мне бы хотелось иметь в Unity 5 какой-нибудь визуальный редактор, позволяющий создавать простые шейдеры или скрипты, как в UE4. К счастью, в Unity Asset Store есть такие инструменты, но всё же было бы хорошо, если бы они были по умолчанию встроены в Unity 5.

Эффекты частиц — это то, что тоже хорошо бы усовершенствовать в Unity. Во всём остальном Unity 5 — отличный движок для самых разных платформ.


Если вы работаете на технологии Unity, хотите рассказать о своём опыте разработки или задать вопрос экспертам — оставьте заявку нашим менторам с помощью специальной формы.

Статьи по теме
Анонс рубрики Unity04 июня 2015, 16:31
Дизайн робота в Planet of the Eyes22 октября 2015, 18:22
Технический художник Ubisoft о своей работе, инструментах для разработчиков и перспективах игровых движков08 октября 2015, 12:19
Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

Не сразу понял что "физически обоснованный рендеринг" это оказывается PBR)) Может в самом начале стоит дать общепринятое сокращение ?
Кроме того, в статье по ссылке пбр называют "физически верный рендеринг" что ясности не добавляет.

уточни плиз как корректно и почему, поправим, я не носитель знания - запутался)

0

Можно/лучше использовать английскую аббревиатуру PBR (Physically-Based Rendering). Ваш перевод верный, в сети давно гуляет перевод на русский язык вот этой статьи (есть ссылка в публикации выше):
www.marmoset.co/toolbag/learn/pbr-theory
перевод: arttalk.ru/forum/viewtopic.php?t=10504

не Rammen Speed, а Rammin

0

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Sasha Zivers

Мы ещё и яиц сами не несём, но пригорелую яичницу враз распробовать можем.

«Никому не выгодно, чтобы у вас скапливались деньги»
0
Sasha Zivers

*паталогически собирает

«Никому не выгодно, чтобы у вас скапливались деньги»
0
Sasha Zivers

Не в Плюшкина, а в Скруджа.
"Синдром Плюшкина" в психиатрии это когда человек собирает бесполезный хлам.
А Скрудж (у Диккенса) собирал деньги всю жизнь и не пользовался ими.

«Никому не выгодно, чтобы у вас скапливались деньги»
0
Sasha Zivers

Ну вот об этом как раз и много говорит и повторяет Кийосаки.
Но до многих так и не доходит и продолжают твердить как заводные: "его книжки не работают в россии!!"
Рилли? Не работает экономить на пассивах и умножать активы?)

«Никому не выгодно, чтобы у вас скапливались деньги»
0
Sasha Zivers

Ну да, лучше послушайте гипнотезёра, лол.

(уточнил, т.к большинство не знает, кто это вообще)

«Никому не выгодно, чтобы у вас скапливались деньги»
0
Показать еще