Artblog post #14 – Skin Shader

Much work, slow progress:

Hey everybody! Another two weeks and another blogpost, time is really flying by when you are in your graduation year. I’ve been busy again (on a skin shader) and I’m gonna talk a bit about the stuff i did.

Hard times in shader town:

I started creating my skin shader for my character customisation. Time is running out and I want to make my visuals look better. In my opinion, a good skin shader, could do half of that work. I rushed into the shader making but after a while I found out it would be a bit harder than I expected. For my skin shading I want to create a shader consisting of these parts:

  • Diffuse color
  • Skin complexion texture / bump-map
  • Skin complexion mask-map
  • Epidermal color
  • Lower dermal color
  • Lower dermal amount (subsurface scattering)
  • Specular amount map (oiliness of the skin)
  • Specular roughness map
  • Skin bump-map
  • Adding and removing of scars or birthmarks onto the main texture
  • Warpaint and or dirt onto the main texture
  • Being able to change the color tints in different regions of the head (by example the eye socket or laugh lines).

This is rather a big list and I somewhat got lost in it. I did some think work and created a system that probably could work (on paper) now I still have to implement it. But it all got delayed because I needed my model to be properly uv’ed first. This turned out to be a real chore. It’s still stretching at some parts, meaning I should redo the topology soon (not looking forward to that, I can tell you). But it’s scheduled for tonight, as of now, so I will just grab a cup of tea and put on some relaxing piano music and I will be fine.
skin shader

Whats my plan for the Skin Shader:

Uv-layouts x4:

For my shader I will uv-unwrap my model and make sure everything is laid out probably. I know there are 4 open Uv-slots per mesh in Unity. Maya can produce more but Unity can’t incorporate more (so no need to make more). I think I will be using these uv layouts to make multiple versions of the head unwrapping. If the player/user stretches the face too much by using certain face characteristics I would be able to swap the uv-layout. In that case the skin shader won’t be to0 stretched out. I can make 4 versions of the face layout so these will be probably be extremers version of the original so if for example a user makes a character with an abnormal high forehead, I will be able to swap to a uv-layout that supports it and won’t stretch too much

Vertex-colors:

I will be using the vertex color to group certain aspects of the face for example the eye socket. This way I will be able to put certain filters through specific places I want to have the effects.

Group-maps:

The same thing can be achieved through group-maps. These maps will consist of the uv-layout of the head but will have colored shapes on it. These colors represent a certain part of the head. I will be able to only apply a complexion bump-map to certain positions like the eye socket, simply by checking the color code of the shape and using it as a mask, to remove all the other parts from the complexion add phase.

These are all big plans but I still need to finish them.
The model is already uv-unwrapped but now I need to build the shader and the maps.
I will keep you updated when I got some more visuals to show you.
For now, peace out!