В Alembic появилась поддержка «слоёв»

Alembic

Lucasfilm и Sony выпустили открытую библиотеку Alembic 1.7, в которой появилась поддержка наслоения данных.

Формат и API были расширены Лукасом Миллером (Sony Pictures Imageworks) совместно с командой из Blizzard Cinematics. В случае с Blizzard логика была следующей: для производства контента им был нужен формат внутреннего кэширования, который объединял бы несколько файлов для одной логической единицы. Например, для определенного меша топология читалась бы из одного файла, UV — из другого, параметры анимации — из третьего.

При наслоении в разные файлы Alembic пишется небольшая дополнительная информация, а затем при чтении эти файлы объединяются через AbcCoreLayer.

Разработчики приводят ещё несколько примеров того, как можно использовать AbcCoreLayer:

  • добавлять данные UV в полигональную сетку, где их ещё нет;
  • принудительно менять статичные точки полигональной сетки на анимированные;
  • добавлять новые объекты в существующую иерархию;
  • удалять ненужные объекты и целые ветви иерархии;
  • удалять некорректные нормали;
  • заменять отдельные группы кривых одной большой группой;
  • одним махом заменять серию заказных параметров (user properties), не ковыряясь отдельно с каждым.

В AbcExport появилась поддержка записи только данных UV (с флагами -uvsonly или -uvo). Добавлена утилита AbcDiff, которая генерирует : Given 2 Alembic files, create a sparse diff between them.

Кроме того, в релиз попал (улучшенный разработчиками Alembic) патч от SideFX, который позволяет уменьшать время записи данных за счёт уменьшения количества вызовов. Эффект больше всего заметен при большом количестве трансформаций (100 тысяч и больше) и записи на сетевой том (NFS). Например, в одном случае скорость записи выросла с 26 минут до 10 секунд.

Исходный код новой версии доступен на Github.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*