Physically based shading
Ats Kurvet
MTAT.03.296 Computer Graphics Seminar
Tartu 2014 1
Why use PBS?
• Consistency - across materials and
lighting conditions.
• Speed - of authoring content (better tools,
less variables, intuitive parameters, easier
troubleshooting).
• Easier to achieve “hyperrealism”
• Cheaper.
2
Examples of PBS in action
3
4 http://atskurvet.com/portfolio.html
5 http://www.unrealengine.com/files/downloads/2013SiggraphPresentationsNotes.pdf
6 http://www.fxguide.com/wp-content/uploads/2013/04/blueumbrella1.jpg
7 http://www.cgmag.at/index.php?page=Attachment&attachmentID=5113&h=47ccf5d3bb8c3aada9c32a34d63f957f506ae0a9
8 https://www.fxguide.com/featured/gravity/
Also check out
• Unreal Infiltrator demo:
https://www.youtube.com/watch?v=dO2rM
-l-vdQ
• Order 1886:
https://www.youtube.com/watch?v=2FK8d
gzW0o8
• And probably anything else that looks
good*
9
PBS needs a strong base
• HDR and Tone mapping
• Anti-aliasing (also accounting for specular)
• Per object motion blur
• Depth of field (if using a realistic camera
model)
• PostFX
• …
10
Physics
11
Optics
• Geometrical/ray optics – Basic reflections
– Basic refractions
• Physical/wave optics – Interference
– Diffraction
– Polarization
• Electromagentic wave optics – Maxwell equations
• Quantum optics – Photons: the atomic principle
– Wave-particle duality
12
?
• http://isites.harvard.edu/fs/docs/icb.topic186199.files/images/EdgeDiffraction2-800x533.jpg 13
Visible spectrum
• http://hyperphysics.phy-astr.gsu.edu/hbase/vision/imgvis/specol.gif
• http://upload.wikimedia.org/wikipedia/commons/1/1f/Light_dispersion_of_a_mercury-vapor_lamp_with_a_flint_glass_prism_IPNr%C2%B00125.jpg
14
Lights interaction with matter
15
Refraction and absorption
• The refractive index – Describes how light
interacts with the medium it is travelling in.
– Spectral quantity
– The complex refractive index:
• The real part describes the affect to the speed and thus angle of deviation.
• The imaginary part describes the amount of absorption and color.
http://www.topwallpaperphoto.com/wp-content/uploads/2013/09/Whiskey-Drink.jpg 16
Scattering
• Light splits
into multiple
directions
due to
abrupt micro
scale
changes in
refraction.
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_slides.pdf
17
Absorption, scattering and
emission
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_slides.pdf
18
Emission
• Many different
sources and ways
of generation
• There is a
difference between
white light and
white light
http://www.ni.com/cms/images/devzone/tut/image4_20080109201025.png
19
Reflections on a planar surface
20
Non-Optically-Flat Surfaces
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
21
Subsurface scattering
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
22
SSS and the diffuse term
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
23
Math
24
Radiance - L
• Radiance is the measurement of the quantity of radiation that passes through or is emitted from a surface and falls within a given solid angle in a specified direction. In our case “a single ray of light”.
• Radiance is a spectral quantity.
http://upload.wikimedia.org/wikipedia/en/thumb/6/63/Etendue-Definition.png/400px-Etendue-Definition.png 25
Bidirectioanl Reflectance
Distribution Function
f(l,v)
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
26
?
• BTDF
• BSDF
• BSSRDF
27
Reversability
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
28
Reciprocity & energy conservation
29
Reflectance equation
30
Diffuse and specular term
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
31
Splitting diffuse and specular in the
real world
• Check out the tutorial at: http://filmicgames.com/archives/233
32
Real world examples
33 http://filmicgames.com/archives/547
Real world examples
34 http://filmicgames.com/archives/547
Real world examples
35 http://filmicgames.com/archives/547
Surface Reflectance (Specular
Term)
36
Microfacet theory
• Microgeometry
• Light only reflected when, h=m, where h is the half angle vector and m is the microgeometry normal.
– But only when the surface point is not shadowed or masked by neighboring geometry.
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
37
Shadowing & masking
• Shadowing (left) – accounted for.
• Masking (middle) – accounted for.
• Interreflections (right) – not accounted for.
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
38
Microfacet BRDF
• D(h) – microgeometry normal distribution function
• G(l, v, h) - the geometry function
• F(l, h) - Fresnel reflectance
• 4(n.l)(n.v) – correction factor for transforms between micogeometry space and the macrosurface
39
Fresnel reflectance
• The Fresnel reflectance function computes
the fraction of light reflected from an
optically flat surface.
• Depends on the incomoing angle of the
light and the index of refraction.
• Spectral quality.
• Values between 0 and 1
40
Fresnel reflectance for a variety of
substances
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
41
Characteristic specular reflectance
– F0
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
42
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
43
The Schlick Approximation to
Fresnel
• For microfacet BRDFs (otherwise replace h with n):
44
Microgeometry normal distribution
function - D(m)
• Describes the amount of microgeometry normals m having the same direction as the surface normal n.
• Values must me greater than 0.
• Scalar.
• Determines the size, brightness, and shape of the specular highlight.
• Isotropic and anisotropic surfaces.
https://lva.cg.tuwien.ac.at/ecg/wiki/lib/exe/fetch.php?hash=ac8b26&media=http%3A%2F%2Fwww.cs.utexas.edu%2F~fussell%2Fcourses%2Fcs384g%2Fprojects%2Fraytracing%2Fray_examples%2Fanisotropy_ball.jpg & http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf
45
Examples of NDFs
• http://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf original source: “Real-Time Rendering, 3rd edition"
46
Geometry function - G(l, v, m)
• Represents the probability that surface
points with a given microgeometry normal
m will be visible from both the light
direction l and the view direction v.
• Scalar.
• Values between 0 and 1.
47
Limitations of the Microfacet model
• Does not account for pronounced wave optics effects (such as diffraction and interference), those are usually solved with ad hoc methods.
• Geometry features in the scale range of wavelength of light, or larger features becoming smaller due to foreshortening at grazing angles.
• More complex microgeometry.
48
Subsurface Reflectance (Diffuse
Term)
49
Diffuse Term
• Gets the left over light that is not reflected straight off the surface(specular term).
• Spectral.
• Values between 0 and 1.
• Extra considerations to look at:
– Specular reflectance increases at grazing angles so the diffuse value must decrease.
– Affect of roughness (microgeometry features larger than that of the sub-surface scattering distance)
50
Lambert
• Most widely used. A constant value.
51
Other terms
• Subsurface single-scattering.
• Multiple-bounce surface reflectance.
• Might want to account for these in some
ways no.
52
Illumination model
53
General Lighting
• Integrate BRDF against all incoming light
from all directions.
• Solving this requires global illumination
models such as Monte Carlo ray tracing.
54
Image-Based Lighting
• Typically represented as environment maps, can also be represented by spherical harmonics for example.
• Works well for smooth surfaces, needs to be sampled for arbitrary BRDFs.
• Perceptually flexible.
55 http://www.randomcontrol.com/images/products/arion2/importance_sampling.gif
Area Lights
• Have both intensity and area
• In reality all light sources have
dimensions, this avoids issues like
specular intensity reaching inifinity.
• Faster shadow calculations than
environment maps.
• Physically more correct.
56
Area light examples
57 http://blog.selfshadow.com/publications/s2013-shading-course/pixar/s2013_pbs_pixar_notes.pdf
Punctual Light Sources
• Infinitely small, infinitely bright, physically not correct.
• Computationally convenient.
• Effects are defined by:
– Clight - intenisty of light in RGB.
– lc – light direction vector
• More common used variants of punctual lights are: point, directional, and spot lights.
• Unbound range
58
Energy conservation.
59 http://www.guerrilla-games.com/presentations/Drobot_Lighting_of_Killzone_Shadow_Fall.pdf
Ambient light
• Low-frequency lighting.
• Can be represented by a constant or more
complex structures such as lower order
spherical harmonics.
• Mostly used by games
• Often breaks materials
60
Extra 0: material blending & layering
• http://blog.selfshadow.com/publications/s2013-shading-course/rad/s2013_pbs_rad_slides.pdf
61
Extra 1: Disney BRDF explorer.
• http://www.disneyanimation.com/technolog
y/brdf.html
• Can load GLSL code as an arbitrary
BRDF.
• Can load reference data to compare your
model to real world measurements.
62
Extra 2: Crytek & Ryse things.
• My lighting portfolio:
http://atskurvet.com/portfolio.html
• PBS article about Ryse:
http://www.makinggames.de/index.php/ma
gazin/2391_ryse__the_transition_to_physi
cally_based_shading
• Cryengine presentations:
http://crytek.com/cryengine/presentations
63
Thank you!
64
Reference
• http://blog.selfshadow.com/publications/s2013-shading-
course/hoffman/s2013_pbs_physics_math_notes.pdf
• http://www.makinggames.de/index.php/magazin/2391_ryse__the_transition_to_physically_based_
shading
• https://www.fxguide.com/featured/game-environments-parta-remember-me-rendering/
• http://interplayoflight.wordpress.com/2013/12/30/readings-on-physically-based-rendering/
• http://www.disneyanimation.com/technology/brdf.html
• http://wiki.nuaj.net/index.php?title=BRDF
• http://www.cs.princeton.edu/~smr/papers/brdf_change_of_variables/brdf_change_of_variables.pdf
• http://renderwonk.com/publications/s2010-shading-
course/snow/sigg2010_physhadcourse_ILM.pdf
• http://www.guerrilla-games.com/presentations/Drobot_Lighting_of_Killzone_Shadow_Fall.pdf
65
Top Related