Создание современного игрового 3D окружения от White Noise Team. (Часть-2)

Читайте первую часть тут! (https://pikabu.ru/story/sozdanie_sovremennogo_igrovogo_3d_ok...)



Создание материалов.



Теперь, когда мы знаем как работают современные материалы, можно рассказать о том, как они создаются. Для этого вновь вернемся к разговору о SP2.


Программа предназначена для работы с PBR и по аналогии с Marvelous Designer широко распространена среди игровых разработчиков. В базе SP2 имеется библиотека уже готовых процедурных материалов. При наличии прямых рук и художественного вкуса, можно быстро “разукрасить” большинство простых объектов, не прибегая к использованию сторонних ресурсов.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

В качестве примера “затекстурим” старый чайник, и для начала сгенерируем все необходимое для дальнейшей работы карты.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Путем манипуляций с Curvature map (карта кривизны) и наложением стандартных материалов можно получить стальной чайник с эффектами стертой краски по краям.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

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


После первых проб задается основа для объекта. В данном случае мы использовали “сталь” из стандартных материалов. На этом этапе важно выбрать правильно панорамное изображение, чтобы лучше видеть и понимать, как будут играть на нем свет и отражения. Настойка панорамы и освещения рабочей сцены особенно важны для работы с металлами, так как их внешний вид сильно зависит от отражений.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

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

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Фактически чайник уже готов, но его внешний вид не подходит под определение “старый”. Как правило, для эффекта состаривания добавляются грязь, царапины, цветовые вариации и пр. На данном этапе работа по большей части идет на уровне Roughness maps (карты шероховатости). Естественно, карты шероховатости уже содержаться в базовых материалах, но ничто не мешает добавить новые поверх них. Для тела чайника мы добавим карту, имитирующую потертости, а для ручки - еще и следы от пальцев.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост
Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

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

Из дополнительных приемов можно отметить использование старых добрых фото-текстур.


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

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

В качестве экономии времени незначительные детали можно не отмоделивать в HP. SP2 содержит в себе набор заготовок, или же можно найти найти на просторах гугла заготовки в виде карт высот. Например, мы добавим болты-крепежи на ручках.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

В итоге чайник готов. В качестве результата, мы экспортируем набор карт (альбедо, нормалка, рафнес, металик) для дальнейшей работы с ними в игровом движке.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Работа с контентом в UE4.



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


Одна из основ оптимизации современной графики - сокращение количества текстурных карт, материалов и упрощение последних. Тем самым мы уменьшаем количество обращений к видеокарте для отрисовки элементов. К сожалению, текстурных карт даже в простом чайнике выходит не мало, и они требуют дополнительной оптимизации. Если внимательно взглянуть на AO, Roughness и Metalic, можно заметить что все три карты черно-белые, а почти любые цифровые изображения стоят из RGB каналов, каждый из которых является градацией серого. Проще говоря, один цветовой канал позволяет хранить одну черно-белую текстуру. В результате мы сливаем все три вышеуказанные карты в одну текстуру.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Различные дополнительные карты, к примеру для светящихся материалов или материалов с прозрачностью, мы дополнительно запаковываем в Alpha канал альбедо текстуры (некоторые форматы изображений имеют помимо RGB дополнительный канал для прозрачностей).


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


Помимо всего мы руководствуемся логикой. Допустим сделали набор инструментов. Естественно все объекты пакуются в один атлас, а значит и один материал, что здорово экономит ресурс производительности. Но если мы захотим использовать на сцене один конкретный инструмент, то он забьет видео-память большими атласами, из которых используется лишь маленькая часть, что делает использование одной модели из сета не целесообразным.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

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

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

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

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Но и тут не без подводных камней. То что в Unreal Engine 4 называется материалом и редактором материалов, является полноценным шейдером и редактором шейдеров. Здорово что шейдер может теперь создавать рядовой художник, пользователи Unity или CryEngine, к примеру, лишены такого удобства в стандартной коробке, но любая работа созданная таким образом генерирует полноценный C++ код и, к сожалению, не самый оптимизированный.


Раньше материал представлял собой экземпляр конкретного шейдера с изменением параметров или текстурных карт, но неизменным кодом. Граница понятий и терминов во многих 3Д редакторах со временем размылась, но возможность создавать традиционные “материалы” в UE4 осталась, и в подобном виде у нас хранятся материалы для большинства объектов.

Создание современного игрового 3D окружения от White Noise Team. (Часть-2) Twin Soul, Unreal Engine 4, Gamedev, 3D, Компьютерная графика, Длиннопост

Послесловие.



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


В качестве помощи вы можете дать нам фидбек, распространить статью, либо поддержать наш патреон (http://patreon.com/twinsoul), или просто подписаться на наши социалки:


https://twitter.com/WN_Team


https://vk.com/whitenoiseteam


https://www.youtube.com/c/WhiteNoiseTeam


https://www.facebook.com/twinsoulgame/

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
2
DELETED
Автор поста оценил этот комментарий
, сделать лоды и коллизию, лайтмап развертки, произвести батчинг, настроить пивоты… Но рассмотреть все аспекты пайплайна

здесь что то на дизайнерском.

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

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

"Лоды" - "LOD's" - уровни детализации. Это одна и та же модель, сделанная с разным количеством треугольников. Это один из способов оптимизации графики. Модели, находящиеся на расстоянии от игрока переключаются на модель с более худшей детализацией, но меньшим количеством треугольников, от чего снижается нагрузка.

"Лайтмап развёртки и "батчинг"" - это развёртки для карт освещённости. Такие развёртки создаются для последующего запекания освещения в текстуру. Грубо говоря - на выходе не придётся считать тени в сцене - они будут записаны в изображения. Про само выражение "батчинг" я не знал и сам. Все называют это запеканием.

"Настроить пивоты" - pivot это центр объекта, от которого считаются локальные координаты вершин. В таких подробностях о пивоте думать не нужно. Обычно от pivot объекта считается центр массы, позиция объекта в глобальном пространстве и центр для трансформаций.

Условно говоря - дизайн и моделирование под реалтайм это совершенно разные направления и последнее на три порядка сложнее т.к. при моделировании реалтайм моделей нужно уметь почти всё, что вообще связано с 3D графикой (включая то, что должен уметь 3D дизайнер). Разве что в написание шейдеров лезть не нужно - этим занимается technical artist. И вот у этого парня уже яйца самых больших размеров т.к. он к вышеперечисленному ещё и программист GLSL\HLSL, пописывает на парочке популярных языков типа C++, C#, Python и, думаю имеет 10 лет опыта работы в NASA инженером космических двигателей.

раскрыть ветку (4)
1
DELETED
Автор поста оценил этот комментарий

спасибо добрый человек =)

Теперь буду говорить

"здесь что то на модельерском"
раскрыть ветку (1)
Автор поста оценил этот комментарий

"Моделлерском" тогда уж)
Моделлер и модельер это разные профессии)

