Высококачественные 3D-модели, созданные ИИ
В моей работе 3D-специалиста я обнаружил, что модели, сгенерированные ИИ, являются феноменальной отправной точкой, но редко бывают готовы к использованию в реальном времени, например, в играх или XR, прямо из коробки. Ключ к успеху — это дисциплинированный рабочий процесс постобработки, который устраняет основные узкие места рендеринга в реальном времени: количество полигонов, вызовы отрисовки и память текстур. Это руководство предназначено для художников и разработчиков, которые хотят преодолеть разрыв между творческой скоростью ИИ и строгими требованиями к производительности современных движков. Я проведу вас через свой практический, пошаговый процесс превращения необработанного ассета ИИ в оптимизированную, готовую к использованию в движке модель.
Основные выводы:
Производительность в реальном времени зависит от управления тремя ключевыми ресурсами. Количество полигонов (количество треугольников) напрямую влияет на обработку вершин GPU. Для главного персонажа в мобильной игре я могу ориентироваться на 15-30 тысяч треугольников, в то время как реквизит окружения для ПК VR может быть меньше 5 тысяч. Вызовы отрисовки — это команды, отправляемые GPU для рендеринга объекта; слишком много вызовов могут сильно снизить производительность CPU. Создание экземпляров похожих объектов и объединение материалов являются критически важными стратегиями. Память текстур часто является скрытым узким местом. Одна текстура 4K использует около 90 МБ VRAM; использование текстур 2K или 1K, где это возможно, и применение атласов текстур являются обязательными привычками в моем пайплайне.
3D-генераторы ИИ, включая Tripo AI, отлично справляются с быстрым созданием детализированных форм, но это сопряжено с компромиссами. Модели, которые я генерирую, часто имеют плотную, равномерную триангуляцию, подходящую для 3D-печати или статических рендеров, а не для деформации в реальном времени. Топология может быть негерметичной (содержать отверстия или перевернутые нормали), а UV-развертки либо отсутствуют, либо хаотичны. Текстурные карты, хотя и впечатляют визуально, часто по умолчанию имеют разрешение 4K и могут содержать запечённое освещение, которое конфликтует с вашей сценой. Признание этих присущих характеристик является первым шагом к их исправлению.
Прежде чем я даже сгенерирую или обработаю модель, я определяю её бюджет производительности. Я спрашиваю: это для мобильного AR-фильтра, автономного VR-шлема или высокопроизводительной ПК-игры? Это решение устанавливает весь мой порог оптимизации. Я создаю простую справочную карточку для своего проекта: максимальное количество полигонов для каждого типа ассета, предпочтительное разрешение текстур (например, 2K для главных героев, 1K для реквизита) и целевое количество вызовов отрисовки на кадр. Наличие этого руководства не позволяет мне чрезмерно оптимизировать без необходимости или, что ещё хуже, выпускать ассеты, которые приводят к остановке частоты кадров.
Мой первый шаг всегда состоит в уменьшении количества полигонов при сохранении силуэта. Простое упрощение часто разрушает детали и создаёт плохую топологию для анимации. Вместо этого я использую интеллектуальную ретопологию. В моём рабочем процессе я начинаю со встроенных инструментов ретопологии Tripo AI, чтобы получить чистую, основанную на квадрах базовую сетку с целевым количеством полигонов. Этот автоматизированный шаг даёт мне герметичную сетку с хорошим потоком рёбер. Для органических моделей, предназначенных для риггинга, я затем импортирую эту базу в специализированный 3D-пакет для окончательной ручной доработки, обеспечивая размещение петель рёбер для правильной деформации в суставах.
Мой контрольный список ретопологии:
Детализация высокого разрешения из исходной модели ИИ не должна быть потеряна; её следует запечь. Я беру свою новую, низкополигональную ретопологизированную сетку и запекаю нормали, ambient occlusion и кривизну из исходной высокополигональной сетки. Это переносит визуальную сложность на простую текстуру, экономя миллионы полигонов. Затем я оптимизирую сами текстурные листы. Я переупаковываю UV-острова для достижения высокой плотности текселей (пикселей на единицу модели) и минимизации пустого пространства. Наконец, я уменьшаю масштаб текстур в соответствии с бюджетом моей платформы — реквизит, рассматриваемый издалека, не нуждается в нормал-карте 4K.
Если ассет должен быть анимирован, оптимизация распространяется на скелет и данные скиннинга. Для сгенерированных ИИ гуманоидов я часто использую автоматизированный шаг риггинга для создания стандартной иерархии (например, риг, совместимый с Mixamo). Критически важным следующим шагом является очистка весов скининга. Автоматические веса редко бывают идеальными. Я трачу время на прорисовку весов, чтобы обеспечить чистые деформации, что предотвращает артефакты анимации, исправление которых дорого обходится. Я также удаляю любые ненужные данные анимации или морфы, которые были получены при необработанной генерации, чтобы сохранить минимальный размер файла и накладные расходы во время выполнения.
Чистый импорт имеет решающее значение. Я всегда гарантирую, что мой экспорт FBX или GLTF включает только необходимые данные: геометрию, правильные наборы UV и материалы. При импорте в Unity или Unreal Engine моё первое действие — проверить масштаб импорта и ось направления — ошибка на этом этапе приводит к бесконечным проблемам. Затем я немедленно создаю префабы или блюпринты для инстансирования. Для статических элементов окружения я объединяю несколько сеток в один ассет, где это возможно, чтобы уменьшить количество вызовов отрисовки — техника, известная как статическое батчинг.
Системы уровней детализации (LOD) необходимы для производительности. Я создаю как минимум два дополнительных LOD (LOD1, LOD2) для любой модели, которая не является крошечным реквизитом. Я генерирую их, постепенно упрощая уже ретопологизированную сетку, а не исходную плотную сетку ИИ. Ключевым моментом является сохранение UV-развертки на всех LOD, чтобы работали одни и те же текстурные карты, избегая сбоев потоковой передачи текстур. В движке я устанавливаю расстояния перехода LOD на основе размера объекта на экране, а не только расстояния, для более последовательной экономии производительности.
Сложные, многослойные материалы — это распространённая ловушка для производительности. Моё правило — использовать самый простой шейдер, который достигает визуальной цели. Для большинства ассетов достаточно стандартного PBR-материала (Metallic/Roughness). Я объединяю текстурные карты (например, упаковываю Roughness и Metallic в G и B каналы одной текстуры), чтобы уменьшить количество выборок текстур. Я также тщательно настраиваю правильные смещения мипмапов и параметры сжатия (например, ASTC для мобильных устройств) при импорте для эффективного управления памятью текстур.
Полностью ручная ретопология в таких инструментах, как Blender или Maya, предлагает максимальный контроль и по-прежнему является моим предпочтительным выбором для главных персонажей, где важен каждый цикл рёбер. Однако это занимает слишком много времени для большинства проектов. Автоматическая ретопология, например, инструменты, встроенные в Tripo AI или другие автономные процессоры, обеспечивает отличное решение на 80-90% за считанные секунды. На практике я использую автоматизацию для основной части работы — генерации чистой базовой сетки — а затем переключаюсь на ручной режим для тонкой настройки только самых критических областей, достигая лучшего баланса скорости и качества.
Ландшафт оптимизации предлагает широкий спектр возможностей. Встроенные инструменты ИИ (например, в Tripo AI) невероятно эффективны для оптимизированного рабочего процесса на одной платформе. Они позволяют мне генерировать, ретопологизировать и текстурировать ассет в целостной среде, что идеально подходит для быстрого прототипирования или проектов с постоянными требованиями к стилю. Автономное 3D-программное обеспечение (например, Blender, 3ds Max, ZBrush) предлагает более глубокий, более детальный контроль для сложных случаев, создания ассетов для нескольких платформ или при интеграции с сильно настраиваемым студийным пайплайном. Я выбираю на основе сложности проекта и требуемой точности.
Вот моя система принятия решений для выбора пути оптимизации:
Цель никогда не состоит в том, чтобы просто сделать модель легче; она состоит в том, чтобы сделать её производительной при сохранении её художественного замысла. Интегрируя эти шаги оптимизации непосредственно в ваш пайплайн ИИ-в-движок, вы превращаете необработанную скорость генерации в реальное, развёртываемое создание ассетов.
moving at the speed of creativity, achieving the depths of imagination.
Текст и изображения в 3D-модели
Бесплатные кредиты ежемесячно
Максимальная детализация