PBR can help you paint better

I’m always trying to understand better about the hand painting steps and techniques. I have pretty good painting skill, but still feel fuzzy about coloring. This is because I still don’t fully understand the rules behind it.

All the tutorials and books I have read  just teach how to paint, but never explain why.

Finally, I think I made progress and I’m kinda excited about it. Despite my English writing skills, I think I should share with you what I learned.

In the very beginning of this article, I want to thank the computer graphic Programmers for continuing to dig until they got to the bottom of the problem and solved it. But after all, it’s the artists who make the beautiful art, that’s why I want to share this article to all the game artists.

Unity3D 5 will release soon with the Physically Based Rendering system. I write shader for living, so I’d better learn it now. Surprise surprise, I figured out the rules of PBR actually really helpful for my hand painting skill.

PBR is based on real world physics. The old way to write a shader is based on experience: Observe the world, see here is a highlight, then add a highlight in the shader formula, there is a shadow, then add a shadow formula too. We don’t know why there are highlights and shadows. Much like the traditional painting, the details in the painting depends on the artist’s eye, not the understanding of the physical laws of light in the real world.

The meat start here:

Physically Based Rendering has 6 elements :

Diffusion, Reflection, Energy Conservation, Metals/Insulator, Fresnel, Micro Surface.

Diffusion: when light hits an object, photons will punch through the gaps of the atoms, bouncing around. If the photon is on a certain frequency, it will be absorbed by the atoms. Then a certain percentage of the light will be able to punch through the surface again and finally fly into our eyes. The color of the object depends on the leftover photon’s frequency. Diffusion = Object’s Natural Color

(this image is based on Jeff Russell’s Basic Theory of Physically-Based Rendering )

Reflection: the photons hit the surface, but didn’t penetrate. They bounced off the first layer of atoms. no photon get absorbed. Reflection = Environment Light’s Color.

(this image is based on Jeff Russell’s Basic Theory of Physically-Based Rendering )

Energy Conservation:Diffusion + Reflection < Light shoot on it

Metals/Insulator: The different between metal and insulator is the atomic structure Metals’ structure is stronger than insulator’s, so it behave differently when light hits each of them. Metals’ Diffusion: photons can’t penetrate the first layer of atoms, all the photons will be reflected back, that’s why metals don’t have diffusion color, or you can say, metals diffusion color is black. Metals Reflection: some metals atoms will absorb certain frequency photons, like gold’s atoms will absorb blue photons and reflect the rest, thats why gold’s reflection color is tinted in yellow. Quantum Physics provide a deeper explanation, you can google it if you are interested.

Fresnel: When the line of sight is perpendicular to the surface, reflectivity is minimized; When the angle between the line of sight and the object’s surface gets smaller, the reflectivity will get stronger. If you look at a sphere, the reflectivity is weaker in the center and stronger near the edge.

(this image is from Jeff Russell’s Basic Theory of Physically-Based Rendering )

Micro Surface: the light reflections occur at the atomic level, which means it is super sensitive to the roughness of the surface. The rougher the surface is, the more blurry the reflection will be.

(this image is from Jeff Russell’s Basic Theory of Physically-Based Rendering )

The previous paragraphs are a general introduction of Physically-Based Rendering. What is the relationship between PBR and traditional painting?

There are two aspects: The first one is the value of an object. The correct value for an object is “Natural Color’s Lightness” plus “Ambient light reflection’s Lightness”; Natural Color’s Lightness is the same thing as Diffusion’s lightness. The difficult part is the Ambient light reflection’s Lightness which will be mainly influenced by reflectivity rate. In order to get correct reflectivity rate, you have to consider Material, Micro Surface and Fresnel. Once you get the right reflectivity, you can use it to multiply ambient light, then get the right value, at a specific spot on the object.

When we paint the value, this is how the PBR elements work:

Diffusion: When the diffusion is brighter, the value will be brighter as a whole.

Reflection: Higher dense materials have stronger reflection and less Diffusion and vice versa

Energy Conservation: Diffusion + Reflection < The light shooting on the surface

