Skip to content

Ongoing design goals #6

@eliemichel

Description

@eliemichel

This started as a follow up of #27 of the Blender Host, from which a lot of relevant insights and ideas emerged.

Already integrated:

  • (2B) Add a kOfxMeshPropNoEdge boolean property turned on by default, that one must turn off when building a mesh with loose edges.
  • (2C) Add a kOfxMeshPropConstantFaceCount property type to meshes to skip the use of the kOfxMeshAttribFaceCounts buffer when it is not -1.
  • (2D) Add a kOfxMeshEffectPropIsDeformation boolean property turned off by default that one can turn on to speed up processing when the effect does not affect connectivity.
  • (B) Add a way for effects to request attributes to the host
  • Add semantics (kOfxMeshAttribPropSemantic) to attributes in order to flag their usage (UV, weight group, etc).

Summary of the proposals:

Unsolved issues:

  • How to list the available attributes in a mesh

Rejected:

  • (2E) Introduce arbitrary edge attributes (kOfxMeshAttribEdge) with no such attribute by default

A solution for (B) would indeed take place during the Describe action. And this is needed beyond just connectivity: an effect must be able to tell whether it needs UVs or not, or this or that specially named attribute, etc. It would enable sending only the relevant attributes, and also let the Host's UI tell the user about important missing attributes. I imagine this as a set of kOfxInputProp* maybe.


@tkarabela Regarding your issue (A), there's this little advertised fact: It is possible already to point the output at the same buffer as the input, for unchanged attributes, and in particular for connectivity information when the effect only is a modifier.

About the "knowing the exact edge count in mixed cases" problem, do you believe that iterating once over the faceCounts attribute prior to allocating teh mesh introduces too much overhead? I think that anyway that's how many plugin writers would fill the loose edge count property anyways.

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionDiscussion about design or Q/A rather than an actual issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions