Текстурирование — ключевой процесс в 3D-графике, который добавляет моделям детали и материалы, делая их правдоподобными. Текстуры отвечают за цвет, рельеф, блеск, отражения и множество других характеристик объектов. Без качественных текстур даже самая детализированная 3D-модель выглядела бы плоской и неестественной.
В материале рассмотрим эволюцию текстурирования, основные методы создания текстур и будущее, где искусственный интеллект станет важной частью этого процесса.
Краткая история текстурирования
В 90-е годы, на заре развития 3D-графики в видеоиграх, текстуры были низкого разрешения, а тени и освещение часто прорисовывались вручную. На консолях Sony PlayStation и Nintendo 64 текстуры использовали для изображения базовых цветов и простых узоров. Метод был далёк от реализма, так как не учитывал физических свойств материалов.
С развитием технологий текстурирование прошло через несколько важных этапов. В эпоху PS2 и Xbox появилось динамическое освещение и текстуры более высокого разрешения. Например, в игре Silent Hill 2 впервые были применены динамические тени, что делало атмосферу игры более жуткой и реалистичной. Это стало прорывом для того времени.
PBR (Physically Based Rendering)
Но самый значительный технологический прорыв произошёл с появлением PBR. Это стало ключевым этапом в развитии материалов и установило новый стандарт.
PBR — метод рендеринга, который основан на физических принципах взаимодействия света с различными материалами. Цель PBR — получить реалистичные результаты независимо от условий освещения.
PBR-материалы состоят из карт, которые управляют различными свойствами материала.
Материалы делятся на металлы и неметаллы (диэлектрики):
- Неметаллы обладают низкой отражательной способностью. Например, дерево, картон или пластик.
- Металлы имеют высокую отражательную способность и отражают от 50 до 100% света.
Основные рабочие процессы PBR
Specular (Спекулярный) — в этом процессе используются карты Diffuse, Specular и Glossiness для управления параметрами материала. Процесс предлагает больше возможностей для настройки. Но считается менее оптимизированным, так как сильнее грузит систему.
Metallic (Металлический) — более оптимизированный и интуитивный метод, который использует карты BaseColor, Metallic и Roughness. Считается более подходящим для новичков. Оказывает меньшую нагрузку на систему.
В обоих процессах можно использовать дополнительные карты, такие как Ambient Occlusion (AO), Normal Map и Bump Map.
Выбор процесса зависит от целей и задач, а также от программного обеспечения, с которым планирует работать художник.
Существуют и другие способы текстурирования, которые не требуют высокой реалистичности. Например, в проектах, где важна стилизация, излишняя детализация и реалистичность могут нарушить общий визуальный стиль.
Основные текстурные карты
BaseColor / Albedo / Diffuse Map — отвечает за цвет материала. Различия в названиях карты связаны лишь с разными рабочими процессами.
В традиционных рабочих процессах Diffuse Map содержала информацию о цвете, тенях и освещении. Это создавало сложности при добавлении новых источников света в сцену. Для решения проблемы используют Albedo Map, которая содержит информацию лишь о цвете.
В металлическом рабочем процессе используется BaseColor Map, которая содержит цвета как для металлов, так и для неметаллов.
Specular Map — управляет отражательной способностью материала. Значение 0 полностью блокирует отражение света, а значение 1 делает поверхность отражающей.
В реальном мире у всех объектов есть зеркальные отражения (specular). Даже у таких материалов, как ткань и картон. Вот ссылка на эксперимент с использованием самодельного поляризованного освещения, который наглядно это демонстрирует.
Metallic Map — отвечает за «металличность» материала. В большинстве случаев принимает одно из значений: либо металл, либо — неметалл.
В одном материале могут сочетаться металл и неметалл. Например металлическая деталь, покрытая слоем краски. Краска — неметалл, поэтому значение Metallic для неё нужно выставить 0, а для основной детали значение должно быть 1.
Делается это с помощью черно-белой маски, где чёрное — это значение «металл», а белое — «неметалл».
Roughness / Glossiness Map — параметр, который отвечает за то, насколько шероховатой или гладкой будет поверхность. От него зависят резкость и размытость отражений на материале. Гладкие поверхности отражают свет более равномерно, что приводит к чётким отражениям и зеркальным бликам. Шероховатая поверхность рассеивает отражённый свет в большем количестве направлений, поэтому блики на поверхности сильнее размыты.
Bump Map — чёрно-белая карта, которая используется для имитации рельефа на поверхности. Светлые участки текстуры показывают выпуклости, а тёмные — впадины.
Normal Map — более продвинутая цветная карта, содержащая информацию о направлениях нормалей поверхности. Она позволяет гораздо точнее симулировать взаимодействие света с объектом, создавая детализированный рельеф. Существует ещё несколько типов Normal-карт. Например, Tangent Space, Object Space и World Space, которые различаются системами координат, на которые они опираются. Наиболее популярной является Tangent Space, которая имеет синие и розовые оттенки.
Обе технологии оказались революционными для своего времени. Они не влияют на геометрию объекта, а лишь создают иллюзию объема. Это позволяет добавлять детали, не увеличивая количество полигонов, что позволяет избежать большой нагрузки на CPU и GPU.
Пример того, как карты ведут себя на плоской поверхности:
Процесс создания Normal-карты обычно выглядит так:
- Создается высокополигональная модель (Hight Poly).
- Модель проходит процесс ретопологии (Low Poly).
- Все детали с HP «запекаются» на LP-модель и помещаются в Normal-карту.
Displacement Map — карта, которая действует схожим образом, но меняет геометрию объекта, а не создаёт иллюзию. Для работы с ней нужно большое количество полигонов, чтобы результат был более детализированным.
Height Map — похожа на Displacement, но обычно используется для хранения информации о высоте и глубине. А не для непосредственного изменения геометрии. Она часто сглажена и содержит меньше микродеталей. Обычно эта карта используется для генерации ландшафтов, а также создания масок.
Ambient Occlusion Map (AO) — представляет области, где окружающий свет блокируется. Например, в трещинах или местах контакта объектов. Эта карта снижает влияние окружающего света на затемнённые области, создавая более реалистичную игру света и тени. AO-карта влияет только на диффузные отражения, но не затрагивает другие источники света.
Cavity Map — похожа на AO-карту, но работает только с небольшими зазорами и может блокировать как диффузные, так и спекулярные отражения.
Curvature Map — хранит информацию о вогнутости и выпуклости сетки в градациях серого. Она используется в качестве маски для упрощения покраски текстур:
- Серый цвет — плоские участки.
- Белый — выпуклые участки.
- Чёрный — вогнутые участки.
Emissive Map — цветовая карта свечения материала.
Opacity Map — карта, которая контролирует прозрачность объекта. Чёрный цвет обозначает 0% прозрачности, белый — 100%, а серые тона — переходы.
Translucency Map — используют для передачи свойств полупрозрачных материалов, когда свет проходит через объект. Это упрощённая версия эффекта Subsurface Scattering, который симулирует рассеивание света внутри объекта.
Инструменты для текстурирования
Для работы с текстурами используют различные программы, выбор которых зависит от проекта. В статье затронем лишь несколько основных приложений, в том числе имеющих в своём арсенале возможности на базе ИИ.
Adobe Substance Painter
Один из наиболее мощных инструментов для создания PBR-текстур. Он позволяет художникам возможность видеть результат в реальном времени и при различных условиях освещения. Это значительно ускоряет процесс и улучшает контроль над качеством текстур.
В Substance Painter активно используются умные материалы и маски. Инструмент отлично подходит для создания текстур сложных объектов, персонажей и окружения.
Его преимущества:
1. Интерактивность. Все изменения отображаются в реальном времени.
2. Поддержка слоёв. Прямо как в Photoshop. Каждый элемент текстуры создаётся на отдельном слое, что позволяет с легкостью вносить изменения.
3. Интеграция с другими программами. Поддерживает импорт файлов из других программ. В недавнем обновлении добавили возможность импортировать векторные файлы прямо в проект без конвертации, что особенно удобно для работы с различными декалями.
4. Библиотека 3D-ресурсов. Доступ к библиотеке Adobe, которая содержит более 20 000 готовых материалов и текстур.
Последние обновления внедрили возможности на базе Firefly:
- Text to Pattern. Генерация узоров на основе текстовых запросов. Инструмент помогает быстро создавать уникальные материалы.
- Image to Texture. Преобразование реальных изображений в бесшовные текстуры. Сильно ускоряет процесс создания материалов.
Materialize
Инструмент для создания материалов на основе изображения. Он также позволяет импортировать имеющиеся текстуры и генерировать необходимые карты (альбедо, нормали, карты высот и т. д.). Materialize особенно полезен для создания бесшовных текстур, что делает его идеальным инструментом для работы с большими поверхностями в играх.
Основное преимущество программы в том, что материал можно сделать на основе изображения из любого источника. Например, берём любую текстуру в Интернете и делаем из неё готовый материал для проекта.
Чтобы не тратить деньги на покупку чужих текстур, можно сгенерировать изображение в нейросети.
Совмещая ручную настройку и генерацию в нейросети, можно добиться совершенно разных и необычных результатов.
Quixel Megascans
Огромная библиотека фотореалистичных текстур и материалов, которые используются в видеоиграх и других медиа для создания реалистичных окружений.
В экспериментальном проекте Ninety Days, созданном командой Epic Games и Quixel, более 40 типов окружений. Все текстуры, материалы и объекты были взяты из Megascans. На создание каждой локаций ушло всего несколько дней.
Онлайн-генераторы текстур
В ближайшем будущем искусственный интеллект значительно повлияет на процесс создания текстур. Уже сегодня, чтобы сделать простой материал не обязательно устанавливать какой-то специальный софт. Ведь существуют онлайн-решения, работать с которыми можно прямо в браузере. Например, можно использовать нейросети Meshy Ai и Polycam.
Результат такой генерации, честно говоря, пока оставляет желать лучшего. Однако он ясно демонстрирует, какие возможности откроются перед нами в ближайшие несколько лет.
RTX Remix и DLSS нового поколения
С развитием технологий текстурирования появилась возможность значительно улучшать старые игры. ИИ-инструмент RTX Remix позволяет моддерам выпускать современные ремастеры игр на основе DirectX 8 и 9.
Ключевая особенность RTX Remix — использование тензорных ядер RTX-видеокарт для улучшения текстур с низким разрешением. ИИ способен повысить их детализацию в четыре раза. Инструмент также поддерживает физически корректный рендеринг (PBR). Так старые текстуры правильно реагируют на свет, а трассировка лучей обеспечивает реалистичные освещение и отражения.
В будущем нас также ждёт следующее поколение DLSS (Deep Learning Super Sampling), которое будет использовать ИИ для генерации текстур, персонажей и объектов с нуля.
На Computex 2024 генеральный директор корпорации NVIDIA Дженсен Хуанг рассказал, что будущие версии DLSS смогут самостоятельно генерировать текстуры и объекты в реальном времени. Это существенно упростит работу разработчиков и повысит производительность игр. Вычисления будут выполняться на тензорных ядрах, что разгрузит основные вычислительные ядра CUDA. Хуанг упомянул, что DLSS в будущем сможет создавать NPC с уникальными характерами и диалогами.
Заключение
Технологии текстурирования стремительно развиваются. С постепенным внедрением ИИ-инструментов возможности художников и разработчиков становятся шире. Чтобы оставаться конкурентоспособными в этой развивающейся индустрии нужно следить за появлением новых инструментов, постоянно развивать навыки и иметь под рукой подходящее оборудование. Фрилансеры и профессионалы могут выбрать рабочие станции для решения своих задач на сайте компании DigitalRazor.