Разница там в основном разговорная, но моделлеры тесно и часто работают с иностранными заказчиками, где вакансии типа 3D modeler это обычное дело. Модельеры уже более древнее слово и в процессе русификации и малой популярности 3D графики в России (в те времена) было присвоено тем, кто занимается одеждой. Такие вот дела.

Ещё важно понимать, что 3D modeler и 3D artist это тоже немного разные вещи.
Artist идёт от слова art. т.к. этот человек ближе к моделированию как к искусству. Такие ребята моделируют что-то не существующее или искажённое под стиль. Например моделирование построек для мультфильма.
3D modeler же имеет более широкий смысл. Это всё, что связано с 3D графикой начиная от моделирования автомобилей по чертежам и заканчивая сборкой архитектурных сцен.

И самое главное - моделлеры ни в коем случае не рисуют модели. За это в приличном обществе можно и отхватить. Моделлеры моделируют. Сам процесс больше похож на "постройку" модели.
Ну, кроме случаев, когда это моделирование методом скульптинга. Там процесс больше похож на лепку, но от "классную модель нарисовал" воротит их не меньше.

Автор поста оценил этот комментарий

Батчинг != Бейк. Бейк - пёк освещения/етк. Батчинг - объединение нескольких матов в один (утрированно)(допустим у нас 3 чайника. На 3 чайника по проходу.) Батчинг-же подразумевает то, что 3 одинаковых мата пройдут как 1, тем самым уменьшая количество вызовов отрисовки

раскрыть ветку (1)
Автор поста оценил этот комментарий

Виноват, ошибочка. Мне с этим особо не приходилось сталкиваться. Да и я так почитал - динамический батчинг вполне справляется.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку