Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maybe rename "Vertex" into "Corner" #12

Closed
5 tasks done
eliemichel opened this issue Dec 21, 2020 · 8 comments
Closed
5 tasks done

Maybe rename "Vertex" into "Corner" #12

eliemichel opened this issue Dec 21, 2020 · 8 comments
Labels
discussion Discussion about design or Q/A rather than an actual issue

Comments

@eliemichel
Copy link
Owner

eliemichel commented Dec 21, 2020

The terms point/vertex/face were originally chosen according to Houdini's naming convention, and it also matches Pixar's USD. But "vertex" is misleading to many people because in some softwares it may have a different meaning. In particular, in Blender, Maya and 3DS Max it means what we call "point", making everything a bit harder to follow.

A good candidate so far seems to be "Corner", as in "face corner", which already feels like the most natural way to explain what "vertices" are with respect to "points". Other existing names are "Loops" (quite unique to Blender, and a bit ill-named imho even though I understand why it is so) or "Elements" (as in "element buffer" using in graphic APIs, I find it more abstract).

Memo of things to change in case of such a renaming (it'll touch a lot of things):

  • Rename in all ofxMeshEffect.h
  • Rename in API reference
  • Rename in C++ SDK
  • Rename in SDK tutorial and figures
  • Rename variables in host implementation

External input and thoughs are welcome here!

(Thanks @tkarabela for investingating about other APIs btw)

@eliemichel eliemichel added the discussion Discussion about design or Q/A rather than an actual issue label Dec 21, 2020
@tkarabela
Copy link
Contributor

tkarabela commented Jan 4, 2021

(First, let me say that the C++ tutorial is great! :)

To help people better understand the representation, I wouldn't hesitate to put the figure describing attributes from the C++ tutorial also into the C API reference, where OfxMeshHandle etc. are discussed ( https://openmesheffect.org/Reference/ofxMeshEffectAPI.html ). Perhaps there could be another figure showing how common types of geometry are represented (point cloud, edge wireframe, polygonal mesh), which could also illustrate how NoLooseEdge and ConstantFaceCount are used. Like they say, a picture is worth a thousand words :) When learning about how geometry in Houdini works, the diagram in https://www.sidefx.com/docs/houdini/model/attributes.html#geometry-components was very informative.

The impression I got from looking at the various SDKs was that they are all slightly different, so you still have to look at the schema to see what they actually mean, and point/vertex/face/mesh seem good to me. I don't have experience with Maya/3DS, but Blender (as far as UI goes) is confused: there are "vertex groups/weights" (OFX point attributes), but also "vertex colors / vertex painting" (which are actually "loop colors", or OFX vertex attributes). In the "Data Transfer" modifier, there are "Vertex Data" and "Face Corner Data" sections, where "vertex groups" and "vertex colors" live, respectively. (Perhaps this blurring of points/vertices is intentional, to make it easier for the artists.)

"Elements" sounds confusing to me, I'm not sure if it refers to faces or face-corners. "Corners" is fine (vertex/corner/face/mesh). I still like "Vertex" (point/vertex/face/mesh) best, the other options don't seem like a clear win to me.


On the topic of naming, one thing that might be a bit confusing is Open Mesh Effect naming itself. "OFX" refers to the original OpenFX spec, but it can also refer to this project, as in "OFX mesh effect". The existing plugins are called "Mfx___"; perhaps using "MFX" more pervasively to refer to "OFX mesh effect" / "Open Mesh Effect" would be better branding? It's not direct abbreviation, but "OME" looks silly to me :)

@eliemichel
Copy link
Owner Author

Good call for adding the image to the C doc as well, I just did it. :)

Yes, Blender confuses vertices and loops because I think they designed the notion of "loop" only as an internal name at first and did not want to expose it to the user (because it means nothing). That's why I think we should get away from this term, it has been used too much to mean different things. I don't like "element" neither, whereas "corner" really mean what it is.

Do you mean replacing OfxMeshEffect with Mfx in all constant names? Or "OpenMfx"? Indeed I've come up with using "MFX" when abbreviating because idk why but I don't like "OME", but then it makes the mapping MFX (short name) <-> OpenMeshEffect (long name) unclear at first glance. BTW I also use with myself the convention that MfxFoo designates a plugin and FooMfx a host.

@tkarabela
Copy link
Contributor

OpenFX uses OfxImageEffect to refer to image-specific parts of the API, so OfxMeshEffect feels just right in the API names. I was thinking more in terms of how to refer to the project in general, without using the full name. OpenMfx (or OpenMFX) didn't come to my mind - it looks nice! And it suggests relation to OpenFX better than MFX does; also "Open Mesh Effect" <-> "OpenMFX" doesn't seem as surprising as just "MFX".

Regarding vertices vs. corners, it's your call - both work for me :)

@eliemichel
Copy link
Owner Author

Little heads up: I am planning on doing this renaming of "vertex" into "corner" and "Open Mesh Effect" into "OpenMfx" soon!

@eliemichel
Copy link
Owner Author

eliemichel commented Jun 8, 2021

The (breaking) renaming is available for preview in the rename branch: https://github.com/eliemichel/OpenMeshEffect/tree/rename
I also renamed the "FaceCounts" into "FaceSize". First there was no reason for it to be plural, and it was confusing with the FaceCount that tells how many faces there are (rather then how many corners there are per face).

@eliemichel
Copy link
Owner Author

Renaming is ready to be merged, awaiting for plugins to migrate (MfxVCG ok, MfxVTK PRed).

@tkarabela
Copy link
Contributor

Thanks for the pull request, MfxVTK should be ready as well. I think the latest release of MfxVTK is a bit behind master, I should make a new release. If you're going to implement the renaming into the new Blender 2.93 host, I think I'll wait for that and then test everything to make sure it works, update docs and make a new release.

BTW, glad to see Mfx moving again! :)

@eliemichel
Copy link
Owner Author

Here we are, thanks for merging my PR on MfxVTK, now MfxVCG switched to the renamed version as well as this repo and OpenMfxForBlender. The last release is based on 2.93 LTS. I have also updated the whole documentation.

@tkarabela happy to see you're still interested! I just sent you an email btw.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Discussion about design or Q/A rather than an actual issue
Projects
None yet
Development

No branches or pull requests

2 participants