Page 1 of 2

Proxy management (topologies, body parts and clothes)

PostPosted: Wed Jan 29, 2020 9:43 am
by smonbrogg
Here's some work in progress of my attempt to improve Makehumans proxy managmement code.

I'm starting with delete vertices under faces of body parts as requested earlyer here:
viewtopic.php?f=3&t=18364
It currently works for all proxies.

Image


If there are any other developers working on this part of makehuman let me know!
I'm considering adding a file to generalize all proxychooser.py except 3_library_proxy_chooser.py (responsable for Topologies) since I think there's some difference between the actual human mesh and the additional geometries like hair, clothes, eyes etc..

class inheritance is currently

-ProxyChooserTaskView
--ClothesTaskView
--EyesTaskView
--EyebrowsTaskView
--EyelashesTaskView
--HairTaskView
--ProxyTaskView (This is responsable for choosing different topologies of the human mehs)
--TeethTaskView
--TongueTaskView


I'm considering to change it such that it's like this:

-ProxyChooserTaskView
--ProxyTaskView (Renaming this to TopologyTalskView might make sense..?)
--AdditionsTaskView (A better name for this new class would be very welcome!)
---ClothesTaskView
---EyesTaskView
---EyebrowsTaskView
---EyelashesTaskView
---HairTaskView
---TeethTaskView
---TongueTaskView

Any thoughts?

cheers, simon

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Fri Jan 31, 2020 3:23 pm
by joepal
Not any particular thought outside general cheering. Making it possible to use delete groups for other meshes is probably a good idea.

I don't think anyone else is tinkering with those parts right now.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Sat Feb 01, 2020 5:14 pm
by RobBaer
smonbrogg wrote:Here's some work in progress of my attempt to improve Makehumans proxy managmement code.

I'm starting with delete vertices under faces of body parts as requested earlyer here:
viewtopic.php?f=3&t=18364


I'm not sure what this image is showing. Are you purposely hiding the colored iris layer that lies below the transparent corneal layer (or vice versa), or are you demonstrating something else for the eyes?

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Mon Feb 03, 2020 4:25 pm
by smonbrogg
RobBaer wrote:I'm not sure what this image is showing.


I'm hiding the eye socket of the human mesh. Nothing magic at all, it's the same feature as 'Hide faces under clothes', just for the eyes and all other additional geometrie.

Trying to finalize this I ran into another problem: 'Hide faces under clothes' doesn't work with Topologies. :shock:
If you select Topologie 'Female muscle 13442' together with 'Female calualsuit01' for example, there are a lot of faces that should be hidden but aren't.
Is this a known issue? I've tried to fix it, but no luck so far.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Thu Feb 06, 2020 8:58 am
by RobBaer
Topologies are just another type of proxy, like clothes. If I remember correctly there is a partially implemented numbering system for layering clothes. Not sure if topologies take it into account though.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Sat Feb 08, 2020 3:20 pm
by smonbrogg
Thanks for the reply!
Yeah, topologie is a type of proxy, that much I understand.


RobBaer wrote:there is a partially implemented numbering system for layering clothes.

This seems to be implemented in getClothesByRenderOrder and getClothesByRenderOrder in 3_libraries_clothes_chooser.py. Each cloth proxy has a z_depth attribute, defining the order in which the clothing is stacked. The code then checks each cloth proxy starting with the outermost and hides faces that are hidden by accumulated preceding clothing. Then, at last, the code hides the faces of the topologie proxy that are hidden by all accumulated clothe proxies.

The main reason I use this feature is to reduce the polygon count of the final mesh being exported.

For the bug with the delete vertices not working correctly for all topologies, I'm not sure where the problem is. It might be the alternative topologie itself, or the way the mapping from the the default topologie to the alternative one is done, or something I'm not yet aware of... :?:

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Sun Feb 09, 2020 4:48 am
by MTKnife
Have you actually gotten the layering to work properly? I never noticed it to have any real impact, as lower layers of clothes will stick through outer ones, if you haven't used delete faces--or does the chooser only work with delete faces?

Fixing this was something I wanted to work on, but never got up the energy to.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Sun Feb 09, 2020 8:40 am
by smonbrogg
MTKnife wrote:Have you actually gotten the layering to work properly? I never noticed it to have any real impact, as lower layers of clothes will stick through outer ones, if you haven't used delete faces--or does the chooser only work with delete faces?

It only works with delete faces. At least that's my current understanding of the code.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Sun Feb 09, 2020 6:28 pm
by MTKnife
smonbrogg wrote:It only works with delete faces. At least that's my current understanding of the code.


I think that was the impression I got when I was looking into it, but it seems like it should be possible to do it without delete faces, by displaying whichever object along a given ray has the highest layer.

Re: Proxy management (topologies, body parts and clothes)

PostPosted: Mon Feb 10, 2020 7:43 am
by smonbrogg
Theoretically, it should be possible to calculate the faces to delete from a lower cloth layer by the higher one, as long as the cloth doesn't have a transparent texture. But this alone probably wouldn't make stacking clothes a good experience. There would still be geometry sticking out between the seams because the clothing probably wouldn't share the same edges...

I think it's best to stay with the current system of assigning 'delete vertices' to a piece of cloth when creating it, and thinking of the 'hide faces under cloth' feature mainly as a way to reduce polygon count.