Alembic

З Alembic home page:

Alembic (буквально – «перегонник», «дистилятор») – це відкрита структура взаємообміну даними у комп’ютерній графіці. Alembic переганяє складні, анімовані сцени у не-процедурний, незалежний від застосунку набір запечених геометричних результатів. Це «переганяння» сцен у запечену геометрію є точним аналогом перегонки освітлення та рендерингу сцен у рендерені дані зображення.

Alembic орієнтований на ефективне збереження обчислених результатів складних процедурних геометричних конструкцій. Це дуже конкретно не стосується зберігання складного графа залежностей процедурних інструментів, що використовуються для створення обчислених результатів. Наприклад, Alembic ефективно зберігатиме позиції анімованих вершин та анімовані трансформації, що є результатом довільно складної анімації та процесу імітації, які можуть включати обгортання, коригувальні форми, імітації зі збереженням об’єму, імітації тканини та тіла тощо. Alembic не намагатиметься зберігати представлення мережі обчислень (в основному, оснасток), які вимагаються для продукування фінальних позицій анімованих вершин та фінальних анімованих трансформацій.

TL;DR: Alembic can be used to write an animated mesh to a drive, and read it back quickly and efficiently. This means that a mesh can be animated with a very CPU-intensive rig, „baked“ to an Alembic file, and loaded into the shot file for shading and lighting with only moderate CPU usage.

Підтримка для формату файлів Alembic була уведена у Blender 2.78.

Через відкрито джерельну – Open Source – природу стандарту Alembic, а також через те, що його бібліотека на С++ імплементована у цей стандарт, Blender може використовуватися у гібридному конвеєрі. Наприклад, інші програми, такі як Houdini або Maya, можуть експортувати файли в Alembic, що далі може бути завантажено, відтінено та рендерено у Blender’і. Також можливим є анімування персонажів (або інших моделей) у Blender’і, далі експорт в Alembic та завантаження цих файлів в іншому застосунку для подальшої обробки.

Експорт у Файли Alembic – Exporting to Alembic Files

Ця секція описує вплив різних варіантів експорту.

Трансформа Вручну – Manual Transform

../../_images/files_import-export_alembic_export-panel-scene-options.png

Опції експорту в Alembic.

Масштаб – Scale

Це задає глобальний масштаб для файлу Alembic. Зберігайте для нього стандартне значення 1.0, щоб використовувати одиниці Blender’а.

Опції Сцени – Scene Options

Стартовий Кадр – Start Frame та Кінцевий Кадр – End Frame

Задає діапазон кадрів для експорту в Alembic. Це стандарти для діапазону кадрів поточної сцени.

Відбір Під-кадрів – Sub-frame Sampling

Ці опції керують відбором підкадрів в анімаціях.

Вибірки Трансформ – Transform Samples

Вибірки Трансформацій – Transform Samples задає кількість разів за кадр, якими відбираються анімовані трансформації та записуються в Alembic.

Вибірки Геометрії – Geometry Samples

Вибірки Геометрії – Geometry Samples задає кількість тих же разів за кадр, але для анімованої геометрії.

Відкриття/Закриття Затвору – Shutter Open/Close

Відкриття Затвору – Shutter Open та Закриття Затвору – Shutter Close визначають інтервал [відкриття, закриття], упродовж якого беруться ці вибірки. Допустимий діапазон – від -1 до 1, де -1 вказує на попередній кадр, 0 вказує на поточний кадр та 1 вказує на наступний кадр.

Наприклад, якщо бажана інформація для деталізованого розмиву рухом сіті, то деякі підкадри навколо поточного кадру можуть бути записані в Alembic, використовуючи в рахунку вибірок числа 5, Shutter Open як -0.25 та Shutter Close як 0.25. Це імітує «180 градусний» затвор, відкриття на 90 градусів перед цим кадром та закриття на 90 градусів після цього кадру.

Лише Вибрані Об’єкти – Selected Objects Only

При увімкненні, експортує тільки поточно вибрані об’єкти. При вимкненні, усі об’єкти будуть експортовані.

Лише Рендероздатні Об’єкти – Renderable Objects Only

