François Gastaldo Octopod Studio. How to Make your own Physically Correct Shading (...With Cycles...)

François Gastaldo Octopod Studio How to Make your own Physically Correct Shading (...With Cycles...) 1. What is Correct? 2. Who is correct? 3. ...
Author: Harvey Dennis
1 downloads 0 Views 3MB Size
François Gastaldo Octopod Studio

How to Make your own Physically Correct Shading (...With Cycles...)

1.

What is Correct?

2.

Who is correct?

3.

Why being Correct?

4.

How to be Correct?

5.

How to be even more Correct?

What is Correct? Any photography is physically Correct!

Being Physically Correct is:

Using the same laws in reality and in your rendering. Or

Respecting the Law of Mother Nature!

The goal is to have materials that react to light as real materials do.

What is the difference between ‘physically correct’ and ‘Physically Based’?

• Both are physically correct. • Physically Based is FROM real materials (used as input) • Physically Correct is LIKE real materials

What is the Law?

Or (don’t be afraid, I’ll explain it later)

Law of Interaction between light and materials, or behaviour of light on surface material.

Who is Correct? A lot of renderer have premade Physically Correct Shaders: • Mental Ray, iRay (©NVIDIA) • VRay (© Chaosgroup) • Maxwell (© NextLimit) • Lux Render (© Luxrender?) • Thea Render (© Solid Iris) • Arion (© RandomControl) • Octane (© Otoy) • Indigo (© Glare Technologies) • 3DSMax obsolete ScanLine renderer (© Autodesk) • and many many more!!!

Who is not, or let choice to not be Correct? • Mental Ray (©NVIDIA) • Cycles (©Blender Foundation) • RenderMan (©Pixar) • Arnold (©SolidAngle) • Lightwave (©Newtek) And just some others…

Who is using Physically Correct Shading in Production? And also home-made physically correct shaders... Disney Studio Sony Pictures Imageworks Ubisoft ILM Tri-Ace Pixar RazorBlade Many, many, many more...

Why being Correct? And why make your Own Correct Shading?

The first goal is Realistic Rendering.

Second is to have an unified shader pipeline: • All objects react in the same way to lighting • All materials are build on the same base • Materials are specific to your needs and perfectly fitted to what you want to do with them.

In other words. • No need to individually relight objects • No need to develop new shader tree for each objects. • No need to understand tons of parameters from an all-purpose material. (kind of dream, no?)

How to be Correct? At first, the LAW:

R+T+A=1

• Result is always 1 • Energy Conservation

A = Absorption

• A material absorbing light is Dark • Physically speaking, a real Absorption can’t exist. It means Heat Conversion, wavelength shift or diffusion inside the material (SSS)

R + T

Rd = 47.6%

Rs + Rd + T = 100% = 1

Input : Rd, Rs, T Corr = 1.0 / (Rd + Rs + T) If Corr > 1.0 Rd = Rd * Corr Rs = Rs * Corr T = T * Corr Output = Diffuse(Rd) + Glossy(Rs) + Glass(T)

Input : Rd, Rs, T Corr = 1.0 / (Rd + Rs + T) Corr = Min( 1.0 ; Corr ) Rd = Rd * Corr Rs = Rs * Corr T = T * Corr Output = Diffuse(Rd) + Glossy(Rs) + Glass(T)

Roughness Driven Normalization

Roughness = 0

Rs = 1, Rd = 0, Perfect Mirror

Roughness = 1

Rs = 0, Rd = 1, Perfect Lambertian surface

Roughness > 1

Rs = 0, Rd = 1, Diffuse Roughness = f(Global Roughness)

Input : Roughness Rd = Clamp(Roughness ; 0 ; 1) Rs = Clamp( 1.0 – Roughness ; 0 ; 1 ) GlossyRoughness = Roughness DiffuseRoughness = Roughness / 4.0

Which Normalization is the Best? Roughness Driven Normalization ? Proportional Normalization ? Priority Normalization ?

Rd

(λ,θu,θv,αu,αv,x,y)

+ Rs

(λ,θu,θv,αu,αv,x,y)

What are those little things here?

+T

(λ,θu,θv,αu,αv,x,y)