Сцена как USD-stage
В Solaris художник собирает сцену слоями, подключает геометрию и материалы, задаёт освещение и параметры рендера. Это отличается от экспорта одного монолитного файла в конце работы. Для сложного проекта важно понимать, в каком слое записана правка и какое мнение в USD имеет приоритет. Неправильное назначение материала или невидимый prim может выглядеть как ошибка рендерера, хотя причина находится в композиции сцены.
Как работают устройства XPU
Документация описывает Embree для CPU и OptiX для NVIDIA GPU. XPU способен использовать несколько совместимых устройств; если одно из них прекращает работу, например из-за нехватки памяти, остальные могут продолжить расчёт. Однако VRAM карт не суммируется в общий пул. Это важное различие между распределением вычислений и размещением данных.
При первом запуске компилируются специфичные для устройства шейдеры. Поэтому холодный старт и повторный рендер одной сцены не следует сравнивать как одинаковые тесты. Для производственного замера полезно записать оба времени: подготовку окружения и собственно расчёт.
MaterialX и границы переносимости
SideFX рекомендует Karma Material Builder для совместимых узлов XPU. Чисто MaterialX-сеть и сеть с Karma-специфичными дополнениями имеют разную степень переносимости. Старый Principled Shader на VEX может не работать либо оказаться приближённо преобразованным в ограниченный USD Preview Surface. Поэтому корректный путь миграции — пересмотреть шейдерную библиотеку, а не рассчитывать на совпадение названий.
Открытый формат сам по себе не гарантирует одинаковых пикселей в разных движках. Значение имеют реализованные узлы, поддержка геометрии, цветовые настройки и конкретная версия MaterialX. Документация Solaris отдельно перечисляет ограничения некоторых параметров и объёмных материалов.
Сильная сторона в пайплайне
Практическая оценка. Karma особенно логично рассматривать в проекте, где Houdini уже отвечает за процедурную геометрию, FX и сборку сцен в Solaris. В таком случае меньше переходов между несогласованными представлениями данных. Для художника, которому нужен один интерьер без USD-инфраструктуры, освоение Solaris может быть большей затратой, чем настройка света в знакомом DCC.
Почему CPU не заменяется автоматически
SideFX прямо называет XPU альтернативой Karma CPU с собственным набором функций, а не полностью тождественной заменой. Проверять нужно материалы, объёмы, волосы, требуемые выходные данные и особенности экземпляров. Отдельно оценивайте целевую платформу: поддержка viewport Houdini через другой API не означает наличие подходящего GPU для XPU.
Сбой на тяжёлом устройстве может не остановить кадр, но всё равно существенно изменить время расчёта. Производственная диагностика должна учитывать активные устройства и сообщения о памяти, а не только факт появления готовой картинки.
Рабочая последовательность
- Соберите USD-stage и проверьте композицию слоёв.
- Создайте материалы в выбранном совместимом builder.
- Выберите CPU или XPU, проверьте реальные устройства и предварительную компиляцию.
- Проведите тест трудных материалов, FX и кадров движения.
- Зафиксируйте настройки Karma, ресурсы USD и окружение расчётного узла.
Если понадобится другой renderer delegate, начинайте проверку с небольшого USD-ассета. Это обнаружит расхождения до переноса целой последовательности.
Пример: материал потерялся после сборки USD
Если объект в Solaris внезапно получил другой материал, начинать диагностику лучше со структуры USD-stage. Проверьте путь примитива, итоговый material binding и слой, который его переопределяет. Затем рассмотрите render context и совместимость узлов с выбранным CPU/XPU. Изменение sampling не восстановит отсутствующее назначение материала. Полезно временно выделить один проблемный примитив в небольшую сцену и сохранить набор участвующих слоёв. Так становится ясно, вызвана ли ошибка композицией USD, шейдингом или переводом сцены в renderer. После исправления нужно открыть сборку в том же контексте, в котором запускается пакетный рендер. Смысл такого примера — разделить ответственность данных и вычислений, чтобы повторное сохранение большой сцены не заменяло понимание причины сбоя.