OpenFX Mesh Effect API
This is a plug-in standard for 3D mesh processing effects built on top of OpenFX, a standard originally designed for 2D image processing.
The official documentation of the API is now located at https://openmesheffect.org
Why a standard?
Many 3D software feature some non destructive workflow, relying on procedural geometry effect being recomputed on the fly whenever the underlying mesh data is modified. One can quote for instance Houdini SOPs, some of Maya's nodes, or Blender's modifiers. Unfortunately, usual open exchange formats do not support these, as they might be implemented differently in different software, forcing geometries to be "baked" at export. This destructive step prevents one from tweaking the procedural parameters again. A standard description of such mesh effects will lead to effect that work exactly the same way in different softwares, enabling exchange formats to store meshes without baking them first.
For a more complete post about the motivations behind Open Mesh Effect, see The need for Open Mesh Effect.
OpenFX has been designed for 2D images, it is completely different from 3D meshes, so why using it?
The OpenFX standard has been cleverly separated into several parts, leaving its core very generic. This OpenFX Mesh Effect API leverage on this agnostic core (called
ofxCore) but completely ignores the image related part (
ofxImageEffect). Instead, it defined an
ofxMeshEffect, following similar patterns where it is relevant.
- Example of host from this repository
- OpenMeshEffectForBlender, a host integratint Open Mesh Effect plug-ins in Blender as modifiers.
NB: None of these implementations are complete. The Blender implementation is based on the example from this repository.
- Examples of plugins from this repository
- MfxVCG is an example of Open Mesh Effect plug-in that provides mesh filters from VCGlib, the core library of MeshLab.
This document currently is a draft. Feel free to give some feedback through the GitHub issues of this repository.
The need for such a standard urged when I tried to tie Blender and Houdini together while respecting the spirit of the GPL license under which Blender is released. See the discussion on Blender Dev Talk forum.