По моему опыту, создание USDZ-файла, который безупречно работает в iOS Quick Look, меньше связано с художественным совершенством и больше — со строгим техническим соответствием. Я понял, что успех зависит от соблюдения лимитов производительности Apple для количества полигонов, размеров текстур и форматов файлов. Это руководство предназначено для 3D-художников и разработчиков, которым нужны надежные AR-предпросмотры и которые хотят избежать распространенных ошибок при экспорте и валидации, с которыми я сталкивался.
Основные выводы
usdzconvert и Reality Converter необходимы для проверки соответствия перед тестированием на устройстве.Правильное понимание основных спецификаций — это основа. Игнорирование их гарантирует неудачный или некачественный AR-предпросмотр.
Я рассматриваю полигональный бюджет в 100 000 треугольников как жесткий потолок для надежной работы в Quick Look. Для большинства предпросмотров продуктов или ассетов я стремлюсь к 50–80 тысячам. Я обнаружил, что плотность треугольников важнее, чем их общее количество; избегайте длинных, тонких треугольников и убедитесь, что ваша сетка является многообразной (водонепроницаемой) с чистой топологией. Незамкнутая геометрия — такая как случайные вершины, внутренние грани или перевернутые нормали — является наиболее частой причиной невидимых или поврежденных моделей в AR.
В своем рабочем процессе я начинаю с готовой к производству модели и создаю специальную, упрощенную версию для экспорта в USDZ. Я сосредоточен на уменьшении детализации в областях, которые не будут видны при типичном AR-осмотре, например, на нижней стороне объекта или во внутренних полостях. Эта проактивная ретопология экономит время по сравнению с попытками децимации плотной сетки позже.
Quick Look поддерживает стандартный PBR (Physically Based Rendering) рабочий процесс с металлическим блеском и шероховатостью. Я использую исключительно следующие карты текстур: Base Color, Normal, Metallic и Roughness. Избегайте рабочих процессов с отражательной способностью/глянцем, так как они не поддерживаются изначально и не будут отображаться корректно.
Все текстуры должны быть квадратными и иметь размер, кратный степени двойки (например, 1024x1024, 2048x2048). Я никогда не превышаю 2048x2048; для большинства объектов 1024x1024 вполне достаточно и позволяет уменьшить размер файла. Формат файла критичен: используйте .png для Base Color и Normal карт, и .png или одноканальный .jpg для Metallic и Roughness карт. Неправильные форматы текстур являются основной причиной того, что материалы выглядят поврежденными в предпросмотре.
Хотя задокументированного абсолютного максимума нет, я считаю 10 МБ безопасной целью для мгновенной загрузки. Файлы до 30 МБ могут загружаться, но вызовут заметную задержку, что ухудшит пользовательский опыт. Основными факторами, влияющими на размер файла, являются разрешение текстур и, в меньшей степени, количество полигонов.
Мое правило — сначала уделять приоритетное внимание оптимизации текстур. Сжатие текстуры 2K до 1K часто уменьшает размер файла примерно на 75% с минимальной потерей качества изображения для AR-просмотра на мобильном экране. Я также удаляю все ненужные данные из экспорта — пользовательские свойства, неиспользуемые наборы UV и скрытые слои — поскольку эти метаданные могут раздувать файл.
Дисциплинированный конвейер экспорта и валидации предотвращает разочаровывающую отладку в последний момент.
Мой процесс экспорта методичен. Сначала я убеждаюсь, что моя сцена содержит только модель для предпросмотра, со всеми замороженными преобразованиями и центрированной точкой опоры. Затем я применяю все модификаторы и триангулирую сетку, так как USDZ требует треугольных полигонов. Например, когда мне нужно быстро сгенерировать чистую базовую модель, я могу использовать Tripo AI из эскиза концепта, так как ее вывод обычно хорошо структурирован и готов к этапу оптимизации и экспорта.
Экспорт — это только половина дела. Я немедленно проверяю файл с помощью командной строки Apple usdzconvert с флагом -validate (например, usdzconvert myModel.usdz -validate). Этот инструмент предоставляет конкретные сообщения об ошибках, касающиеся неподдерживаемых шейдеров, форматов текстур или проблем с геометрией. В качестве альтернативы GUI я использую Reality Converter для открытия USDZ; он часто показывает предупреждения или ошибки при импорте.
Наиболее частые ошибки, которые я исправляю:
Оптимизация — это то, что отличает рабочий USDZ от высококачественного, быстро загружаемого.
Я не просто децимирую; я ретопологизирую для ясности. Мой процесс включает уменьшение петель в плоских областях, сохранение контуров и поддержание чистого потока ребер. Для моделей с твердыми поверхностями я использую инструменты для ограничения ребер, которые я хочу сохранить острыми. Цель состоит в том, чтобы получить легкую сетку, которая при текстурировании все равно выглядит идентично высокополигональной версии, с учетом ожидаемого расстояния просмотра в AR.
Я запекаю детали моей высокополигональной модели на UV-карты низкополигональной сетки. Это обеспечивает визуальную точность сложной модели с производительностью простой. Затем я оптимизирую атласы текстур:
Последний, обязательный шаг — тестирование на физическом iPhone или iPad. Я передаю проверенный USDZ через AirDrop, iCloud Drive или электронную почту. Я нажимаю на файл и выбираю «Quick Look». Я проверяю:
Когда вы выходите за рамки статических моделей, сложность возрастает.
Quick Look поддерживает скелетные (на основе суставов) и морф-анимации (blend shape). Мой подход заключается в запекании всех анимаций в USDZ. Я экспортирую один USDZ-файл, содержащий запеченную последовательность анимации. Для риггированных персонажей я убеждаюсь, что скининг чист, а иерархия суставов проста. Сложные IK-риги или динамические симуляции обычно необходимо предварительно запекать в ключевые кадры.
Самый надежный метод — прямой экспорт из основных DCC-инструментов (Blender, Maya) с использованием USD-плагинов Apple. Онлайн-конвертеры могут быть заманчивыми своей простотой, но я обнаружил, что они часто не справляются со сложными материалами или анимациями. Для быстрого прототипирования я иногда использую Tripo AI для создания базового 3D-ассета из изображения, так как он выводит чистую, текстурированную модель, которая уже находится в хорошем начальном состоянии для моего рабочего процесса оптимизации и экспорта USDZ, экономя время на начальное моделирование.
Каждая неудача чему-то меня учила. Модель, загружающаяся как гигантская, обычно означает, что сцена не была масштабирована до метров. Черная или невидимая модель почти всегда указывает на неразъемную геометрию или некорректные нормали. Крупные, пиксельные текстуры означают, что файлы текстур не были должным образом встроены или имеют неправильный формат. Решение всегда систематическое: проверьте файл, проверьте основные требования и тестируйте рано и часто на устройстве.
moving at the speed of creativity, achieving the depths of imagination.
Текст и изображения в 3D-модели
Бесплатные кредиты ежемесячно
Максимальная детализация