Текстурирование: подходы, технологии, будущее

Текстурирование — ключевой процесс в 3D-графике, который добавляет моделям детали и материалы, делая их правдоподобными. Текстуры отвечают за цвет, рельеф, блеск, отражения и множество других характеристик объектов. Без качественных текстур даже самая детализированная 3D-модель выглядела бы плоской и неестественной.

1.jpg

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


Краткая история текстурирования


В 90-е годы, на заре развития 3D-графики в видеоиграх, текстуры были низкого разрешения, а тени и освещение часто прорисовывались вручную. На консолях Sony PlayStation и Nintendo 64 текстуры использовали для изображения базовых цветов и простых узоров. Метод был далёк от реализма, так как не учитывал физических свойств материалов.

3.jpg

С развитием технологий текстурирование прошло через несколько важных этапов. В эпоху PS2 и Xbox появилось динамическое освещение и текстуры более высокого разрешения. Например, в игре Silent Hill 2 впервые были применены динамические тени, что делало атмосферу игры более жуткой и реалистичной. Это стало прорывом для того времени.

4.jpg

PBR (Physically Based Rendering)


Но самый значительный технологический прорыв произошёл с появлением PBR. Это стало ключевым этапом в развитии материалов и установило новый стандарт.


PBR — метод рендеринга, который основан на физических принципах взаимодействия света с различными материалами. Цель PBR — получить реалистичные результаты независимо от условий освещения.

PBR-материалы состоят из карт, которые управляют различными свойствами материала.

5.jpg

Материалы делятся на металлы и неметаллы (диэлектрики):


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


- Металлы имеют высокую отражательную способность и отражают от 50 до 100% света.

6.jpg

Основные рабочие процессы PBR


Specular (Спекулярный) — в этом процессе используются карты Diffuse, Specular и Glossiness для управления параметрами материала. Процесс предлагает больше возможностей для настройки. Но считается менее оптимизированным, так как сильнее грузит систему.


Metallic (Металлический) — более оптимизированный и интуитивный метод, который использует карты BaseColor, Metallic и Roughness. Считается более подходящим для новичков. Оказывает меньшую нагрузку на систему.


В обоих процессах можно использовать дополнительные карты, такие как Ambient Occlusion (AO), Normal Map и Bump Map.
Выбор процесса зависит от целей и задач, а также от программного обеспечения, с которым планирует работать художник.


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

7.jpg

Стилизованная графика и текстуры в Deadlock

Основные текстурные карты

BaseColor / Albedo / Diffuse Map — отвечает за цвет материала. Различия в названиях карты связаны лишь с разными рабочими процессами.

8.jpg

В традиционных рабочих процессах Diffuse Map содержала информацию о цвете, тенях и освещении. Это создавало сложности при добавлении новых источников света в сцену. Для решения проблемы используют Albedo Map, которая содержит информацию лишь о цвете.


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

9.jpg

Слева материал со всеми картами. Справа включен только канал Base Color


Specular Map — управляет отражательной способностью материала. Значение 0 полностью блокирует отражение света, а значение 1 делает поверхность отражающей.

10.jpg

В реальном мире у всех объектов есть зеркальные отражения (specular). Даже у таких материалов, как ткань и картон. Вот ссылка на эксперимент с использованием самодельного поляризованного освещения, который наглядно это демонстрирует.


Metallic Map — отвечает за «металличность» материала. В большинстве случаев принимает одно из значений: либо металл, либо — неметалл.

11.jpg

В одном материале могут сочетаться металл и неметалл. Например металлическая деталь, покрытая слоем краски. Краска — неметалл, поэтому значение Metallic для неё нужно выставить 0, а для основной детали значение должно быть 1.

12.jpg

Делается это с помощью черно-белой маски, где чёрное — это значение «металл», а белое — «неметалл».

13.jpg

Roughness / Glossiness Map — параметр, который отвечает за то, насколько шероховатой или гладкой будет поверхность. От него зависят резкость и размытость отражений на материале. Гладкие поверхности отражают свет более равномерно, что приводит к чётким отражениям и зеркальным бликам. Шероховатая поверхность рассеивает отражённый свет в большем количестве направлений, поэтому блики на поверхности сильнее размыты.

14.jpg

Карты позволяют добавить дополнительные детали: следы от пальцев, различные царапины и потертости.

Bump Map — чёрно-белая карта, которая используется для имитации рельефа на поверхности. Светлые участки текстуры показывают выпуклости, а тёмные — впадины.


Normal Map — более продвинутая цветная карта, содержащая информацию о направлениях нормалей поверхности. Она позволяет гораздо точнее симулировать взаимодействие света с объектом, создавая детализированный рельеф. Существует ещё несколько типов Normal-карт. Например, Tangent Space, Object Space и World Space, которые различаются системами координат, на которые они опираются. Наиболее популярной является Tangent Space, которая имеет синие и розовые оттенки.

15.jpg

Слева Normal map. Справа Bump map


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


Пример того, как карты ведут себя на плоской поверхности:

16.jpg

Bump Map

17.jpg

Normal map

18.jpg

Здесь хорошо видно, что обе карты создают лишь иллюзию объёма.

Процесс создания Normal-карты обычно выглядит так:

1. Создается высокополигональная модель (Hight Poly).
2. Модель проходит процесс ретопологии (Low Poly).
3. Все детали с HP «запекаются» на LP-модель и помещаются в Normal-карту.

