Can an expert give a final word on Catmark Subdiv and How To in Maya?

ianbercovrossianbercovross Posts: 7
edited November 2018 in Daz Studio Discussion

Hey All,

 

I've spent a couple weeks now getting my FBX exports perfect out of Daz and setting up my Genesis 8 figure in Maya. I'm at the final stage, which has me totally stumped: subdivision.

For the sake of clarity, I want to say at the outset that I am exporting only the hi-res mesh and of course WITHOUT any subdivision in Daz as that, as we all know, is impossible.

What has me baffled is that all Maya's subdivision algorithms (namely Opensubdiv and Maya Catmull-Clark) do not subdivide the way Daz's "Catmark" does. Instead Maya subdivides exactly like Daz's "Catmull-Clark Legacy" does.

You can notice that "Catmull-Clark Legacy" is a bad option for the G8 figure by looking at the teeth. "Catmull-Clark Legacy" overly smooths the teeth and shrinks them, whereas "Catmark" actually makes the teeth bigger than the actual "cage" or original hi-res mesh at sub-division 0.

 

This leads me to two primary questions:

1) What is "catmark" subdivision? There is very little information, except one forum post that mentions it is a newer Pixar refinement of Opensubdiv. I also see a couple development docs relating "catmark" to an option in Opensubdiv called Sub_tri_Catmark, but no idea what this is or where to set it in Maya when using Opensubdiv.

