Maya Geometry Variants / Subdivision Levels

General / 21 August 2020

Geometry Variants and Subdivision Levels in Maya

Have you ever sculpted in Maya and wished you had subdivision levels like you'll find in Mudbox or Z-Brush?

Maybe you wanted to have multiple instances of a piece of geometry that can be individually edited? (while retaining the link to the original)

Or just maybe, you were in a situation like me where you wanted a higher detailed and bevelled version of your mesh that can automatically respond to changes made to the original geometry?

Behold! Exactly those things...

Geometry copies take on upstream changes automatically

Working with Houdini for most of the year has changed the way I approach modeling problems; that's how I found this. I was modelling something in Maya for work and found myself jumping into the node editor regularly. I then stumbled upon this trick while trying to find a solution to an issue with the lattice deformer.

In short, you just use the output geometry of the first shape node to drive the input of the second. That's really it, nothing else to it. Here's a short tutorial to illustrate the point, a few ideas on how this could be used, along with a couple of gotchas / things to look out for:

Tutorial

Step 1

Grab a mesh to serve as the base for the copies, then add any primitive from the shelf. Take a cube to be safe.

Step 2

Open the node editor, and (while ensuring both meshes are selected) click the button marked with the arrow below.



Step 3

Connect the mesh output from the first node to the in mesh input of the second. At this point the setup is complete!



Show off

Check it out! If you make a change to the first mesh, it'll be reflected in the second. Kind of reminds me of these things called instances 🤔

Well, they're not the same thing I swear it. Here's proof:

Changes flow downstream

See? The second one can be changed independently of the first! You can even alter the geometry of the second one any way you wish. Here I've applied a subdivision. See how it responds dynamically to the changes in the first object?

Destructive edits

Subdividing a mesh adds a node into the graph as you might be able to see. This means that it'll respond properly to any change in the first, even deleting or adding geometry. What happens if you do something like sculpting the mesh?

Oh wow! Look at that, it still reacts as expected. From what i can tell, any change on the first one that doesn't involve adding or destroying geometry should work fine. As soon as you do add or destroy geo, it breaks any destructive geometry changes downstream. This is familiar behaviour if you do any modelling in Houdini.

Non-destructive changes

As long as your changes are non-destructive things should go smoothly. Nodes should update automatically and generally just work.

Bevel node works as you'd expect

Advanced

Deeper

This can go multiple levels deep, check this out:

Wider

Not only can your onion be deep, but it can also be wide with branches!

Caveats

This technique isn't without its problems. It can be kind of annoying to mess around with the nodes in Maya, especially after getting used to a proper node based program it's really just not very nice. 

You also gotta be pretty careful with how you work with nodes that have dependents, some changes can have unintended adverse effects downstream such as deleting or adding geometry. 

Don't just duplicate the object and connect the duplicate, it doesn't necessarily work as you'd expect every time. Just connect a cube (or whatever works).

Using this technique as subdivision levels similar to Z-Brush or Mudbox can work from what I see, however the conenction is only one-directional. Your changes to high-resolution geometry won't change the silhouette of the low-resolution geometry. Also, it's very important to not add or remove geo upstream. All your work will be destroyed. I mean probably, you might be able to undo but be careful. (You should also have a backup, like usual. Don't blame me if everything burns to ashes)

Honestly, I haven't researched it too much. For all I know, this could be a terrible idea but it seems to work fine for my purposes so on the toolbelt it goes.

I'd love to hear your thoughts on this. Maybe this feature actually already exists in some other form and I'm not onto anything at all. Well I'd love to know if it does because it'd probably be better! Thanks for reading, I hope this has helped you in some way!