← Back

ofxAlembic

github.com/perfume-dev/ofxAlembic · @perfume-dev
OF 0.12 Graphics

ofxAlembic is an openFrameworks addon for reading, writing, and drawing Alembic scene data, supporting various geometric types and transformations.

60 35 Last commit 1mo ago Created 13y ago

README

ofxAlembic



Build examples

ofxAlembic is an openFrameworks addon for reading, writing, and drawing Alembic scene data. It supports points, curves, polygon meshes, transforms, and cameras using the Alembic Ogawa backend.

Requirements



The addon bundles:

HDF5 support is not included. Use Alembic files written with the Ogawa backend. Build settings, source tags, and binary checksums are recorded in libs/DEPENDENCIES.md.

Installation



Clone the addon into the addons directory of an openFrameworks 0.12.1 installation:

cd /path/to/openFrameworks/addons
git clone https://github.com/perfume-dev/ofxAlembic.git


Add ofxAlembic to a project with the openFrameworks Project Generator. No additional system libraries are required.

Reading an Alembic file



#include "ofxAlembic.h"

ofxAlembic::Reader reader;

if (!reader.open("scene.abc")) {
    ofLogError() << "Could not open scene.abc";
    return;
}

reader.setTime(1.0);

ofMesh mesh;
if (reader.get("/model/modelShape", mesh)) {
    mesh.draw();
}


Object paths can be either local names or full Alembic paths. Check the return value from open() and typed get() calls before using their output.

Writing an Alembic file



#include "ofxAlembic.h"

ofxAlembic::Writer writer;

if (!writer.open("output.abc", 30.0f)) {
    ofLogError() << "Could not create output.abc";
    return;
}

std::vector<glm::vec3> points = {
    {0.0f, 0.0f, 0.0f},
    {100.0f, 0.0f, 0.0f}
};

writer.addPoints("/points", points);
writer.close();


Writer paths must start with /. Create a parent object before adding child objects below it.

Examples



Generate each example project with the Project Generator before opening it in Xcode or Visual Studio.

Supported data



SchemaReadWrite
PointsYesYes
CurvesYesYes
Polygon meshYesYes
TransformYesYes
CameraYesYes
Polygon meshes are triangulated when read. Mesh writing currently expects triangle topology.

Previous openFrameworks releases



Older snapshots are not covered by the current build checks or security updates.

Contributing



See CONTRIBUTING.md for the development and pull-request workflow. Please report security problems according to SECURITY.md.

License



ofxAlembic is released under the MIT License. See LICENSE.txt. Alembic and Imath retain their respective licenses in libs/.

Get this addon

HTTPS
SSH