Guide: Working with Hd-Addons and Subdivision levels

linvanchenelinvanchene Posts: 1,347

The goal is to provide an overview of topics that may come up when working with HD-Addons and Subdivision levels in DAZ Studio.

Because it has become quite long different sections are split into different posts.

Just jump to those sections which are of interest to you...

- - -

@ Understanding the difference between HD-Addon morphs and maps and their usage

The basics:

HD morph:

 High Resolution. Used for objects clearly visible in the foreground of your image

Accurate physically calculated shadows are cast, works great with Physically based rendering (PBR).

For the best result dial in exactly the same (render) SubDivision level for the morph as it was created for.

You can improve system performance by adjusting the (render) subdivision to a lower level but then you will see less detail.

Allows export the model as .obj  . at the highest SubD level to use or render in 3rd party software.

 

Displacement map

High Resolution. Used for objects clearly visible in the foreground of your image

Accurate physically calculated shadows are cast. Looks great in PBR but you need to set it up properly.

There are different types of displacement, more advanced ones like vector displacement are not yet supported by DS or Iray

There are different types of maps (0 = black or mid grey).  Render engines feature adjustment sliders to make use of all of them

 

Bump map

Low resolution. Used for objects in the background of the image

Simulated simplified shadows can be detected in directional light situations. (clothing structure may look fake etc)

Versatile: Bump maps can be added to the displacement slot and with the help of adjustment sliders look great also in BPR

 

Normal map

Low resolution. Used for objects in the background of the image

Simulated simplified shadows can be detected in directional light situations. (clothing structure may look fake etc)

There are different types of normal maps designed by different software for different render engines.

Render engines may not feature sliders to quickly adjust normal maps.

- - -

- - -

Post edited by linvanchene on

