Sub surface scattering & face rendering

This is a piece of technology that I’ve been working on for years. I wanted to show you guys the current state of it.
I always wanted to bring high quality graphics to Unity, trying to mimic the real world behavior every day… and one of the important topics was character rendering, which is shown here.

The following images shows the test subject I did years ago (Dave) under different lighting conditions.
Common features we see here:

  • Light diffusion on skin and eyes (multiple diffusion profiles as seen in UE4)

  • Cornea refraction

  • Iris incident light refraction

  • Tearline

  • Light passing through ears

  • Environment reflections

  • Eye reflection masking


This is a never-ending task, so there is still a lot to do :slight_smile:

6 Likes

Light skin is a ALMOST a solved issue though, there is so much good practice than even I was able to bring some optimization on my own just by perusing the many doc (hello Jensen’s paper!) …

If you can find why most non white and mostly dark skin look bad (and there is quite a variety just on dark skin, or even on skin variation on a single character). I fed up of trying stuff and have other character coming out as painted white guy rather than their own ethnicity.

Looks really good

Looks incredible and I would love to see what you can do with realistic hands.

Old post, but part of the issue is that the more melanin you have, the less light is able to be scattered in your skin, there are some graphics research papers out there for doing scattering based on melanin content, at its most basic you have to have your scattering amount further modulated by how dark your albedo is, otherwise you get this more waxy or “white” look the darker the character. There are some other factors too, like skin oiliness and pore size, and also if a character doesn’t read as their ethnicity with just a basic shader/matcap, then it doesn’t matter how good the skin shader, it won’t magically make them look their ethnicity.

https://www.youtube.com/watch?v=L2nj0-hnXAY

http://graphics.ucsd.edu/papers/egsr2006skin/egsr2006skin.pdf

I didn’t came back to skin shader yet, I wonder if a simple multiply with an albedo would work as an approximation, however the main problem with painted white Guy syndrom is the skin color variations over the surface, while you can read ethnicity with simple coloring, they look like dolls, cheeks for exemple don’t get reder they goes to orange, around articulation they are blacker, and there is really two memanin type in varying mix contributing colors differently, eumelanin and phylomelanin, the map of the variation is undocumented.

Would be cool to try it out e.g. in web player or beat, would you consider something like that, to wet the taste-buds?