Roughly how does the HD cage work?
![richardandtracy](https://farnsworth-prod.uc.r.appspot.com/forums/uploads/userpics/010/nULALLFIM72BT.jpg)
I'm curious. G8 has a lower base resolution than V4/M4, but as you zoom in, extra mesh resolution is added.
How?
To add extra resolution without any extra information would just lead to a higher resolution mesh on the flat surface of the original facet. So, extra information must be added. Does anyone know, in a hand-wavey general sense, how this is done?
My initial thoughts are that there are three ways it could be done. The basic way could be a parametric surface description for each base resolution facet, with a function determining the deviation value for the new higher resolution facet based on U & V parameters. The second is that there could be a fiendishly complex parametric equation for each body part, determining a surface whose mesh is updated as you zoom in. The third way of doing it could be to have a single parametric equation, and generate the base mesh in a stunningly clever manner so that each base facet deviates from the theoretical figure surface by the same proportions. This way, only a single parametric equation is needed for the whole figure.
I think the first option is the most likely, as the parametric equation for each facet could then be tweaked/modified by HD figures to give a more detailed figure without causing a complete re-build of the figure.
Does anyone have any idea, even in a hand-wavey, general overview way?
Regards,
Richard
Comments
it is UV based
I know this because thats how Philemo got the Carrara plugin to work
using the UV mapping to map the HD obj export to the base mesh and it is also how displacement maps work
it is how programs like Xnormal generate maps from higher resolution mesh too
Each of the systems I mentioned could be described with UV parameters. I can see how the facet by facet system would be simpler to think through on the programming side, though it would probably lead to more information storage. And, by being simpler, it would probably be quicker too.
Thanks, my curiosity was piqued, and now I know.
Regards,
Richard.
well don't assume I actually know
I was only speculating based on what others have done and used
I am actually not a programmer or anything
https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html
https://en.wikipedia.org/wiki/Catmull–Clark_subdivision_surface
Hmm. Interesting. Thanks for that, Richard.
I am used to parabolic UV patches from my work doing finite element stress analysis, with the patches being meshed with multiple elements/facets in each direction. Going to BSplines or Bezier parameters will actually save on computing effort and may save on storage too. So, each base facet is defined by a patch that overlaps the next facet. Seems reasonable and efficient. Nice to know and understand.
Regards,
Richard.