Home Quixel Megascans

IN PROGRESS: Curvature mask

I'm still trying to figure out how to input map for high poly model with no baked normals.

In the graphic below you can see different input and their result in dynamask (sharp and Huge). I used the sample AK gun for these test.

On the left, the input is a normals(baked from high poly) . And below it, the 'Huge' mask that is made from that input. So here all the masks works perfectly from sharp to huge, you get nice fully toned grayscale mask. All smart materials will work with it right out the box.

In the middle, i made a curvature map in xnormal of the low-poly of the AK.obj. I input it in curvature slot. Dynamask here does a very bad conversion from curvature map. As is, only Sharp, fine and maybe soft will be usable. Medium/big/large/huge will have too much contrast to be usefull. And all smart materials are unusable as well without a lot tuning and custom mask.

On the right, i got that same curvature map but with high pass filter on it, then input in curvature slot. It came out pretty good in dynamask as the 'Huge' mask looks pretty similar to the one on the first column (from normals), except there banding as dDO seems to convert sharp to huge, by adding a blur and contrast at each step. I know i get these banding for big, large and huge mask.

oJsDtLN.jpg

This takes me to the conclusion that the developpers should consider creating a different mask making script when curvature map are used as input. That script should try to match the masks you get when normals are used as input for curvature (ease up on contrast level). Then everybody could use the smart materials without much tuning.

Replies

  • final_fight
    Options
    Offline / Send Message
    final_fight polycounter lvl 9
    Second one won't work coz it made out of low poly mesh. To create a proper per vertex curvature you need a much higher polys.
  • Martin7
    Options
    Offline / Send Message
    I dont get what you mean by per vertex curvature. Maybe you talking about baking maps from a high poly to low poly. In my case, It should not matter if the mesh is complex or not. To get a curvature map from a mesh in xnormal, i will use the same obj file for both high poly and low poly and will bake a perfectly working curvature map whether it's a simple box or something with hundred of thousand polys.
  • final_fight
    Options
    Offline / Send Message
    final_fight polycounter lvl 9
    On the second image you have per vertex curvature map. And xNormal curvature map won't work in DDO.
  • Martin7
    Options
    Offline / Send Message
    Then how a curvature map that would work with dDO, should be generated then? Can you show a sample image?
  • final_fight
    Options
    Offline / Send Message
    final_fight polycounter lvl 9
    The best one you can get is from the tangent normal map.
  • Martin7
    Options
    Offline / Send Message
    Think i found a fix using a recorded action script.
    So what i do is i create a project and using the curvature map input and obj as input.
    Once the project created, I add in this case, a bumblebee smart material, clic on the folder icon , then clic on a layer mask to open dynamask.
    Then I paste my curvature map in custom mask folder, change layer setting to overlay,
    then run my action script which look like this ...
    -duplicate layer, add blur (something like 10-15 pixels for a 4k map)
    -then duplicate again, add blur... 7 times in all.

    So i end up with 7 layers from sharp to Huge equivalent. I set the custom mask folder to the same thing as the curvature tab in dynamask (it's often set to overlay) and turn off curvature mask in dynamask and here's the result. I repeated the process for each layer of a smart material.

    So here on the left, i opened the AK sample file (which use normals map as curvature) and just added the bumblebee smart material on top of all. . On the right I use the same AK obj. and input a curvature map made from the low poly, in the curvature slot.

    To recreate a smart material mask, i also have to match the opacity on my 7 custom curvature mask, the same way it looks like in dynamask curvature tab.

    The curvature map option (on the right) doesn't quite match the normals map (on the left) yet, but i think by fine tuning the action script, I'm sure it would be possible to get a pretty close match.

    It's not perfect match but is very workable option.


    swgZ1GU.jpg
  • Martin7
  • Eric Ramberg
    Options
    Offline / Send Message
    Martin7 (What happend to the other 6 Martins btw?) I see you already found a workable solution, there is also a guide on the WIKI on the subject - http://quixel.se/usermanual/quixelsuite/doku.php?id=inputmaps#curvature

    When the GPU baker is released (hopefully soon) this won´t be a problem anymore :)
  • Martin7
    Options
    Offline / Send Message
    Have you seen the movie Moon? You know that all Martins are clones? I'm the 7th :-)

    Thanks Eric for droping in. Now what do you mean by with gpu baker it wont be a problem? It will create a curvature map that is more close in terms of tonal value to what ddo do with normals map when converting those into curvature mask? If so, i'm still sceptic that it could match the kind of result we get with normals converted in curvature mask. I mean if dynamask will still use the same script to create the seven curvature mask wheter the base mask is from a normals or from a curvature map. I mean a slight difference in tonal value and all the more blurry version (big, large and huge) gets unusable. I wish Teddy would create an option for dynamask to have a different script for each, one for normals as input and one for curvature map as input.
Sign In or Register to comment.