Metals/Insulators: Metals don’t have Diffusion, the diffuse colors we see most likely are oxides on the surface of the object.

Fresnel: The smaller the angle between the line of sight and the surface, the stronger the reflectivity will be.

Micro Surface: The rougher the surface is,  the blurrier the reflection will be.

The second aspect is COLOR: This is easy(finally it’s easy for me now, haha), Because Natural Color + Ambient light color * reflectivity = object’s color. The higher the Reflectivity rate is, the stronger Ambient light color will be and vice versa.

When you are trying to use those rules to paint, it’s still quite complicated, color is the easy part, but the value’s reflection part, need to be considered by Reflection(Vary in different Material), Micro Surface and Fresnel. Then adjust the overall picture depending on Energy Conservation; Let’s break down the painting process step by step: (btw, the steps does not necessarily match each of the PBR rules one by one)

Example:

(the images below are from awesome artist Sam Nielson’s tutorial)

Lines and shapes must be completed first. How ever there is not much to say, because they’re basic skills.

 

make a new layer, lower the line layer’s opacity,then we are ready to paint the value.

This is an interesting step, he painted Ambient Occlusion first; There are many ways to calculate AO in computer rendering, but the basic principles are the same: When the angle between surfaces is smaller than 90 degrees or when the distance between surfaces is small, then the computer will do AO on the surfaces. We do computer rendered AO because it’s fast and it can filter out the extra reflections from the darker side. In hand painting, we do AO for the similar reason: it’s fast and easy to understand.

Ok, in this step, the bigger general value starts to appear. Pay attention to how the PBR rules changed the value: With Micro Surface and Reflection — Clothing material is softer and rougher than skin, so highlight on clothes are bigger and fuzzier. Highlights on the skin are more focused, the boundary of dark parts and bright parts is clearer; With Fresnel—On the sleeves’ edge, the reflectivity is stronger when closer to the edge, because the angle is changing. The value also becomes brighter as well. It’s happening all over the place, on the mustache, the cup and everywhere else. Energy Conservation — is not very obvious for 2D painting, just pay attention to the overall contrast, don’t make the whole image look like an overexposed photo.(note: this is just the value of overall painting, without diffuse color)

Overlay the AO layer and shadow layer, the value part is finished(without Diffuse). AO is kind of easy, as long as you have solid knowledge of perspective . The hard part is the paint overall value: have to fully understand how to combine Reflection,  Micro Surface, Fresnel and  Energy Conservation rules, to figure out the different reflectivity rate on different parts. Then use the reflectivity to multiply the light which shines on each part, to get the final value. It needs some practice for sure.

Now it’s time to add some color. Hide the AO and value layer and use flat colors to fill up the image. The color should be the Object’s Natural Color, and yes, this is the Diffusion. In the AO and value layer, we hadn’t painted diffuse, but now it’s the time. Adjust the color’s brightness and saturation to show the correct natural color.

This is an easy step, just unhide the AO and value layer and do a overlay, then we get Diffusion (diffuse color’s brightness and saturation) + Reflection(reflection’s brightness). Now we are only missing one thing: reflection light’s color (which is reflection’s saturation).

This step is the final finishing touch, Just the same as how we figured out the value part, we need to calculate the different reflectivity rate on different parts, then paint a ambient light’s color on it. The stronger the reflectivity is, the more saturation we get.

That’s it.

Sum up

1: diffuse color is easy, just focus on the difference of brightness and saturation between different materials.

2: reflection has two steps.

Step One, Value: Think about Materials (Diffusion), Roughness (Micro Surface),  Visual Angle (Fresnel) to calculate the reflectivity on different parts, use reflectivity multiply the light’s intensity, then we have the value.

Step Two, Color: Use the same reflectivity to multiply the light’s color, then we have the color hue and  saturation.

 

Posted in Uncategorized | Comments Off

Opus Pocus Trailer

“Opus Pocus” – Game Trailer from T.J. McLain on Vimeo.

Posted in Uncategorized | Leave a comment

Opus Pocus level texture

Posted in Uncategorized | Leave a comment

OpusPokus Character

Posted in Uncategorized | Leave a comment