Author Topic: Geometry Mask is a bit of a convoluted system for hiding mesh objects  (Read 873 times)

WARNING: This is going to be a very longwinded post, sorry, but I have to describe the issue as best I can and I can't really see how cut it down much.

This is a feature I've been waiting on for years, and at first I was extremely excited to see it in the feature showcase, but it seems like a very strange way to handle this feature. Why not just give us a permanent panel list of the mesh subobjects, just like how it gives you a list when you open the Geometry Mask selector:

Except have this always available as a normal panel to hide or show mesh objects without the need for having a layer stack associated with the mesh objects and using that layer as the basis for hiding/showing objects.

An example of why this current system just doesn't work for me in my workflow is as follows. I am currently working with a team I was hired for on a VR project, like many VR games it is a shooting game and I have been doing props and guns. This mesh object hiding was a big deal for me because the game requires most guns be field strippable, meaning they can be partially disassembled so I have to model and texture the interiors. Prior to this it meant I had to basically have my gun "exploded" in the viewport so I could see inside it, similar to how you used to explode your models for baking before baking by mesh names was a thing.

This system of mesh hiding would allow me to have the model in the viewport in a final setup and let me hide parts as I worked, great in theory. However due to this being tied to layers as a sort-of mask, this disrupts my workflow and I can't find an efficient way around it. Normally my workflow would involve a gun needing maybe 4-6 major materials on it with each folder masking masked across several parts. For the primary ones I would have layers in my stack like this:

BodyMetal (Primarily the gun metal external parts)
InternalMetal (Likely uncoated, more polished steel internal parts)
OtherMetal (Screws, etc)

And maybe others if the weapon called for it. My first assumption was simple: I will work in my layers on each piece individually. For example I will place a Geometry Mask on the BodyMetal layer and select the Upper Receiver mesh objects, texture it both inside and out, then change the Geometry Mask to the Lower Receiver and texture that part inside and out, etc. Unfortunately this does not work, because of the non-destructive strokes feature mentioned here

Time code 9:58 if the link fails to skip to it. Painter preserves my brush strokes between changes in the Geometry Mask, meaning if I Geometry Mask 1 part of the object, finishing texturing it and then try to change the Geometry Mask to a different part of the mesh next, it will plaster my stroke history all over the new part when I change mesh objects. Playing around with Painter today my only solution I could think of was to effectively make a base layer folder for every single part of the model and assign each one a Geometry Mask for that mesh part


The basic model I had tried this on needed 14 folder layers to achieve a workable, hideable geometry mask on everything. However, if I do this workflow to get full control of mesh hiding and I want something like my BodyMetal material layer to be on 6 parts of the model, I now need that layer stack copy pasted inside all 6 folders. This is a great way to end up with 500 layers in your project and a completely unusable calculation time any time you want to update the layers. (I think layer instantiation will make this easier for a UDIM based model but this is for a game, no UDIMs here)

So my thoughts on how to solve this are either:

1) Allow us a separate mesh object hide/show panel that has nothing to do with layer masking to turn objects on or off
2) Allow us the option to disable the "non-destructive strokes" being reapplied to the mesh whenever we change the Geometry Mask to different subobjects (such as I tried doing in the first part I spoke of)

Otherwise I can't think of anything else to what I am trying, if anyone else has any idea please share because I spent the evening screwing around with this and couldn't get it working at all.
Last Edit: January 29, 2021, 08:22:58 am

1) Allow us a separate mesh object hide/show panel that has nothing to do with layer masking to turn objects on or off

A million times YES!   I've been dying for this feature.  Painter seriously needs a way to hide parts of your mesh as you work that's not tied to some kind of active masking for the paint layer.