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

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

В рамках работы над проектом Twin Soul (https://www.twinsoulgame.com) мы ведем Devlog и часто получаем вместе с фидбеком вопросы о создании игрового контента. Подобную информацию трудно уместить в рамках одного комментария, что сподвигло на написание данной статьи.


Вне зависимости от того, слышали ли вы краем уха слова “полигон” и “нормалка”, занимаетесь разработкой видеоигр, или же простой обыватель - мы постарались сделать статью максимально понятной и интересной для всех. А конкретно - мы расскажем о нашем пайплайне (поэтапный алгоритм ведения работы) создания простых игровых моделей (на жаргоне разработчиков - “пропсов”; от англ. “props”), познакомим с технической терминологией, и дадим несколько практических советов.



Сбор референсов.



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

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

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


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

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

Для более глубокого погружения мы стараемся максимально правдоподобно копировать референс в виде 3Д. “Эксперты” любящие писать “Вот так вот не бывает!” знайте - на каждое “не бывает” у нас есть фото, подтверждающее обратное.

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

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


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

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

Моделирование - базовая теория.



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

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

Готово! Получена желаемая форма, но для использования в игре она не годится. Это пока еще скетч, на основе него предстоит сделать две модели, и начнем с низко полигональной (полигон - плоскость 3Д модели описанная точками), будем называть такие объекты - LP (low poly).


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

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

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


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

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

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

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

При моделировании сложной геометрии могут возникнуть различные ошибки в построении полигональной сетки LP, приводящие к искажению полигонов. Один из популярных способов избежания подобных ошибок - триангулирование (деление полигонов на треугольники).

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

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


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

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

Боковые части объекта одинаковы на предполагаемой текстуре, поэтому положим их друг в друга. На внешней части конуса предполагаем наличие фаски или другой текстурной детализации, поэтому немного увеличим её на развертке. Дно модели редко будет видно игроку, уменьшим его развертку в несколько раз.

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

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


Теперь деталь полностью готова к экспорту в игровой движок. Но такие квадратные формы явно не подходят под определения “современного игрового окружения”, по прежнему хочется сгладить все углы. Для этого мы возвращаемся к нашему 3D скетчу и сделаем из него высоко полигональную модель HP (high poly).

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

Модель сглажена за счет большого количества полигонов и их нормалей, теперь предстоит задача перенести эти нормали с HP на LP. Перенос осуществляется методом запекания в ранее созданную развертку, на выходе мы имеем карту нормалей, где RGB значение каждого пикселя соответствует XYZ значения вектора.


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

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

Подробнее о картах нормалей.



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

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

Использования подобных карт - не новинка в игровой графике, но современный пайплайн создания фотореалистичного контента требует совершенно иной уровень качества. Именно поэтому создание почти каждого объекта требует дополнительно HP вариант, что увеличивает временные затраты разработки. Моделирование промежуточного скетча, сетка которого позволяет быстро получить HP и LP, экономит время и, кроме того, габариты двух моделей выходят идентичными. Чем больше идентичность HP и LP - тем меньше выходит проблем с запеканием нормалей.


Во время запекания на основе LP сетки строится клетка “захвата”, форма клетки влияет на угол проекции запекания. И иногда нам приходится добавлять в LP дополнительные ребра, тем самым выровнять клетку и исправить некоторые “косяки”. После временные ребра можно удалить.

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

Как правило игровые модели состоят из ряда мешей (цельные полигональные объекты), эти части будут мешать запеканию перекрывая друг друга, приходится отделять их и печь по отдельности. Куски получившихся карт нормалей склеиваются воедино после.

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

Для непосредственного запекания может использоваться почти любой современный пакет 3D моделирования, но мы используем Substance Painter 2 (программа для процедурного текстурирования, далее SP2). Помимо нормалей, софт позволяет качественно запекать на основе HP целый ряд различных карт. К примеру, карта базового затемнения (Ambient Occlusion - АО) или карта высот (Height Map). Эти и некоторые более технически сложные карты могут участвовать в генерации необходимых визуальных деталей - грязь, потертости на углах, и т.п.


В качество нюансов можно указать что работаем мы исключительно с OBJ форматом, как показала практика общепризнанный FBX по неизвестным причинам может выдать неприемлемый результат.a



Иные методы моделирования.



Часто, если на HP модели должны присутствовать рельефные детали типа узоров, трещин, скол, следы коррозии и т.п., в таком случае разработчики прибегаю к скульптингу (принцип моделирования основанный на скульптурной лепке, использует для работы очень большое количество полигонов). Хорошим примером для использования подобного метода может выступать старый советский подоконник.

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

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


Часто нас спрашивают, используем ли мы фотограмметрию (способ получения 3D объекта с помощью фотографий), бытует мнение, что данный способ является чуть ли не манной небесной. К сожалению, для качественной фотограмметрии нужен студийный равномерный свет, дополнительная работа с фото, большое время для просчета. На выходе получаем меш с хаотичной высокополигональной сеткой, и для дальнейшей работы требуется проведение ретопологии (изменения топологии сетки), а после - устранения артефактов с помощью скульптинга. Одним из преимуществ фотограмметрии является создание реалистичной текстурной карты, но она тоже требует дополнительные правки и сильно ограничивает в оптимизации развертки.


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

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

Стандартом для создания тканевых ассетов в игровых пайплайнах давно уже стал Marvelous Design. Продукт позволяет создавать и симулировать ткани из заготовленных пользователем выкроек. Наша команда пока еще только осваивает новый инструментарий, но он уже нашел свое применение и для создания предметов окружения.

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

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



Материалы - базовая теория.



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


С приходом консолей последнего поколения в пайплайн разработчиков внедрился новый технологичный стандарт, пришедший в игры из кинематографа - физически корректный шейдинг (сокращено PBS, в сети можно встретить также под аббревиатурой PBR, IBR). Технология представляет с собой наиболее наиболее подобную реалтайм симуляцию взаимодействия света и материалов.

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

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

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

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

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

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

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

Остальная информация о материале раскидана по остальным картам, их количество зависит от особых физ свойств объекта, которые требуется просимулировать. В нашей пайплайне для простых объектов, на базе работы с Unreal Engine 4 используется не так много карт. К знакомым нам уже картам нормалей и альбедо добавляется рафнес (roughness - карта шероховатости), металик (metalic карта металличности) и АО (ambient occlusion - карта базового затемнения).

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

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


Читайте продолжение! (https://pikabu.ru/story/sozdanie_sovremennogo_igrovogo_3d_ok...)

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

6.5K постов22K подписчик

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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

Вы смотрите срез комментариев. Показать все
36
Автор поста оценил этот комментарий

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

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

Иииии

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

Мне тоже очень интересно!

7
Автор поста оценил этот комментарий
Осторожно, тут снай
19
Автор поста оценил этот комментарий

и?

раскрыть ветку (3)
2
Автор поста оценил этот комментарий
Походу пошел доделывать
6
Автор поста оценил этот комментарий

выиграл

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

И..?

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

чем дело закончилось?

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

Ну и? Что дальше?

1
Автор поста оценил этот комментарий
Я УЖЕ ТРИ ДНЯ ЖДУ ПРОДОЛЖЕНИЯ.
НЕ НАДО ТАК.
раскрыть ветку (4)
3
Автор поста оценил этот комментарий

38 дней...

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

145(

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

Два... ёбаных... ГОДА!!!

раскрыть ветку (1)
Автор поста оценил этот комментарий
5 лет, 5 лет я каждый день захожу в этот пост и со слезами выключаю, не увидев продолжения...
Автор поста оценил этот комментарий

Так чем закончилось? Два года прошло

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