
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.
Оставить комментарий