Программное обеспечение для 3D-моделирования с ИИ
В моей производственной работе запекание карт кривизны и толщины является обязательным шагом, который превращает сырую 3D-модель, сгенерированную ИИ, в готовый к производству актив. Я обнаружил, что, хотя генераторы ИИ, такие как Tripo, могут создать базовую сетку за секунды, эти карты необходимы для добавления интеллектуальных свойств материала и деталей поверхности, которые делают объект реалистичным. В этой статье подробно описан мой практический рабочий процесс по устранению разрыва между выводом ИИ и окончательным рендером, с акцентом на практические шаги для художников, которым необходимо интегрировать модели ИИ в игровые движки, VFX-конвейеры или приложения реального времени.
Основные выводы:
Когда я беру модель непосредственно из генератора 3D-моделей ИИ, она обычно представляет собой плотную, триангулированную сетку с данными о цвете вершин или базовой текстурой. Чего почти всегда не хватает, так это геометрических данных, которые шейдеры используют для создания правдоподобного взаимодействия поверхности. У модели есть форма, но нет присущей ей «истории» ее поверхности — где края изношены, где материал толстый или тонкий, или как свет улавливает тонкие выпуклости и вогнутости. Без карт кривизны и толщины мои материалы выглядят плоскими и однородными, им не хватает естественных вариаций, которые придают реализм.
Запекание рассчитывает эту недостающую информацию. Карта кривизны (или производная от Ambient Occlusion) хранит вогнутость и выпуклость поверхности в виде оттенков серого. Карта толщины хранит, насколько «глубока» модель в любой заданной точке, рассчитывается путем трассировки лучей через сетку. В моем конвейере это не просто красивые детали; это управляющие карты. Я подаю их в свои PBR-шейдеры, чтобы управлять накоплением грязи в щелях, износом краев на острых углах и реалистичной передачей света в тонких областях, таких как уши или листья. Они превращают обычную сетку ИИ в объект с логикой материала.
Прежде чем я даже подумаю о запекании, я провожу быструю диагностику. Моя первая остановка — топология и масштаб модели.
Подготовка — это 80% успешного запекания. Для модели из Tripo я начинаю с ее дублирования, чтобы создать высокополигональную и низкополигональную версии. Высокополигональная версия является моим источником деталей; иногда это исходная сетка ИИ, но если она слишком триангулирована, я могу использовать модификатор подразделения для ее сглаживания. Низкополигональная версия — это моя сетка для рендеринга. Я часто использую встроенные инструменты ретопологии Tripo, чтобы создать чистую, основанную на квадрах низкополигональную модель с хорошими UV-координатами. Главное — убедиться, что обе сетки занимают одно и то же 3D-пространство.
Мой предзапекающий контрольный список:
Я работаю в Blender, Substance Painter или Marmoset Toolbag для запекания. Принципы те же. Я импортирую как свою высокополигональную, так и низкополигональную сетки. В настройках запекателя я назначаю высокополигональную сетку в качестве источника, а низкополигональную — в качестве цели. Для кривизны я обычно запекаю карту Ambient Occlusion с очень малым расстоянием поиска (например, 0.1-0.5 см), что эффективно улавливает вогнутость поверхности. Для толщины я использую специализированный запекатель Thickness, устанавливая высокое количество лучей (32-64) для получения чистого результата.
Критические настройки, которые я всегда регулирую:
После первого запекания я тщательно изучаю карты. Распространенные проблемы включают искривление (клетка не обхватывала правильно), промахи лучей (черные пятна, где лучи толщины не попали) и просачивание швов (детали с одного UV-острова просачиваются в другой). Мой процесс исправления итеративен: отрегулируйте клетку, увеличьте расстояние луча или добавьте отступ в UV-редакторе. Для постоянных проблем с моделью ИИ я часто возвращаюсь и сглаживаю неестественно шумную топологию на высокополигональном источнике, так как ИИ иногда может создавать поверхностные «пузыри», которые сбивают с толку запекателя.
Топология, сгенерированная ИИ, может быть беспорядочной. Она часто не скульптурируется, а выводится, что приводит к неравномерному распределению треугольников и микроскопическому шуму на поверхности. Перед запеканием я применяю небольшой проход сглаживания или очень мягкое перестроение сетки к высокополигональной модели только если потеря деталей приемлема. Цель состоит в том, чтобы удалить шум запекания, а не художественные детали. Я также выполняю специальную операцию "Make Manifold"; негерметичные ребра являются единственной самой большой причиной неудачных запеканий, по моему опыту.
Модели ИИ не понимают UV-пространство. Когда я использую автоматически ретопологизированную сетку из Tripo, UV-координаты функциональны, но могут быть неоптимальными. Я всегда упаковываю свои UV-острова, чтобы обеспечить постоянную плотность текселей — это означает, что каждый полигон получает одинаковое количество разрешения текстуры. Текстурная карта 4k тратится впустую, если 90% ее занято одним маленьким, плотно упакованным UV-островом, в то время как остальная часть модели сжата в угол. Постоянная плотность гарантирует, что мои детали кривизны и толщины будут четкими и однородными по всей модели.
Когда я генерирую несколько вариантов активов — например, серию камней или научно-фантастических панелей — я автоматизирую запекание. Я настраиваю одну оптимизированную предустановку запекания в своем программном обеспечении. Затем я убеждаюсь, что все мои модели, сгенерированные ИИ, экспортированы с согласованными соглашениями об именовании (например, assetname_high, assetname_low) и масштабом. Затем я могу использовать инструменты пакетного запекания, часто подавая им простую электронную таблицу или список папок. Это превращает задачу для каждого актива в процесс одним щелчком мыши для всей библиотеки, где генерация ИИ действительно сияет.
В моем шейдере (в Unreal Engine, Unity или Blender Cycles) я подключаю карту кривизны в качестве маски. Я обычно инвертирую ее, чтобы белый цвет представлял выпуклые края. Затем я использую эту маску для:
Карта толщины бесценна для органических или полупрозрачных материалов. Я использую ее для управления:
Я не использую эти карты изолированно. Мой стандартный мастер-шейдер PBR имеет входы для базового цвета, металличности, шероховатости и нормалей. Я создаю пользовательскую функцию или группу узлов, где мои карты кривизны и толщины взаимодействуют с этими основными каналами. Например, Final Roughness = Base Roughness Texture + (Curvature Map * 0.2). Это означает, что края автоматически становятся немного более шероховатыми. Встраивая эти отношения в мой шаблон шейдера, каждая модель ИИ, которую я запекаю и импортирую, автоматически получает слой физической правдоподобности.
Для быстрого прототипирования, визуализации концепций и заполнения окружения второстепенными активами рабочий процесс от ИИ до запекания не имеет себе равных. Я могу сгенерировать модель из текстового запроса в Tripo, ретопологизировать, запечь и получить текстурированный актив в PBR-рендерере менее чем за 30 минут. Это позволяет невероятно быстро выполнять итерации. Если режиссер хочет «больше деталей» или «более гладкую форму», я могу сгенерировать новый вариант и повторить процесс быстрее, чем я смог бы даже вручную заблокировать базовую сетку.
Компромисс заключается в абсолютном контроле. Модель, которую я скульптурирую с нуля в ZBrush, имеет преднамеренную, управляемую художником топологию и иерархию деталей. Каждая складка и выпуклость расположены с определенной целью. Детали модели ИИ являются статистическими, выведенными из ее обучающих данных. Для главного персонажа или ключевого кинематографического актива это отсутствие прямого контроля на микроуровне может быть ограничением. Запекание из модели ИИ фиксирует то, что есть, а не обязательно то, что художник мог бы подчеркнуть для повествования.
Моя матрица решений проста:
moving at the speed of creativity, achieving the depths of imagination.
Текст и изображения в 3D-модели
Бесплатные кредиты ежемесячно
Максимальная детализация