eliemichel / OpenMfxForBlender

A branch of Blender featuring an OpenMfx modifier
Other
176 stars 19 forks source link

Interest in a Godot Engine host? #66

Open fire opened 2 years ago

fire commented 2 years ago

Wanted to see if there's interest.

eliemichel commented 2 years ago

There is interest, I have a base in Unity because the Blender -> game engine workflow is a priority! The content of the host directory can be reused as is, then what you need to adapt is the content of blender, starting by subclassing OpenMfx::MfxHost like it is done in BlenderMfxHost.h.

fire commented 2 years ago

Can you describe what is the exchange format? Like meshes or materials?

How do you map these concepts of:

  1. input pins
  2. output pins
  3. pin primitive types / pin extensible types
  4. source node
  5. filter node
  6. sink node
  7. graphs vs sub graphs
  8. synchronization mechanisms like pull vs push vs clock
eliemichel commented 2 years ago

We are currently working on using USD as a base for our exchange format. OpenMfx would add extra Schema to handle node graphs defining parametric shapes. In the meantime you can focus on loading a single OpenMfx effect (plugin) because this is the first building block for integrating OpenMfx.

Input/output pins are defined here (the API uses the word 'input' to mean 'pin' actually) If you are using the C++ SDK see MfxInput and MfxInputDef.

A source node is a node that does not define any input pin. A filter node is any node that has an input. The definition of which node should be used as output is left to the WIP interexchange file, same goes for subgraphs.

Not sure what you mean with 3 and 8.

fire commented 2 years ago

I'll read the definitions.

It would be difficult for Godot Engine to implement USD. https://github.com/syoyo/tinyusdz has been attempting for the last like 3-4 years. I'd assume if we started from scratch we may take longer.

The use of USD is for skinned 3d characters due to subdivision surfaces support.

We implemented a gltf importer / exporter.

fire commented 2 years ago

I've also made a proof of concept for MaterialX definitions https://github.com/V-Sekai/godot_material_x for parametric materials.

eliemichel commented 2 years ago

The way MaterialX is handled in USD is a possible source of inspiration indeed!