19.jpg

Оптимизация игровой модели.

Displacement Map — карта, которая действует схожим образом, но меняет геометрию объекта, а не создаёт иллюзию. Для работы с ней нужно большое количество полигонов, чтобы результат был более детализированным.

20.jpg

Различия Bump и Displacement.

Height Map — похожа на Displacement, но обычно используется для хранения информации о высоте и глубине. А не для непосредственного изменения геометрии. Она часто сглажена и содержит меньше микродеталей. Обычно эта карта используется для генерации ландшафтов, а также создания масок.

21.jpg

Ambient Occlusion Map (AO) — представляет области, где окружающий свет блокируется. Например, в трещинах или местах контакта объектов. Эта карта снижает влияние окружающего света на затемнённые области, создавая более реалистичную игру света и тени. AO-карта влияет только на диффузные отражения, но не затрагивает другие источники света.


Cavity Map — похожа на AO-карту, но работает только с небольшими зазорами и может блокировать как диффузные, так и спекулярные отражения.

22.jpg

Ambient Occlusion Map OFF / ON


Curvature Map — хранит информацию о вогнутости и выпуклости сетки в градациях серого. Она используется в качестве маски для упрощения покраски текстур:


- Серый цвет — плоские участки.
- Белый — выпуклые участки.
- Чёрный — вогнутые участки.


Emissive Map — цветовая карта свечения материала.

23.jpg

Opacity Map — карта, которая контролирует прозрачность объекта. Чёрный цвет обозначает 0% прозрачности, белый — 100%, а серые тона — переходы.

24.jpg

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


Translucency Map — используют для передачи свойств полупрозрачных материалов, когда свет проходит через объект. Это упрощённая версия эффекта Subsurface Scattering, который симулирует рассеивание света внутри объекта.

25.jpg

Инструменты для текстурирования

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

Adobe Substance Painter

Один из наиболее мощных инструментов для создания PBR-текстур. Он позволяет художникам возможность видеть результат в реальном времени и при различных условиях освещения. Это значительно ускоряет процесс и улучшает контроль над качеством текстур.

26.jpg

В Substance Painter активно используются умные материалы и маски. Инструмент отлично подходит для создания текстур сложных объектов, персонажей и окружения.

Его преимущества:


1. Интерактивность. Все изменения отображаются в реальном времени.

27.jpg

2. Поддержка слоёв. Прямо как в Photoshop. Каждый элемент текстуры создаётся на отдельном слое, что позволяет с легкостью вносить изменения.

28.jpg

29.jpg

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

30.jpg

4. Библиотека 3D-ресурсов. Доступ к библиотеке Adobe, которая содержит более 20 000 готовых материалов и текстур.

31.jpg

Последние обновления внедрили возможности на базе Firefly:

- Text to Pattern. Генерация узоров на основе текстовых запросов. Инструмент помогает быстро создавать уникальные материалы.

32.jpg

33.jpg

- Image to Texture. Преобразование реальных изображений в бесшовные текстуры. Сильно ускоряет процесс создания материалов.

34.jpg

Materialize


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


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

35.jpg

36.jpg

37.jpg

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

38.jpg

39.jpg

Вставляем изображение в Diffuse map

40.jpg

Создаём и настраиваем остальные карты

41.jpg

Получившийся материал.


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

Quixel Megascans


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

42.jpg

В экспериментальном проекте Ninety Days, созданном командой Epic Games и Quixel, более 40 типов окружений. Все текстуры, материалы и объекты были взяты из Megascans. На создание каждой локаций ушло всего несколько дней.

43.jpg

44.jpg

45.jpg

46.jpg

47.jpg

Онлайн-генераторы текстур


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

48.jpg

Polycam. Текстовый запрос.

49.jpg

Polycam. Получившиеся текстуры

50.jpg

Meshy Ai. Создание текстуры для персонажа

51.jpg

Meshy Ai. Создание текстуры в разных стилистиках


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

RTX Remix и DLSS нового поколения

С развитием технологий текстурирования появилась возможность значительно улучшать старые игры. ИИ-инструмент RTX Remix позволяет моддерам выпускать современные ремастеры игр на основе DirectX 8 и 9.

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

52.jpg

53.jpg

54.jpg

В будущем нас также ждёт следующее поколение DLSS (Deep Learning Super Sampling), которое будет использовать ИИ для генерации текстур, персонажей и объектов с нуля.

55.jpg

На Computex 2024 генеральный директор корпорации NVIDIA Дженсен Хуанг рассказал, что будущие версии DLSS смогут самостоятельно генерировать текстуры и объекты в реальном времени. Это существенно упростит работу разработчиков и повысит производительность игр. Вычисления будут выполняться на тензорных ядрах, что разгрузит основные вычислительные ядра CUDA. Хуанг упомянул, что DLSS в будущем сможет создавать NPC с уникальными характерами и диалогами.

56.jpg

Заключение


Технологии текстурирования стремительно развиваются. С постепенным внедрением ИИ-инструментов возможности художников и разработчиков становятся шире. Чтобы оставаться конкурентоспособными в этой развивающейся индустрии нужно следить за появлением новых инструментов, постоянно развивать навыки и иметь под рукой подходящее оборудование. Фрилансеры и профессионалы могут выбрать рабочие станции для решения своих задач на сайте компании DigitalRazor.

758 0 850 3
0
RENDER.RU