Це корисно для, наприклад, запобігання експортуванню кастомних форм кісток.

Visible Objects Only

Limits the export to scene collections that are currently visible.

Випрямлена Ієрархія – Flatten Hierarchy

When disabled, parent/child relations between objects are exported too. Any parent object that is not exported itself, but with children that are exported, is replaced by an empty. When enabled, parent/child relations are not exported, and transformations are all written in world coordinates.

Опції Об’єкта – Object Options

../../_images/files_import-export_alembic_export-panel-object-options.png

Опції об’єкта.

UVи – UVs

При увімкненні, розкладки UV будуть експортуватися. Хоча стандарт Alembic підтримує тільки одиничну розкладку UV, Blender експортує усі розкладки UV у спосіб, що повинен бути читаним іншою програмою.

Упакувати Острови UV – Pack UV Islands

Генерує оптимізовану розставу UV з не-перекривними островами, що намагається ефективно заповнити простір текстур – Texture Space. Дивіться детальніше про оператор – pack islands operator, що працює за таким самим принципом.

Нормалі – Normals

When enabled, an object’s normals are exported. See Custom Split Normals of Meshes below for more information.

Кольори Вершин – Vertex Colors

When enabled, exports vertex colors.

Примітка

Currently this only supports static vertex colors, and not dynamically animated vertex colors.

Набори Граней – Face Sets

Експортує імена матеріалів своє для кожної грані. Дані матеріалів не експортуються, а лише імена матеріалів.

Вжити Схему Підподілення – Use Subdivision Schema

Записує полігональні сіті, використовуючи схему «SubD» Alembic’а, а не схему «PolyMesh». Це каже програні при відкриванні цього файлу застосовувати форму не-руйнівного підподілення з нього.

Застосувати Підподілення Поверхні – Apply Subdivision Surface

Applies any Subdivision Surface modifiers before writing to Alembic.

Трикутникування – Triangulate

Triangulates the mesh before writing to Alembic. For more detail on the specific option see the Triangulate modifier.

Системи Частинок – Particle Systems

../../_images/files_import-export_alembic_export-panel-particle-systems.png

Опції Систем Частинок.

Alembic не має підтримки для Систем Частинок, і так само він не підтримує арматури. Волосинки експортуються як анімовані криві з нульовою шириною. Частинки експортуються як анімовані точки.

Importing Alembic Files

When importing an Alembic file, Mesh Sequence Cache modifiers are automatically added to time-varying meshes. For time-varying object transforms (so animation of rotation, location, or scale) the Transform Cache Constraint is used.

Custom Split Normals of Meshes

Blender supports the import and export of custom normals to Alembic files. As a basic rule of thumb, a completely smooth mesh will be exported without normals and thus produce the smallest Alembic file. This is reflected in the importer; an Alembic mesh without normals is loaded as a smooth mesh.

On export, for every mesh:

  • If it has Custom Loop Normals then the loop normals are exported.

  • If one or more polygons are marked flat then loop normals are also exported.

  • Otherwise, no normals are exported.

On import, when the Alembic mesh contains:

  • Loop normals (kFacevaryingScope) are used as custom loop normals, and enable Auto Smooth to have Blender actually use them.

  • Vertex normals (kVertexScope or kVaryingScope) are convert to loop normals, and handle as above.

  • If there are no normals then the mesh is marked as smooth.

  • Unsupported normal types (kConstantScope, kUniformScope, kUnknownScope) are handled as no normals.

When an imported mesh does not contain normals, the final look can be controlled by enabling the Auto Smooth checkbox and altering the threshold angle.

Handling Time

Unlike Blender and many other applications and file formats, Alembic files don’t have any concept of frames. Alembic works purely with time, and values that are sampled over time. For example, there is no way to distinguish 30 FPS with 2 samples per frame, and 60 FPS with 1 sample per frame. This has caused many developers to just hard-coded 24 FPS when reading Alembic files.

Blender uses the current scene frame rate to convert a frame number (in Blender) to a time in seconds (in Alembic). As a result, you can import an Alembic file that was produced at 120 FPS into a Blender scene that is 30 FPS and still not see any time stretching.