Comments

  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    @ Mixing HD Add-ons with existing maps

    Question:

    Is it wrong to use maps in combination with HD morphs? Or are you supposed to use one or the other?

     

    - In theory when you create details for a model in a 3rd party software you catch all details together by exporting to the one map type or morph type you prefer.

    In theory artists could provide all different map types as separate presets in their products so the customers can choose the one that bests fits the current need.

    In practice DAZ3D artists have a history of mixing different map types for differrent types of detail.

    - - -

    - In theory HD morphs could be a replacement to use instead of other maps.

    In practice HD morphs are often used to add some other type of details as well to be used in combination with existing maps.

    - - -

    Commentary:

    Detailed product descriptions could help to answer how the product with an HD-addon is intended to be used:

    - are HD morphs  supposed to be a replacement or an "add-on" to the existing maps?

    -  what type of detail is provided with what type of morph or map?

    -  which subdivision level is needed to see the morph at the highest quality?

    - are different preset types for each object included?

    Example: One high resolution preset to use the model in the foreground One low resolution preset to use the model in the background

     

    - - -

    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited July 2017

     

    @ SubDivision levels vs Render SubD levels

     

    The Render SubD level raises the SubDivision level only in the calculations by the (Iray) render engine in the final render window. The SubDivision level of the object in the DAZ Studio scene is not affected.

    Example G8F:

    Set Render Subdivision level to 3

    Set Subdivision level at 0

    This means a scene object can have only 16'000 points (vertices) in the DAZ Studio scene but is calculated and displayed as a 1'000'000 points (vertices) object in the final render window.

    -> You raise the Render SubD level to see HD morph effects during final rendering without slowing down DAZ Studio scene manipulation.

     

    - - -

    Raising the SubDivision level will also raise the actual point count of the object in the scene.

    - You need to raise the Subdivision level if you want to see the effect of HD Add-ons in the openGL or Iray Preview viewport drawing styles that are not able to support Render SubD.

    - You need to raise the SubDivision level if you want to export models with HD Add-ons to 3rd party software.

    - You need to raise the SubDivision level if you want to see the HD morphs visible in 3rd party render engines like Octane.

    - - -

    - - -

    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited July 2017

    @ Understanding the difference between Subdivision levels

    Basically if you subdivide a mesh you add addtional points without changing the position of the allready existing ones.

    Each new subdivision level will increase the point count by multiplying it by ~ 4x depending on the shape of the faces (tris, quads)

    https://en.wikipedia.org/wiki/Subdivision_surface

    Note that different software may count the subdivision levels differently.

    DAZ Studio calls the base resolution SubD level 0.

    In ZBrush the base resolution is called SDiv level 1.

    Make sure to always indicate the software when talking about subdivision levels.

    The difference in the actual point count increases drastically on higher levels:

     

     

    In practice this means:

    If a HD morph is sculpted for the Subdivision level 3 you need to dial in the same Subdivision level 3 in order to see the morph. If you dial in lower subdivision levels you will only be able to observe the very rough changes to the mesh but not the finer details. The difference between SubD 2 and SubD 3 is ~ 800'000 points that are not being displayed on the lower level!

    Another example: If micro level details like pores would be created at subdivision level 4 it is crucial to dial in the morph at subdivision level 4 as well. If you would dial in the lower subdivision level 3 the difference would now be ~ 3'000'000 points that are not being displayed.

    -> It is crucial to know the SubDivision level for which the morph was created!

    - - -

    Commentary:

    It might help both existing and new users if HD morph silders would include Subdivision level information

    Example:

    Charactername - Bodypart - HD - SubDivision level

    Eva 8 Head HD SubD 3

    Adam 8 Body HD SubD 3

    - - -

    Cube - DAZ Studio SubD vs ZBrush SDiv levels.jpg
    1052 x 242 - 109K
    G8F - DAZ Studio SubD vs ZBrush SDiv levels.jpg
    1050 x 242 - 101K
    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    @ checking the point (vertex) count of an object when dialing in subdivision levels

    You can use the Scene Info tab to show how much points (vertices) an object has when dialing in actual subdivision levels.

    Example

    Genesis 8 Female

    SubDivision level 0

    16556 Points (Vertices)

    - - -

    Genesis 8 Female

    SubDivision level 1

     65'806 Points (Vertices)

     

    - - -

    Genesis 8 Female

    SubDivision level 2

    262'514 Points (Vertices)

     

    - - -

    Genesis 8 Female

    SubDivision level 3

    1'048'762 Points (Vertices)

     

    - - -

    Genesis 8 Female

    SubDivision level 4

    4'192'568 Points (Vertices)

     

    - - -

    - - -

     

     

    DS G8F - SubD 0 - 16556.jpg
    1920 x 1080 - 441K
    DS G8F - SubD 1 - 65806.jpg
    1920 x 1080 - 438K
    DS G8F - SubD 2 - 262514.jpg
    1920 x 1080 - 418K
    DS G8F - SubD 3 - 1048762.jpg
    1920 x 1080 - 393K
    DS G8F - SubD 4 - 4192586.jpg
    1920 x 1080 - 388K
    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    @ Difference between Base Resolution and High Resolution

     Is there anything else that needs to be changed to activate HD,

     There is a toggle between Base Resolution and High Resolution.

    Base Resolution does override the value set of both the Subdivision and Render Subdivision level!

     

    At Base Resolution the model is displayed at its lowest available point (vertex) count.

    At High Resolution the values set at Subdivision and Render Subdivision level will be used.

    - - -

    Example:

    Cube

    High Resolution

    SubD Level at 4

    has 153'602 points (vertices)

    - - -

    Cube

    Base Resolution

    SubD Level at 4

    has 602 points (vertices)

    -> The SubD and Render SubD levels are ignored.

     

    - - -

    -> Make sure the toggle is at High Resolution to see HD morphs.

    - - -

    Render SubD Level - Base Resolution.jpg
    1920 x 1080 - 329K
    Render SubD Level - High Resolution.jpg
    1920 x 1080 - 335K
    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    @ SubDivision level limits

    If you want to change the SubDivision levels you may notice that sometimes you can not go higher then a set limit.

    The intention of setting a SubD limit may be that users do not accidentially raise the slider to a higher value that may freeze or crash DAZ Studio.

    Remember:  Raising the SubD level raises the point count of the model by multiplying it by ~ 4x.

    If you do want to raise the SubD level past the limit you can do so by clicking on the Parameter Settings "wheel" icon next to the parameter that you want to adjust.

    Example:

    If you want to create some microlevel detail pores for Genesis 8 Female SubD 3 with 1'048'762 Points may not be enough.

    -> Raise the limit to SubD level 4 before exporting your .obj

    4'192'568 Points should be enough to sculpt and create high resolution diffuse and displacement maps.

    - - -

    Warning: (Status 2017)

    On a system with an 8 core i7 processor with 64 GB RAM a Genesis Female 8 at SubD 4 is manageable.

    However save your scene before trying out if you can raise the SubD level past the limits.

    Raise the SubD level only one at a time when trying out the limits for your personal computer.

    After raising the SubD level check if the viewport is still responsive to scene manipulations.

    Check the base resolution point (vertice) count before raising subdivision levels past the limits.

    If the model has a high base resolution even SubD 2 or 3 could crash DAZ Studio.

    - - -

    Editing SubDivision level limits.jpg
    300 x 518 - 71K
    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    @ Subdivision Algorithms and their smoothing effect

    Why do objects have rounder edges when raising the subdivision levels?

    Many subdivision algorithms like the default "Catmark" also apply a smoothing effect to edges and corners.

    If you want to keep hard edges on objects like a cube use the Biliniar Subdivision Algorithm in combination with the "Sharp Edges" Edge Interpolation.

    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,347
    edited June 2017

    reserved for future questions and answers.

    Post edited by linvanchene on
  • TaozTaoz Posts: 9,739

    Thanks for this, very useful!

  • Singular3DSingular3D Posts: 505

    Thanks for this great summary!

    I have several HD add-ons and HD morphs and characters. Is there a way to find out, which subdiv level is needed/supported by a specific asset? I try to use an optimized Render SubD Level in Daz Studio 4.9

  • linvanchenelinvanchene Posts: 1,347
    edited July 2017

    Edited 2017-07-13: Exchanged Screenshots to also include Scene Info tabs.

     

     Is there a way to find out, which subdiv level is needed/supported by a specific asset?

    As far as I know:

    If there is no information in the product description it is mostly trial and error to find the proper level when you dial in a HD morph with sliders from the shaping tab.

    If you do load a complete character HD-Addon or object from presets then in most cases it seems the Render SubD level is set at the proper value.

    - - -

    Test Setup for HD-Addon characters:

    - use a 3 point light setup

    example:

    https://www.daz3d.com/boss-pro-light-set-for-portraits-promos

    (Do not use HDRI backgrounds for portraits if you are interested in seeing accurate micro level detail shadows)

    - zoom the camera in on the face with focal lenght of 100+

    - remove the diffuse map on the face and lip surfaces

    - remove any bump, normal or displacement maps on the face and lip surfaces

    -> Now you should have a default gray skin with visible shadows cast by the 3 point light setup

    - - -

    - - -

    -> Note: Raising the Render SubD level has no effect on the Nvidia Iray Live Preview !

     

    Iray Preview - SubDivision Level 1 - Render SubD Level 1:

    - - -

    Iray Preview - SubDivision Level 1 - Render SubD Level 5:

     

    -> This means you will not see any difference in the Nvidia Iray Preview viewport when you change the Render SubD Level slider.

    - - -

    - - -

    @ Checking HD morph details in the Nvidia Iray Preview viewport

    If you are using the Nvidia Iray Preview viewport you need to raise the SubDivision level by one level to check if you can see a difference. Repeat this until you can not anymore notice any improvement.

     

    Iray Preview - SubDivision Level 2:

    It can help to have the Scene Info tab open to get an idea about how the point (vertex) count raises when increasing SubDivision Levels.

    - - -

    Iray Preview - SubDivision Level 3:

    - - -

    Iray Preview - SubDivision Level 4:

    Note: In order to dial in SubD Level 4 you may need to raise the limit to 4 as described in a previous post.

    - - -

    Iray Preview - SubDivision Level 5:

    Warning: Dialing in Subdivision Level 5  raises the point (vertex) count to ~ 17'000'000.

    Nevertheless, you cannot see any more improvement in the micro level details.

    -> It can be assumed that the morph was created for Subdivision Level 4. There is no point in dialing in a higher Subdivision Level than that.

    - - -

    @ Checking HD morph details in the in the Final Render Window

    Of course you can also compare the difference in details by using the Final Render Window.

    If you are using the Nvidia Iray Final Render Window you can just raise the Render SubD levels by one level to check if you can see a difference.
    You can keep the Subdivision level at 1. In that case the Render SubD levels will be applied only during the final render in the separate window.
    Keep increasing the Render SubD levels until you can not anymore notice any improvement.

     

    Iray Final - SubDivision Level 1 - Render SubD Level 1

    When the Final Render Window is open you can also check the Geometry Memory Consumption in the separate Render Log Window.

    -> Geometry Memory Consumption at Render SubD 1 is ~ 3.7MB (~68'000 vertices)

    - - -

    Iray Final - SubDivision Level 1 - Render SubD Level 4

    -> Geometry Memory Consumption at Render SubD 4 is ~ 231MB (~ 4'000'000 vertices)

    - - -

    - - -

     

     

    I try to use an optimized Render SubD Level in Daz Studio 4.9

    In the very first years HD-Addons may have been created for DAZ Studio SubD level 3. (~1'000'000 vertices)

    Newer DAZ Original characters with HD Addons seem to be created at SubD level 4. (~ 4'000'000 vertices)

     

    Commentary:

    -> But yes, for any morphs, characters, objects that feature HD addons it would be great to have information provided

    - in the product description,

    - on presets

    - and on sliders 

    for which SubD level the morph was created.

     

     

    Iray Final - Render SubD 1.jpg
    1920 x 1080 - 552K
    Iray Final - Render SubD 4.jpg
    1920 x 1080 - 564K
    Iray Preview - Render SubD 1.jpg
    1920 x 1080 - 377K
    Iray Preview - Render SubD 5.jpg
    1920 x 1080 - 364K
    Iray Preview - SubDivision 2.jpg
    1920 x 1080 - 397K
    Iray Preview - SubDivision 3.jpg
    1920 x 1080 - 400K
    Iray Preview - SubDivision 4.jpg
    1920 x 1080 - 411K
    Iray Preview - SubDivision 5.jpg
    1920 x 1080 - 393K
    Post edited by linvanchene on
  • Singular3DSingular3D Posts: 505

    Thanks for the fast reply. There are sometimes HD JCMs or Expression morphs in some packages and I wonder which level they use. It would be great to get a list with the levels per morph together with a product.

  • DavidGBDavidGB Posts: 565

    I'd just note that you say normal maps are low resolution for objects in the background, and I really can't agree wiht that - not in the world of DS and DAZ figures, anyway.

    Back with Genesis 2, bemoaning the lack of an HD Add-on for Gia 6 (the one G2F Base that really needed one, given the muscle detail), after noticing that the base figures with their normal maps did not look like the 'no-HD' pic in the no-HD/HD pair promo pics for the HD Add-ons, I ended up doing some experiments comparing the various G2F Base Normal Maps with the matching HD Add-on for several of the other G2F Bases (V6, Olympia 6, Stephanie 6 etc). With a G2F using the plain grey material that Genesis loaded with and otherwise unmorphed and unntextured, lighting at an angle for shadows - and this with 3Delight - I did renders at varying ranges of different body parts (some up very close) in trios: no normal map or HD morph; one of the DAZ base G2F figure normal map sets (no morph); and the matching HD morphs, all of which claim to be lvl 4 HD (no normal maps).

    In most render triplets, the no map or morph is just a bland G2F, but the renders with just a DAZ normal map set and then with just the matching HD-morph were basically identical. In many there was not a pixel difference; in the others there were at most some very slight differences I had to look very hard to see  ... not in what details were there, but just very slightly in how the light/shadow caught at one or two of the detail edges.

    It was certainly not the case that with the normal map sets that come with the DAZ base figures they are 'low resoltuion' for background objects as compared with high resolution HD morphs. The normal maps have exactly the same level/resoltuion of detail as the lvl-4 HD add-on for the figure. As far as I could see the normal maps and the HD Add-on morph for each DAZ base were generated from exactly the same subdivided base model, same resoltuion and details.

    So ... I don't know about the normal maps PAs produce, how they make them or what level of detail is in them, but the normal map set with each DAZ base figure is fully lvl 4 HD equivalent in detail resolution. ( I basically use one or another of the DAZ base normal map sets with whichever texture by whatever PA I may be using - or as currently a mixture ... decomposed the Gia 7 and Ophelia 7 normal maps into their component channels then took part of one out of its green and red channels, inserted and blended into the other's green and red, then composed the modified green and red channels back with a blue to get what I wanted .... Gia has a bad abdnomen, Ophelia a bad mid back.) Just as well, as lvl 4 HD morphs kill my computer (hideous render time that locks my computer up from multi-tasking throughout.

    Oh - and the other test i did was the same close in renders on the umorphed and otherwise untextured figure using (i) original DAZ base figure normal map sets with the surfaces set to the matching UV; and (ii) the surfaces set to Base Female UV, and DAZ base figure normal maps converted to Base Female UV just using DS's built in Map Transfer at highest quaility setting. Takes seconds to convert the Base figure normal maps to another UV like Base Female. And in every test pair rendered at any distance up to very close I got not a pixel difference between e,g. using original Gia 6 normal maps with Gia 6 UV, and Gia-6-normal-maps-converted -by-map-transfer-to-Base-Female-UV with Base Female UV. And I've redone that with some G3F DAZ Base normal map sets - again at highest resolution map transfer, there's no detectable difference in render output between the supplied DAZ Base normal maps with their UV applied and a version converted to G3F Base Female UV and the sutfaces set to that UV. So first thing i do with a new DAZ base figure is use map transfer to convert the normal maps to Base Female UV (as most of the actual texture sets I want to use from assorted PAs are Base Female UV), and then for a characater I just pick the DAZ Base normal map set that suits the character.

    And in reply to the question someone asked - for the DAZ Base figures you are intended to use either the normal maps or the HD Add-on morph, as they both producs the smame details and level of detail. Indeed if you actually load the DAZ 'V7' file it loads with normal maps (no HD morph), if you load the DAZ 'V7 HD' file it loads with the HD morph on and NO normal maps, and the same with all the other base figures and their HD counterparts. (In fact one or two 'bugfix' updates of the HD Add-on products over the years - if you look at the documentation center product pages and the updates listed on them - have been updating the HD figure loader to remove the base figure normal maps that were accidentally left one when making the HD figure load .duf.)

    So for HD level details you can just use the normal map set that came with that base (with other character textures and materials as wanted), and it only takes a few seconds with Map Transfer within DS to get versions of any of the DAZ Base normal maps in any other UV like Bae Female. And using them doesn't produce tha massive extra load of the lvl 4 HD morphs. There are odd occasions to prefer the HD Add-on morph to the corresponding normal maps - e.g. the HD details projecting into clothes IF it comes with a projection morph version included as the more recent one do. But seeing as my bugbear is usually stopping details on body morphs (SD, never mind HD) projecting unrealistically into clothes (my characters very seldom wear clothes tight enough for even e.g. SD abdominals to realistically appear in the clothes, never mind low levels of vascularity or whatever) I am almost always happy to use one or another of the DAZ base normal maps for characters rather than HD morphs.

  • linvanchenelinvanchene Posts: 1,347
    edited July 2017

     

    I'd just note that you say normal maps are low resolution for objects in the background, and I really can't agree wiht that -  not in the world of DS and DAZ figures, anyway.

    I did not write "only for the background"

    If you feel like you get all the detail that matters to you with bump and normal maps then keep using them in any way you feel comfortable in your projects.

    The summary at the beginning is called "basics" for a reason. The whole point was to give a quick idea of the most obvious differences to other options.

    - - -

    In any case, the intention of this thread is to focus on how to work with HD Addons and Subdivision levels

    If you are interested in comparing different map types vs  HD - Addons then please share some images in threads like that one:

    https://www.daz3d.com/forums/discussion/169221/iray-simple-comparison-bump-normal-displacement

    - - -

     

    Post edited by linvanchene on
  • VindkaldVindkald Posts: 9

    What about exporting SubD levels with FBX? 

    The FBX ecporting dialog has the option "SubD Information": do you know what it does if i check it? Becouse when i import the fbx into external softwares i do not have the higher poly figure.

    Thanks

  • hansolocambohansolocambo Posts: 649
    edited April 2020

    The dumb thing being that displacement is calculated on the base level without Subd.

    Take any Genesis with a Render Subd of 1 let's say. And put any random Displacement map on its face for example.

    Render that : the face will be all swollen by the disp. 

    Now set the Subd to 5 let's say. Do the render again.

    Results will be exactly the same image, pixel by pixel. Render Subd has no effect at all and is calculated on the low level geometry :(

    Only way to get a fine and precise displacement for an image is to export Daz with a high Subd and import it as Obj. Then you copy-paste the shaders when/if necessary and you'll be able to render with a proper displcament acting on a high geometry. 

    That's really not cool.

    Post edited by hansolocambo on
  • The dumb thing being that displacement is calculated on the base level without Subd.

    Take any Genesis with a Render Subd of 1 let's say. And put any random Displacement map on its face for example.

    Render that : the face will be all swollen by the disp. 

    Now set the Subd to 5 let's say. Do the render again.

    Results will be exactly the same image, pixel by pixel. Render Subd has no effect at all and is calculated on the low level geometry :(

    Only way to get a fine and precise displacement for an image is to export Daz with a high Subd and import it as Obj. Then you copy-paste the shaders when/if necessary and you'll be able to render with a proper displcament acting on a high geometry. 

    That's really not cool.

    There is something wrong with the way you are working, or you have found a bug. Displacement usually does, and certainly should, use the vertices created by SubD.

  • I'll have a play in a bit to see if that's right or not, but maybe your confusing the viewport 'render' with the main render? Render SubD has no effect on the viewport 'render'.

    Also there is a SubD setting in the materials properties just under the displacement that sets the ammount of displacement detail.

  • Richard HaseltineRichard Haseltine Posts: 97,143
    edited April 2020

    I'll have a play in a bit to see if that's right or not, but maybe your confusing the viewport 'render' with the main render? Render SubD has no effect on the viewport 'render'.

    Also there is a SubD setting in the materials properties just under the displacement that sets the ammount of displacement detail.

    The actual level of subivision of the model will be the greatest of the model's Render SubD setting in Parameters and the surface displacement settings (there's no point in having different settings on different surfaces as the whole mesh uses the one value). The difference between the model setting and the surface setting is that the latter divides in place, without smoothing. Fairly early on I was told that it is, if possble, more efficient to use the object level setting but I ray has been through several versions since then so that may no longer be true.

    Post edited by Richard Haseltine on
Sign In or Register to comment.