Home Technical Talk

Blended normals hack for fake SSS

2

Replies

  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    Malus wrote: »
    EarthQuake:
    My Lead and I were talking about tinkering with the possibility of using pre-generated cubemaps for that exact purpose, do you know of any games that have or will be doing it?

    I'd love to see some tests/results.
    Maybe start a new thread if you do, so as to not high-jack Koddes awesomeness. :)

    Since nobody else got around to it I started a new thread for discussing this :)
  • arshlevon
    Options
    Offline / Send Message
    arshlevon polycounter lvl 18
    kodde, would you mind taking a screen grab of your graph in mental mill? would love to see what it looks like.
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    arshlevon wrote: »
    kodde, would you mind taking a screen grab of your graph in mental mill? would love to see what it looks like.

    Sure thing. Got the work file at work so I'll post one in a few hours.
    Just to see what mental mill looks like or is it any specific solution you are interested in?
  • arshlevon
    Options
    Offline / Send Message
    arshlevon polycounter lvl 18
    I just have a better time understanding what's going on in a graph, I have used this technique in production, and looked through the code I just want to see the graph to undertand it a little better. Thanks!
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    Ok here we go.
    There's a v1.1 Mental Mill out but I prefer v1.0 for CGFX authoring. v1.1 has some critical bugs for what I'm used to doing.

    blendedshaderoverview.jpg

    blendedshaderblendedcom.jpg

    blendedshaderblendedcom.jpg
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    Many nodes are just black here since I haven't loaded all the textures in Mental Mill. It's a great thing to do, but before exporting i usually delete all absolute paths to textures to get a clean shader export.
  • arshlevon
    Options
    Offline / Send Message
    arshlevon polycounter lvl 18
    thanks a lot! yeah my node stuff is messy too, will comb over this at lunch.

    thanks again.
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 19
    This is not something you do in your texture.

    It was a while since I played with this, but if I'm not mistaking. This is the principle.

    Picture that you have two states.
    A) Not using normal map
    B) Using normal map

    Now with just traditional normal mapping you just go full out with state B. But blended normal does a mix of state A and B, with different weighting for the different channels used for the normal mapping (RGB).

    If I'm not mistaking, you blend the G and B channel to use mostly state B. While the R channel you lean towards using mostly state A. This gives the illusion of the red parts being more wide. In some sense I guess mimics the look SSS gives, reddish color due to the light scattering inside the body and exiting again.

    As mentioned in this thread you can also combine this with then suppressing the Cyan color you get as a side-effect.

    You can play with this in my CGFX shader for Maya if you're using Maya.

    EDIT: Typo :)
  • equil
    Options
    Offline / Send Message
    it's essentially blending between the normal map and the geometry normals. not in photoshop though, but in the shader. The idea is to blend by different amounts for every color channel, so red bleeds through the nm bumps more than green and blue. This is supposed to mimic how small-scale subsurface scattering works, but again, it's just wrap lighting, so the result isn't that stellar.

    and this isn't something you can do without writing shaders.
  • mdeforge
    Options
    Offline / Send Message
    mdeforge polycounter lvl 14
    Wow! Now this is what polycount is about! Very interesting read. Tried it out with lcSkinShader and I'm really impressed by the results. I've got to do more tests tomorrow, but I think this may have shaved a ton of time off our renders here at work. Why render when I can playblast at the same detail? It's a shame lcSkinShader doesn't work for renders. I'm not sure how I can recreate this to work with renders without having mental mill.
  • vargatom
    Options
    Offline / Send Message
    perna wrote: »
    This bears some similarities to how we do SSS at 3point. We have a map that controls scatter amount, and the "light through the ear" effect.

    Make the ears more red. I mean seriously more red.
  • vargatom
    Options
    Offline / Send Message
    Speculars are actually still quite big. We use a full raytracing renderer (Arnold) and we still do a lot of speculars on everything because it's a good thing.

    Also, for skin, it's a pretty neat effect, especially if you can separate normal map intensity (surface bumpiness) for diffuse shading and speculars. It will mimic the translucency of the upper layer of the skin quite well. You get highly scatter speculars and a relatively smooth diffuse shading and it looks pretty nice.
    See, real human skin is very very bumpy in reality but you don't really see it. Life casts of real people and very high quality scan data are the only way to really see it.

    efty_04.jpg

    The more tricky part in realtime renderers is to smooth out the diffuse shading, itroduce the color bleed effect, and somehow create the back scatter effect mostly seen on ears...
  • chronic
    Options
    Offline / Send Message
    chronic polycounter lvl 10
    @Stradigos - the lcSkinShader should render fine with the Maya Hardware renderer like any cgfx shader, if you are getting a specific error let me know and I'll try to fix it.
  • mdeforge
    Options
    Offline / Send Message
    mdeforge polycounter lvl 14
    @Stradigos - the lcSkinShader should render fine with the Maya Hardware renderer like any cgfx shader, if you are getting a specific error let me know and I'll try to fix it.

    Ah, thanks for the tip! I'm so used to using MR I never even thought of trying out the others. Why doesn't your blood, sweat, and tears work in MR too? Just curious, that's all. I've always thought of MR as robust.
2
Sign In or Register to comment.