2) How can I get Maya to subdivide the hi-res mesh the way that Daz does? To do this I would need to know what "catmark" is doing and recreate that in Maya or find a Maya addon or find the right settings in Maya (I have tried a lot with both smooth mesh preview, subdivision proxies, and renderer specific subdivision algorithms.

 

In the attached screenshot you can see what Maya's subdivision does to the teeth. it shrinks and smooths them in a way that doesn't look right at all. This seems to be exactly what Daz's "Catmull-Clark Legacy" does also.

 

teeth.png
1118 x 760 - 175K
Post edited by ianbercovross on

Comments

  • I realized the gap teeth were due to the HD Mouth Realism morph. Still wondering about my questions though : ) 

  • You may want to look into the settings for the sub-divisions. It determines how hard/soft certain aspects of the "deformations" will be calculated. In Daz3D, the settings are for "Sharp edges", and "Normals smoothed", by default, for Gen8. Nothing except "Catmark", with those settings, will look exactly like Daz3D subdivisions. If you do not have settings for those options, then you may be out of luck. Though, they may be worded another way, in another program.

  • Dave230Dave230 Posts: 301
    edited November 2018

    I believe the legacy Catmull-Clark stuff was what DazStudio used before OpenSubDiv was supported.  Which probably means they wrote it themselves, so how can you expect it to work exactly the same somewhere else?  DS didn't use Pixar's OSD until version 4.5.2.40.

    Post edited by Dave230 on
  • Dave230 said:

    I believe the legacy Catmull-Clark stuff was what DazStudio used before OpenSubDiv was supported.  Which probably means they wrote it themselves, so how can you expect it to work exactly the same somewhere else?  DS didn't use Pixar's OSD until version 4.5.2.40.

    I can't say i'm expecting anything in particular, but i can say i'm trying to get as close as I can in Maya.

    Unfortunately no matter what I try I'm losing a lot of detail on the ears and inside mouth/teeth in particular.

    I can't even figure out if I should be exporting the hi resolution mesh or the base mesh from Daz to Maya via fbx?? You can see subtle difference in the waterline/lash placement between the two. So all in all I'm pretty confused.

    I understand that it's a tall order to expect to get Daz's HD levels as I don't even know how they do it. Some kind of blending of an equally subdivided mesh that had displacement maps baked? Dunno : /

     

  • Dave230 said:

    I believe the legacy Catmull-Clark stuff was what DazStudio used before OpenSubDiv was supported.  Which probably means they wrote it themselves, so how can you expect it to work exactly the same somewhere else?  DS didn't use Pixar's OSD until version 4.5.2.40.

    I can't say i'm expecting anything in particular, but i can say i'm trying to get as close as I can in Maya.

    Unfortunately no matter what I try I'm losing a lot of detail on the ears and inside mouth/teeth in particular.

    I can't even figure out if I should be exporting the hi resolution mesh or the base mesh from Daz to Maya via fbx?? You can see subtle difference in the waterline/lash placement between the two. So all in all I'm pretty confused.

    I understand that it's a tall order to expect to get Daz's HD levels as I don't even know how they do it. Some kind of blending of an equally subdivided mesh that had displacement maps baked? Dunno : /

    Export the base mesh, then apply SubD in Maya. HD moprhs will not trasnfer via FBX - you will need tore create them in Maya (I believe it can do that) via an OBJ files exported with the high resolution shape.

  • ianbercovrossianbercovross Posts: 7
    edited November 2018
    Dave230 said:

    I believe the legacy Catmull-Clark stuff was what DazStudio used before OpenSubDiv was supported.  Which probably means they wrote it themselves, so how can you expect it to work exactly the same somewhere else?  DS didn't use Pixar's OSD until version 4.5.2.40.

    I can't say i'm expecting anything in particular, but i can say i'm trying to get as close as I can in Maya.

    Unfortunately no matter what I try I'm losing a lot of detail on the ears and inside mouth/teeth in particular.

    I can't even figure out if I should be exporting the hi resolution mesh or the base mesh from Daz to Maya via fbx?? You can see subtle difference in the waterline/lash placement between the two. So all in all I'm pretty confused.

    I understand that it's a tall order to expect to get Daz's HD levels as I don't even know how they do it. Some kind of blending of an equally subdivided mesh that had displacement maps baked? Dunno : /

    Export the base mesh, then apply SubD in Maya. HD moprhs will not trasnfer via FBX - you will need tore create them in Maya (I believe it can do that) via an OBJ files exported with the high resolution shape.

    I had hoped something like that would work, but with all my attempts to create a blendshape between the base mesh subdivided in maya and the HD obj, it never works. I'm guessing this is because the subdivision algorithms are different and even though the poly/vertex count is the exact same between both, the vertex ids are different. I'm just speculating. 

    I heard you can use the seuvblendshape plugin, but don't know how reliable that is.

    Post edited by ianbercovross on
  • DS is using OpenSubDiv so I'm not sure why the results would be inconsistent. Indeed, as far as I am aware HD moprhs are built on the OpenSubDiv version of multi-resolution morphs, though treat that with a cinsiderable degree of wariness.

  • >I'm at the final stage, which has me totally stumped: subdivision.

    Place two Genesis 8 Females in your scene. "Subdivide" only one of them. Color one white and one red. Subdivision isn't in the habit of swelling your character, yet your "subdivided" character is bigger than its base resolution counterpart (like the teeth you noticed). No software package will mimic that high res daz character. Houdini and Maya both give identical results across the board for subdivision methods, I'll bet most packages will. Daz is the odd one out, because it's not just subdiving. Subdivision is EXTREMELY predictable. You don't have a subdivision problem. You have a daz problem.

    If you just wanted a static character, you would have converted to prop and transfered that, so I'm assuming you want to move the character, in which case you are so, so far from the final stage. If you're intending to use a rigged character in Maya, take my advice: Abandon ship. It's not going to happen, and whatever does happen is going to look completely atrocious. Don't believe people who claim to have managed. They have not. Unless they completely redid the rig and weights, in which case they've essentially rebuilt the character, not transfered it. I don't call applying a normal map and making a close-up of a characters default, un-changed face "managing to transfer a character", and if you're trying to solve the problem you are, neither do you.

     

  • wolf359wolf359 Posts: 2,023
    edited November 2018

     If you're intending to use a rigged character in Maya, take my advice: Abandon ship. It's not going to happen, and whatever does happen is going to look completely atrocious. Don't believe people who claim to have managed. They have not. Unless they completely redid the rig and weights, in which case they've essentially rebuilt the character, not transfered it. I don't call applying a normal map and making a close-up of a characters default, un-changed face "managing to transfer a character"


    Hi 
    as a person with a multi application character animation pipeline
    Iclone Pro/Daz studio /Maxon C4D/Lightwave3D 2015,
    I Must agree with your general sentiment although I would not call it a"problem"

    it is a simple REALITY...
     IMHO.....
    When you leave Daz studio.. You leave Genesis
    When you leave Daz studio.. You leave Genesis
    When you leave Daz studio.. You...... leave...... Genesis.


    I export MDD animated genesis meshes to Maxon C4D where I use the maxon 

    subdivisional surface modifier along
    With a normal map for "HD detail" and  I get an animated figure that looks very 

    much  like the original genesis model did in Daz studio
    (see attached pic of Darius 6 still shot from my animated film project)

     No teeth distortion or bloating.

    However I harbor no Illusions
    These are Empty C4D  copies of Daz meshes driven by external MDD files ..NOT "Genesis in  C4D"

    In My Opinion The Genesis to Maya plugins are the big lie people keep fobbing off to themselves and each other.
    They use the Daz  industry standard FBX exporter to bake out a rigged copy of the Genesis base mesh.
    and engage in all manner of  scripted trickery and nerdy McNerd technobabble to distract people from realizing that they are simply using the native rigging and weighting tools of the importing app to try to emulate the general behavior of a Daz genesis model with regard to joint deformations.

    And in the end you still have to perform all manner of manual labor trying to recreate a fully functional genesis model  outside of its native environment of Daz studio.

    A truly pointless endeavor IMHO.

     

    DARIOUS 6 from film.jpg
    800 x 448 - 126K
    Post edited by wolf359 on
  • ianbercovrossianbercovross Posts: 7
    edited November 2018

    Well haha

    I appreciate all of your honesty though the conclusion is depressing.

    All and all i'm doing well with Genesis 8 in Maya, but yes i am exporting the base mesh to avoid this problem of my subdivided characters teeth getting smaller and losing detail in body parts like the ears especially.

    I prefer to export from Daz manually and avoid the Daz to Maya type plugins as they over-complicate things that aren't that complicated.

     

    I am frustrated with a couple things:

    * Facial Expression Morphs from the Daz store rarely tell you whether or not they used the base or hi-res mesh so some morphs will end up shrinking the teeth in Maya because they're using the hi-res daz mesh, which as we all know has the same poly count as the base mesh.

     

    * Yes i've pretty much given up on exporting the hi-res mesh due to my issues, but i'm still very curious to know what the hell Daz's "catmark" is doing. If it were truely just doing industry standard opensubdiv, then it would look identical in maya when subdivded in maya, but the hi-res mesh of course does not. Maybe daz is creasing? Maybe Daz devs changed up the vertex # order? I don't know : /

     

     

     

    Post edited by ianbercovross on
  • InthefleshIntheflesh Posts: 42
    edited November 2018

    Wow, there are certainly some strong opinions in this thread.

    I'm one of the people who "claim to have managed" to utilize HD characters in Maya, and hope I can clear up some misconceptions. I won't be providing a full step by step workflow in this comment but I can point you in the right direction.

    When it comes to plugins/scripts, in my opinion Genesis 8 for Maya (https://www.daz3d.com/genesis-8-for-maya) is more complete than Daz to Maya (https://www.daz3d.com/daz-to-maya). Daz to Maya does have an option to convert the shaders to other render engines, but considering all the textures aren't exported by Daz Studio as default I prefer to set them up from scratch anyway. You can always save it as a material in Maya to apply to any other import and simply swap the textures, or script it rather easily. 

    The "all manner of scripted trickery and nerdy McNerd technobabble" the scripts perform IS using the native Maya tools to emulate the Daz Studio behaviour, but why is that a bad thing? It's simply setting up joints to control JCM's and facial morphs to work in tandem where needed, exactly what Daz Studio is doing internally. By the point that you're exporting a character to Maya for animation you are likely to have made final decisions on their appearance, so losing the ability to completely change the character isn't a big deal. That's not to say it isn't possible though, as the Dex (DSON Exchange) plugin for Maya shows (https://www.daz3d.com/forums/discussion/278111/dex-dson-exchange-plugin-for-maya/p1).

    Poses can be used in Maya

    Clothing and hair can also be used, with different options depending on your desired results:

    • Use the joints and weighting imported from the FBX 
    • Set up clothing with a wrap deformer or cvwrap for extra speed (https://github.com/chadmv/cvwrap)
    • Use nCloth to add dynamics to clothing and transmapped hair with much more control and less issues than dForce
    • Convert hair planes to curves with GHM2 (https://thundercloud-studio.com/product/gmh2/) and simulate with nHair for added realisim. 

    The issue then is HD morphs, and how to get those out of Daz Studio and into Maya.

    When exporting an FBX file from Daz Studio, you get everything you need including morphs. But Daz only exports at the base resolution mesh. You can override this behaviour by locking the SubDivision Level in the Parameters Pane to whatever resolution you’d like to have in Maya.

    Be careful though, as this can take some time and produce large files because Daz Studio is exporting a HD mesh for each morph target and JCM you select. The weight maps are also broken due to changes in vertex count, but that can be rectified.

    To match Daz SubD in Maya as close as I can I use the following settings:

    Set the Division Levels to be the same as whatever you exported your HD mesh from Daz Studio.

    There may still be very slight differences in vertex position in some areas after applying the smooth. The important thing here is that the UV’s should match the HD version now, which gives a lot of flexibly for transferring data between the meshes.

    A quick tip here is to use Transfer Attributes (Vertex Position: On, Sample Space: UV). This will make your smoothed base mesh match your HD mesh exactly.

    Then, you transfer the skin weights from the rigged base mesh to the HD base mesh and hook up your JCM’s and pJCM’s.

    So that’s the basics of it, although there are a lot of smaller things in between. But the end result is a rigged Daz model in Maya with HD morphs and JCMS, and the ability to use poses, hair, clothing and textures.

    If you don’t care as much about having exact matching HD morphs and JCM’s, you could go the simpler route of simply smoothing and matching the rigged base mesh to a HD export static obj from Daz Studio. Then use seUVBlendshape or similar tools to move the HD mesh based on the UV’s of the smoothed rigged base mesh.

    And finally, I wouldn’t say you need to go above matching the subd1 export from Daz Studio for animation use. It’s a good balance between having enough geometry to allow for smooth weightmaps and bending, but not so heavy that it will be a chore to try and animate.

    You can then bake displacement and normal maps for the rest of the fine detail if needed. This will give you significantly better results than using just a smoothed base mesh default FBX export, even with displacement and normal maps.

    The point is, all of this can be scripted and automated to make the process of going from Daz Studio to Maya pretty seamless. No one has released a complete product yet, but that doesn’t mean it isn’t possible.

    I suppose it’s all about the final result you want to obtain. The MDD or Alembic workflow is a perfectly valid one too, but personally I cannot go from the freedom of animating in Maya to the much more restricted method of animating in Daz Studio.

    Daz Studio won’t gain much traction in other industries such as Game Dev and Film without the ability to seamlessly move assets between programs. Whether that is something Daz and the community would want to cater to, I can’t say. But that is where my focus lies.

    Personally, I’m going to continue on my “truly pointless endeavour” and help others along where I can.

    Cheers,

    Daniel

    example1.PNG
    534 x 480 - 18K
    example2.PNG
    1350 x 1211 - 622K
    Post edited by Intheflesh on
  • wolf359wolf359 Posts: 2,023
    edited November 2018

    Hi 
    My hat is off to you
    as you clearly are a highly experienced user of Autodesk Maya.

    I personally am only interested in Daz genesis figures for their
    looks & versatility in my final animation renders.
    From my workflow/pipeline perspective ,their maximum versatility is 
     most easily accessed inside Daz studio.

    With the DSON based "Dex" plugin ,indeed you get alot of genesis like
    functionality ,in Maya, until you convert to Maya human IK for
    animation& mocap retargeting  when you then lose all of the Daz studio 
    style pose controls& pose loading .

    https://www.daz3d.com/forums/discussion/278111/dex-dson-exchange-plugin-for-maya/p1

    Presumably you are bringing the rig into Maya to use the Maya human IK system
    for animation which an experienced user like you, could have done without the plugin. 

     

    I animate with realtime Avatars in Iclone Pro Pipeline and 
    retarget the  motion Daz genesis figures Via custom BVH.

    I  am a Space based scif fi enthusiast and My CG characters are only a part of my visual story telling
    I Model my my own clothing and typically spend alot of time assembling and lighting my  Sci fi environments
    and setting up cameras in Cinema4D .

    I prefer to have my preanimated figures come in ready to render 
    after only some minor texture tweaks.

    Not undertaking all of the labor, you have described here
    Essentially "rebuilding" them from an FBX import each time

    Much like a film Director would expect Tom Cruise to walk
    onto the set fully dressed with make up and hair.. .not in his
    bathrobe ,unshaven with "bed hair"


    I can get the "Appearance" of HD details with normal mapps and the whole JCM
    fidelity issue is moot in a mesh Baked to MDD at whatever level of SubD it had in Daz studio.

    Of course any new animation can be sent  over as  replacement MDD data to existing meshes in C4D 
    as long as I dont change the Vertex count in Daz studio with different clothing or hair than the original export

    Of course all pipelines differ in terms of software imperitives and personal user preference.

    Post edited by wolf359 on
  • InthefleshIntheflesh Posts: 42
    edited November 2018
    wolf359 said:

     

    With the DSON based "Dex" plugin ,indeed you get alot of genesis like
    functionality ,in Maya, until you convert to Maya human IK for
    animation& mocap retargeting  when you then lose all of the Daz studio 
    style pose controls& pose loading .

    https://www.daz3d.com/forums/discussion/278111/dex-dson-exchange-plugin-for-maya/p1

    Just because it's not a current feature, doesn't mean it isn't possible. Poses are simply preset tranforms of joints. There's no technical reason that can't be translated to HIK. Not that you need to use HIK in the first place; most professional rigs are created using standard joints just like the Daz Studio fbx export. Pose controls are instead implemented as control rigs and set driven keys in Maya. Again, all of that can be scripted to be one click, especially considering the rig and geometry topology is always the same on export.

    wolf359 said:

     

    I prefer to have my preanimated figures come in ready to render 
    after only some minor texture tweaks.

    Not undertaking all of the labor, you have described here
    Essentially "rebuilding" them from an FBX import each time

    As I said earlier, every step can be scripted and automated. There wouldn't be all of the labor each time. I feel you're hung up on what is possible right now with the avalible products, but if this isn't discussed and instead pushed to the side as impossible or not worth the effort nothing will change.

    Yes, pipelines will differ based on software and preferences. But i've frequently seen people being told on these forums that something won't work when that simply isn't the case. It's all possible, and someone with more scripting skills than myself could make it avaliable for everyone who's interested.

    Post edited by Intheflesh on
  • wolf359wolf359 Posts: 2,023

    There wouldn't be all of the labor each time. 
    I feel you're hung up on what is possible right now with the
     available products,"

    Indeed MEL script can making very nearly anything possible
    In Autodesk Maya.
    However My personal  demarcation line regarding what is technically possible in the future and
    what is practically worthwhile in production right now, is perhaps more rigid than most people
    I suppose 

    Ironicly I feel too many people are "hung up" on the Daz genesis models in general
    and spend way too much time trying to replicate their Daz native functionality in 
    other programs.
    They are nice ,versatile but not **that **special  (IMHO) 

    To me it makes no sense to be sitting in the mighty Autodesk Maya.
    Loading canned poses from some Daz content library via some third party script
    only to have G9 arrive with some  "exciting"new ornamental ,Pooware"enhancements"
    that will break all of the existing plugins and scripts.
    And the fanciful chase after the golden unicorn begins anew.

     

    I recently had a very long and Educational online exchange with a self funded
    Game Dev studio owner who's team was at its wits end tryin to get Genesis
    2 figures into a Unity based Gameanimation pipeline Via Iclone.
    ( G3/8 was a nonstarter due to the 4 extra twist bones)
     ,Long story short ,he is moving on to other recently
    introduced  non Daz, base Avatars and his pipeline is now as smooth as silk. 

  • joseftjoseft Posts: 169

    Wow, there are certainly some strong opinions in this thread.

    I'm one of the people who "claim to have managed" to utilize HD characters in Maya, and hope I can clear up some misconceptions. I won't be providing a full step by step workflow in this comment but I can point you in the right direction.

    When it comes to plugins/scripts, in my opinion Genesis 8 for Maya (https://www.daz3d.com/genesis-8-for-maya) is more complete than Daz to Maya (https://www.daz3d.com/daz-to-maya). Daz to Maya does have an option to convert the shaders to other render engines, but considering all the textures aren't exported by Daz Studio as default I prefer to set them up from scratch anyway. You can always save it as a material in Maya to apply to any other import and simply swap the textures, or script it rather easily. 

    The "all manner of scripted trickery and nerdy McNerd technobabble" the scripts perform IS using the native Maya tools to emulate the Daz Studio behaviour, but why is that a bad thing? It's simply setting up joints to control JCM's and facial morphs to work in tandem where needed, exactly what Daz Studio is doing internally. By the point that you're exporting a character to Maya for animation you are likely to have made final decisions on their appearance, so losing the ability to completely change the character isn't a big deal. That's not to say it isn't possible though, as the Dex (DSON Exchange) plugin for Maya shows (https://www.daz3d.com/forums/discussion/278111/dex-dson-exchange-plugin-for-maya/p1).

    Poses can be used in Maya

    Clothing and hair can also be used, with different options depending on your desired results:

    • Use the joints and weighting imported from the FBX 
    • Set up clothing with a wrap deformer or cvwrap for extra speed (https://github.com/chadmv/cvwrap)
    • Use nCloth to add dynamics to clothing and transmapped hair with much more control and less issues than dForce
    • Convert hair planes to curves with GHM2 (https://thundercloud-studio.com/product/gmh2/) and simulate with nHair for added realisim. 

    The issue then is HD morphs, and how to get those out of Daz Studio and into Maya.

    When exporting an FBX file from Daz Studio, you get everything you need including morphs. But Daz only exports at the base resolution mesh. You can override this behaviour by locking the SubDivision Level in the Parameters Pane to whatever resolution you’d like to have in Maya.

    Be careful though, as this can take some time and produce large files because Daz Studio is exporting a HD mesh for each morph target and JCM you select. The weight maps are also broken due to changes in vertex count, but that can be rectified.

    To match Daz SubD in Maya as close as I can I use the following settings:

    Set the Division Levels to be the same as whatever you exported your HD mesh from Daz Studio.

    There may still be very slight differences in vertex position in some areas after applying the smooth. The important thing here is that the UV’s should match the HD version now, which gives a lot of flexibly for transferring data between the meshes.

    A quick tip here is to use Transfer Attributes (Vertex Position: On, Sample Space: UV). This will make your smoothed base mesh match your HD mesh exactly.

    Then, you transfer the skin weights from the rigged base mesh to the HD base mesh and hook up your JCM’s and pJCM’s.

    So that’s the basics of it, although there are a lot of smaller things in between. But the end result is a rigged Daz model in Maya with HD morphs and JCMS, and the ability to use poses, hair, clothing and textures.

    If you don’t care as much about having exact matching HD morphs and JCM’s, you could go the simpler route of simply smoothing and matching the rigged base mesh to a HD export static obj from Daz Studio. Then use seUVBlendshape or similar tools to move the HD mesh based on the UV’s of the smoothed rigged base mesh.

    And finally, I wouldn’t say you need to go above matching the subd1 export from Daz Studio for animation use. It’s a good balance between having enough geometry to allow for smooth weightmaps and bending, but not so heavy that it will be a chore to try and animate.

    You can then bake displacement and normal maps for the rest of the fine detail if needed. This will give you significantly better results than using just a smoothed base mesh default FBX export, even with displacement and normal maps.

    The point is, all of this can be scripted and automated to make the process of going from Daz Studio to Maya pretty seamless. No one has released a complete product yet, but that doesn’t mean it isn’t possible.

    I suppose it’s all about the final result you want to obtain. The MDD or Alembic workflow is a perfectly valid one too, but personally I cannot go from the freedom of animating in Maya to the much more restricted method of animating in Daz Studio.

    Daz Studio won’t gain much traction in other industries such as Game Dev and Film without the ability to seamlessly move assets between programs. Whether that is something Daz and the community would want to cater to, I can’t say. But that is where my focus lies.

    Personally, I’m going to continue on my “truly pointless endeavour” and help others along where I can.

    Cheers,

    Daniel

    That is some incredibly useful information. Thank you for sharing that.

    I am one of those people in the process of learning Maya, and have dearly wanted to be able to bring a fully functional Daz character across. Would also consider parting with one of my kidneys for a product that automates the processes you described! I dont have much experience with scripting, but i think i know enough to know that writing something to automate all that would be a massive amount of work

    Having already tried Genesis 8 to Maya and D2M, i can agree neither of them are complete solutions

Sign In or Register to comment.