Why is the visibility of polygons of duplicated objects shared?

I have a scene with two g8f chars. One wears long clothes and the other a short skirt.

I had poke though issues with the first char, and I fixed it by changing the visibity of the poking polygons with the geometry editor. To my best (and limited) knowledge it is the simplest quick and dirty way to fix a poke through. Worked perfectly, but I discovered that the corresponding polygons of the second char were also made invisible...

I tried to understand this problem with objects of a simpler geometry.

So I created a primitive plane with some subdivisions, I duplicated it and played with the geometry editor. There is a little bug in the update (it is only done on an object when the object is modified), but besides that any visibility modification made on one object is also done on the other object, whether it is done by hiding directly the polygons or defining regions, selection sets, etc, and hiding them.

The only solution to have an independent behavior of the objects is to delete some polygons. In this case, the geometries of the objects decome completely independent and you can modify the visibility of one object without any interference with the second.

I am a bit surprised. You can (fortunately) apply complex geometric transformations with morphs/mesh grabber/dformer/etc on an object or a char without modifying the other objects/chars with the same geometry, but you cannot do something as simple as hiding polygons without perturbing the other objects (except with shaders). Probably a choice made to avoid duplicating object geometries in memory, but I find it weird and counter intuitive.

Is there a workaround to this behavior?

Comments

  • Because the visibility is a property of the emsh, whicgh exists only once and is referred to by both figures.

    One option is to select the polygons you want to hide and assign them to a new group, then use the Joint Editor's right-click menu to give the figure a new bone and in the tool settings pane make the new group the new bone's selection group; that way you can hide it by hiding the bone, which is specific to the figuer itself and not the base mesh (adding bones won't have any effect on posing if they are not weight-mapped).

  • TogireTogire Posts: 414

    Thanks Richard. I was indeed thinking that visibility should be a property associated to the mesh, as it is the only way to explain this behavior. Probably having it defined on top of the mesh like deformations would add extra functionnality, but there may be hidden drawbacks.

    For my poke through problem, it is probably simpler to use mesh grabber, but creating a bone is a very nice trick that can be useful in more complex situations.

  • fred9803fred9803 Posts: 1,564

    This will happen with instanced objects. Are you sure you're really deplicating them or are you instancing them.

  • fred9803 said:

    This will happen with instanced objects. Are you sure you're really deplicating them or are you instancing them.

    No, it happens with other items too - the underlying mesh asset is loaded only once, then the figures use their pose and shape modifiers on that to get a final shape (which is what is then sent to the render engine).

Sign In or Register to comment.