half4.xyz

Blog Content

Home – Blog Content

Physically Modeling Skin Tones

Some of the types of effects you can achieve

In this tutorial series, we will cover a novel approach to coloring skin tones in realtime. Our technique will:

  • Generate physically correct skin tones based on Monte Carlo reflectance simulations from spectral absorption data.
  • Enable the realtime changing of skin color, whilst maintaining underlying pigmentation (such as blemishes, scars, moles, pink lips, even make-up)
  • Support tan lines and realtime blushing
  • Generate physically correct skin tones based on Monte Carlo reflectance simulations from spectral absorption data.

Why Do This?

Motivations for this approach.

More Diversity For Less Work

Achieving ethnic diversity in games is an important goal, and one that is so critically undervalued and ignored. This technique will allow to pick from a wide range of skin colors, and change the skin color of our characters, without having to re-author textures, or have convoluted workflows that normalize textures (i.e. greyscale textures) to hack a result. There is no reason not to even randomize your skin tones with this approach and get a truly diverse cast of characters.

Paragon characters with dynamic skin tones

More Believable Characters

Facial appearance depends on both the physical and physiological state of the skin. As people move, talk, undergo stress, and change expression, skin appearance is in constant flux. One of the key indicators of these changes is the color of skin. Skin color is determined by scattering and absorption of light within the skin layers, caused mostly by concentrations of two chromophores, melanin and hemoglobin.

Jimenez et al. [2010]

To get more convincing skin color, we need to be able to change the color of the skin at run time, such as with blushing, or when angry. We need to be able to “redden” the face.

In addition, we want our skin color to be physically-based. That is, we won’t want to pick from edited photos to sample our skin color – we want an albedo that is grounded in real values of human skin pigmentation. This way, we won’t need to spend as long calibrating our ‘guessed’ skin tones against real world photos – we will just have real values to select from.

Learn About Spectral Values and Monte Carlo Simulation

There’s no better excuse to learn something than for the sake of it! This will hopefully teach you something new. I had to learn many of the techniques demonstrated here just for this tutorial because I couldn’t find tutorials covering much of it anyway. Hopefully I can share these learnings, because Spectral Aborption, reflection and Monte Carlo simulations are great to have in your toolbox.

Table of Contents

Physically Modeling Skin Tones

Introduction: Setting Up

Part 1 (Theory): What Makes Skin Color?

Part 1 (Practical): What Makes Skin Color?

Part 2 (Theory): The Monte Carlo Simulation

Part 2 (Practical): The Monte Carlo Simulation

Part 3 (Theory): Spectral Reflection & Color Spaces

Part 3 (Practical): Spectral Reflection & Color Spaces

Part 3b (Practical): Python Imaging Library (Pillow)

Part 4: Skin Shader

Part 5: Extending the Shader

Part 6: Concluding Notes

 

 

Leave a Reply

Most Recent Posts

  • All Post
  • Articles
  • Quick Tips
  • Tangents
  • Tutorials
  • Uncategorized

Services

FAQ's

Privacy Policy

Terms & Condition

Team

Contact Us

Company

About Us

Services

Latest News

© 2023 half4.xyz ltd. Created with Royal Elementor Addons