SlideShare a Scribd company logo
1 of 167
Fabien Christin
Senior Lighting Artist
GDC 2016
Mirror’s Edge Story Trailer
• Gorgeous futuristic office spaces
and rooftops
• Lighting was a big part of
the art direction
• Gorgeous futuristic office spaces
and rooftops
• Lighting was a big part of
the art direction
• Lighting is Static
• Using Beast inside Unreal Engine 3
• Baked Direct and Indirect Lighting
• High Resolution lightmaps
• 1 pixel per cm
• Directional irradiance
• 25 hours to render 1 level
• Large city as a playground
• Free roaming
• Exploration
• Living world
• Day cycle
• Vibrant world
• Immersion
• Living world
• Day cycle
• Vibrant world
• Immersion
• Strong narration
• City of Glass history
• Rise of Faith
• Creating a Time of Day system
• Can we even make Mirror’s Edge with dynamic lighting?
• Making beliveable characters for cinematics
• Creating stylized images with Physically Based rendering
• Frostbite transitioned to PRR
http://www.frostbite.com/2014/11/movin
g-frostbite-to-pbr/
• Specular: Microfacet model with GGX
normal distribution function
• Diffuse: Disney Diffuse with energy
renormalization
• Now industry standard
• Easier to author textures with other
softwares
• Base Color
• sRGB 40 – 230
• Smoothness
• Artist driven
• Reflectance
• Controls fresnel curve of reflections
• Physically correct values to follow
• Metal mask
• Dynamic Time of Day loves PBR
• Shading for every lighting conditions
• Accurate reflections of the environment
• Game camera is a physical camera
• Accurate Exposure values: Shutter Speed, Aperture, ISO
• Realistic Depth of Field
• Useful EXIF data
• White Balance
• Exposure
• Capturing HDR probes as references
• 16k * 8k using a 14mm rectilinear lens
• 14 camera positions
• Up to 22 EV
• Absolute HDR
• HDR timelapses of sunrise and sunset
• Object previewing
Work In Progress Visuals
HDR skies couldn’t be used in the game
• Dynamic time of day would require many skies
• Needs a lot of memory / fast streaming
• Blending between HDR skies was obvious
• Clouds requires high resolution
• Want to relight the clouds
• Precomputed atmospheric scattering
• Rayleigh coefficients multiplier
• Rayleigh height
Work In Progress Visuals
• Precomputed atmospheric scattering
• Mie Scattering coefficients multiplier
• Mie Scattering height
Work In Progress Visuals
• Precomputed atmospheric scattering
• Ozone percentage
Work In Progress Visuals
• Lights sources
• Sun Intensity illuminates the sky
On a sunny day: Sun = 100 000 lux
• Sun elevation does all the work
Work In Progress Visuals
• Lights Sources
• Using 2 light sources
• Sun
• Moon
Work In Progress Visuals
• Aerial Perspective
• Scale and intensity controls
Work In Progress Visuals
• Height fog
• Altitude
• Density
Work In Progress Visuals
• Height fog
• Clamp density
• Color add or multiplier
Work In Progress Visuals
• 2 Cloud planes lit by the sky
• Alpha texture
• Absorbtion and thickness values
• Sky and Clouds cost:
• Around 0.75 ms on consoles
(+ 0.35 ms compared to static sky)
Work In Progress Visuals
• Always want more control
• Wanted deeper blues
• Physically correct
• But not deep enough
Work In Progress Visuals
• Circular Polarizing Filter OFF
• Circular Polarizing Filter ON
• Solution
• Add Rayleigh Scattering
Multiplier
Work In Progress Visuals
• Not deep enough
• Rayleigh scattering / 2
• More dramatic
• Aerial perspective leaking
through geometry
Work In Progress Visuals
• Solution
• Added Mie Scattering multiplier
Work In Progress Visuals
• Solution
• Replaced with Forward Scattering lightshafts
Work In Progress Visuals
• Celestials rotation
• Sun, moon and stars
• Time of Day Clock
• 48 min cycle
• Sunrise at 06:00 AM
• Sunset at 06:00 PM
• Curve to control the speed
• Sun Flare
• Animated values
• Camera exposure
• Bloom
• Sun disk size
• ...
Work In Progress Visuals
• Celestials rotation
• Sun, moon and stars
• Time of Day Clock
• 48 min cycle
• Sunrise at 06:00 AM
• Sunset at 06:00 PM
• Curve to control the speed
• Sun Flare
• Animated values
• Camera exposure
• Bloom
• Sun disk size
• ...
Work In Progress Visuals
• Constrain the Time Of Day for Critical Path
missions
• Want to follow a color script
• Sun shadows
• Connected to the player movement to hide
jittery shadows
Work In Progress Visuals
Work In Progress Visuals
• Real-time indirect lighting solution by
Geomerics
• Used in Frostbite since Battlefield 3
• However only static lightmaps
• Only used dynamically in Need for Speed Rivals
• Rather fast precompute
• 7 hours for the whole city
• Interactive relighting
• Gives a lot of creative
freedom
Work In Progress Visuals
• City divided in hierarchized zones for streaming
• 17 Ground level zones
• 83 Buildings zones
• 391 Props zones
• Each streaming zone has it own
Enlighten database
• 1 Lightmap (Atlas up to 2048*2048)
• For large static objects
• Lightprobes (L2 spherical harmonics)
• For dynamic and small objects
• GI data for relighting
• Between 5 and 15 MB
• Around 30 databases loaded
simultaneously
Work In Progress Visuals
• Runtime update on CPU
• Budget of 3 ms per frame
• Small visual pop when
Time Of Day progresses
Work In Progress Visuals
• Always render Enlighten 4 minutes ahead of
TimeOfDay time (8 seconds in real life)
• 3 lightmaps for each database
• Current one
• Next one ready to blend
• Next one getting solved
• Possibility to switch back to instant update
Work In Progress Visuals
• Enlighten uses sky convolution to a 32*32
cubemap
• Overall intensity slider
• Multiply / Add colors
• Default sky from Physical Sky
Work In Progress Visuals
• Adding color from moon angle
+ 60 degrees light
Work In Progress Visuals
• Sun bounces
• Intensity set to 75%
Work In Progress Visuals
• Sun bounces
• Intensity set to 75%
Work In Progress Visuals
Work In Progress Visuals
Work In Progress Visuals
Work In Progress Visuals
• Indirect lighting solution only
• Not really made for baking direct lighting
• Low frequency radiosity
• Low resolution lightmaps
• Missing accurate ambient occlusion from objects
• Inaccurate lightprobe lighting
• Per-object lighting, not per-pixel
• Old-style cubemap
• Moving with the player
• 256*256*6
• Updated with the Time of Day
• Cheap
• But not accurate
• Reflections of the cityscape
where there shouldn’t be any
Work In Progress Visuals
• Sky Visibility mask
from Enlighten
• Occludes reflections in
small streets and interiors
• Works for the day
• Lowered contrasts at night
Work In Progress Visuals
• Sky Visibility mask
from Enlighten
• Occludes reflections in
small streets and interiors
• Works for the day
• Lowered contrasts at night
Work In Progress Visuals
• Sky Visibility mask
from Enlighten
• Occludes reflections in
small streets and interiors
• Works for the day
• Lowered contrasts at night
Work In Progress Visuals
• Parallax-corrected cubemap
• Box or Sphere
• 256*256*6
• Capture point can be
moved
Work In Progress Visuals
• Parallax-corrected cubemap
• Box or Sphere
• 256*256*6
• Capture point can be
moved
• Tricky to place them
• Normal fade
• Faces fade
• Expanded influences
• Cost of 1 light on the
surface
Work In Progress Visuals
• Parallax-corrected cubemap
• Box or Sphere
• 256*256*6
• Capture point can be
moved
• Tricky to place them
• Normal fade
• Faces fade
• Expanded influences
• Cost of 1 light on the
surface
Work In Progress Visuals
• Parallax-corrected cubemap
• Box or Sphere
• 256*256*6
• Capture point can be
moved
• Tricky to place them
• Normal fade
• Faces fade
• Expanded influences
• Cost of 1 light on the
surface
Work In Progress Visuals
• Updated with the Time of Day
• Pool of 32 LRVs active
• Priority system based on distance and camera
frustum
• Update 1 face per frame
• Raytrace reflections of what
is visible on screen,
using the depth buffer
• Adaptive Sampling based on
surface roughness
• Rough: 3 samples
• Smooth: 1 sample
• Clamped to avoid fireflies
Work In Progress Visuals
No SSR
• Raytrace reflections of what
is visible on screen,
using the depth buffer
• Adaptive Sampling based on
surface roughness
• Rough: 3 samples
• Smooth: 1 sample
• Clamped to avoid fireflies
Work In Progress Visuals
SSR
Work In Progress Visuals
• Optimization by roughness
threshold
• Optimization by world normals
• No reflections on ceilings
• Asynchronous SSR render
with shadows
• Budget of 4.2 ms for both
• Refined by
Temporal Anti Aliasing Work In Progress Visuals
• Only reflects what is on screen
• Fallback to LRVs
• Opaque lines cut the SSR rays
• Fix issues by turning off
depth writing when possible
• Doesn’t apply on Transparent
objects
Work In Progress Visuals
• Only reflects what is on screen
• Fallback to LRVs
• Opaque lines cut the SSR rays
• Fix issues by turning off
depth writing when possible
• Doesn’t apply on Transparent
objects
Work In Progress Visuals
• Mirror reflections for characters
• Forward Rendering
• Light probe lighting
• Directionnal Light without shadows
• Override lighting intensity and direction
• Sun: 100 000 lux
• 11:00
• EV 14.4
• White is underexposed
Work In Progress Visuals
• Sun: 100 000 lux
• 11:00
• EV 12.6
• Overexposed by 1.8 EV
• White properly exposed
• Added threshold to avoid
overexposing non-white
materials
Work In Progress Visuals
• Sun: 100 000 lux
• 00:00
• EV -0.35
• Overexposed by 1.5 EV
• Sun: 100 000 lux
• 18:00
• EV 5.7
• Overexposed by 1.8 EV
• Local lights contribution is
very low around sunset
Work In Progress Visuals
• Sun: 1000 lux
• 18:00
• EV 0.45
• Overexposed by 1.8 EV
• Better ratio between local
lights and sky
Work In Progress Visuals
• Sun: 1000 lux
• 11:00
• EV 6
• Overexposed by 1.8 EV
Work In Progress Visuals
• Sun: 100 000 lux
• 11:00
• EV 12.6
• Overexposed by 1.8 EV
• No visual difference
between 100 000 lux and
1 000 lux during the day
Work In Progress Visuals
• Sun: 100 000 lux
• Overblown exteriors
• Enlighten light leaks
Work In Progress Visuals
• Sun: 1 000 lux
• Prefer Eye dynamic range
to camera dynamic range
So we divided sun intensity
by 100
Work In Progress Visuals
• Linear > sRGB
Work In Progress Visuals
• Linear > Filmic
Work In Progress Visuals
• Filmic
Work In Progress Visuals
• Filmic modified
• White clipping
• Adjusted toe
Work In Progress Visuals
• Filmic modified
• White clipping
• Adjusted toe
Work In Progress Visuals
• Filmic modified
• White clipping
• Adjusted toe
Work In Progress Visuals
• Graded
Work In Progress Visuals
Work In Progress Visuals
Ungraded
Work In Progress Visuals
Graded
Work In Progress Visuals
Ungraded
Work In Progress Visuals
Graded
Work In Progress Visuals
Ungraded
Graded
Work In Progress Visuals
• Physically based
• Units in Lumens or Candelas
• Realistic decay rate
• Color temperature in Kelvin, or RGB
• IES photometric
• Real intensities or as masks
• Area lights
• Rectangular
• Disk
• Sphere
• Tube
• Physically based
• Units in Lumens or Candelas
• Realistic decay
• Color temperature in Kelvin, or RGB
• IES photometric
• Real intensities or as masks
• Area lights
• Rectangular
• Disk
• Sphere
• Tube
• Physically based
• Units in Lumens or Candelas
• Realistic decay
• Color temperature in Kelvin or RGB
• IES photometric
• Real intensities or as masks
• Area lights
• Rectangular
• Disk
• Sphere
• Tube
Work In Progress Visuals
• Physically based
• Units in Lumens or Candelas
• Realistic decay
• Color temperature in Kelvin or RGB
• IES photometric
• Real intensities or as masks
• Area lights
• Rectangular
• Disk
• Sphere
• Tube
Work In Progress Visuals
• Hard to use real light intensities
• Only works for point lights
• Realtime lights are not infinite,
have small cones, miss bounce lighting...
• First set up your camera exposure,
then adjust intensities so it looks good
X
• Attenuation Offset
• Lighting more ambient
• Avoid blown out surfaces
Work In Progress Visuals
• Attenuation Offset
• Lighting more ambient
• Avoid blown out surfaces
Work In Progress Visuals
• Attenuation Offset
• Lighting more ambient
• Avoid blown out surfaces
Work In Progress Visuals
• Attenuation Offset
• Lighting more ambient
• Avoid blown out surfaces
Work In Progress Visuals
• Placement can be tricky as
sampling is sparse
• Make lights biggers
• Use radiosity-only lights
• Radiosity Color ScaleScale
• RGB for color shift
Work In Progress Visuals
• Placement can be tricky as
sampling is sparse
• Make lights biggers
• Use radiosity-only lights
• Radiosity Color Scale
• RGB for color shift
Work In Progress Visuals
• Tiled Deferred Lighting
• 8*8 tiles
• Can afford many lights
if they don’t overlap
• Budget of 3.3 ms
Work In Progress Visuals
• Tiled Deferred Lighting
• 8*8 tiles
• Can afford many lights
if they don’t overlap
• Budget of 3.5 ms
Work In Progress Visuals
• 8 shadow casting lights simultaneously
• Budget shared with SSR: 4.2 ms
• Cached shadows
• Only update them when a character
enters the light bounding box
• Fade distance setting
• Manually tweaked for each light
Work In Progress Visuals
• “Raw” image
Work In Progress Visuals
• Gaussian Bloom
• Custom color for each pyramid
level
• Vertical /Horizontal stretch
• Multiplied by a lens dirt texture
• Lens reflection
• Transposed and distorted
bloom
Work In Progress Visuals
• Gaussian Bloom
• Custom color for each pyramid
level
• Vertical / Horizontal stretch
• Multiplied by a lens dirt texture
• Lens reflection
• Transposed and distorted
bloom
Work In Progress Visuals
• Gaussian Bloom
• Custom color for each pyramid
level
• Vertical / Horizontal stretch
• Multiplied by a lens dirt texture
• Lens reflection
• Transposed and distorted
bloom
Work In Progress Visuals
• Gaussian Bloom
• Custom color for each pyramid
level
• Vertical / Horizontal stretch
• Multiplied by a lens dirt texture
• Lens reflection
• Transposed and distorted
bloom
Work In Progress Visuals
• Simple Volumetrics
• Additive Spheres
• Adds depth separation
• Creates color shift
Work In Progress Visuals
Work In Progress Visuals
Before
Work In Progress Visuals
Work In Progress Visuals
After
• Commercial billboards
• Newscasts
• Average color output
• Drive Simple Volumetrics
and Light color
• Exposure Compensated
Work In Progress Visuals
• Model face scan
• Extract mesh and diffuse texture
• Different face poses scanned for wrinkle maps
• But we modified all the faces
• Stylized Characters
• Missing reflection information from capture
• Studio lighting test
• Recreate scene inside Frostbite
• HDR capture
• Identical lights
• Lights rotating around subject
• Compare reference pictures
to imported face scan
• Findings:
• Skin Saturation was too high
• Reflectance was too high
• Skin reflectance = 2.8 %
• Smoothness was too high
• Emissive intensities of some light
fixtures were too strong
Lit Base Color AO Smoothness Reflectance Normals
• Subsurface scattering
Work In Progress Visuals
SSS Off
• Subsurface scattering
Work In Progress Visuals
SSS On
• Eye shader
• Parallax for refraction
• Normal map for iris
concavity
• Anisotropic Hair Shader
Work In Progress Visuals
• Eye shader
• Parallax for refraction
• Normal map for iris
concavity
• Anisotropic Hair Shader
Work In Progress Visuals
• Used a lot of lights
• Used a lot of lights
• 472 for this scene
• Attached lights to camera track
• Attached lights to camera track
• Bugdet of 32 shadow casting lights
• Larger shadow filtering (gaussian size 15)
• Shadow dimmer very useful
• Simple Volumetrics sorting
• Sprite DoF
Work In Progress Visuals
Base lighting purposefully dark
Work In Progress Visuals
Key light
Work In Progress Visuals
First fill light
Work In Progress Visuals
Secondary fill light
Work In Progress Visuals
Background light
Work In Progress Visuals
Top Fill light
Work In Progress Visuals
Rim light
Work In Progress Visuals
Area Light reflected in the eye
Work In Progress Visuals
Shadow dimmer on main light
Work In Progress Visuals
Better shadow filtering
Work In Progress Visuals
Sprite DoF
Work In Progress Visuals
Emissive shapes for bokeh
• Know your PBR
• Work with references
• Respect the ground rules: Dynamic Lighting doesn’t forgive
• Break your PBR
• Make up for inaccuracies
• Enhance the visuals
• Stay in control!
• Do not use the wrong fix for the wrong problem
• The result is what matters
• The entire Mirror’s Edge team
• Anton Palmqvist / Lighting Artist
• Karl Stjernberg / Lighting Artist
• Ben Hutchings / Cutscene Lighting Artist
• Hus Zekayi / Cutscene Lighting Artist
• Jhony Ljungstedt / Art Director
• Mikael Linderholm / Technical Art Director
• Yasin Uludag / Graphics Programmer
• Mikael Uddholm / Graphics Programmer
• Mark Scheurwater / Software Engineer
• Michael Lidgren / Software Engineer
• Frostbite Rendering team
• Gustav Bodare and Edvard Sandberg for the Physical Sky
fabien.christin@dice.se

More Related Content

What's hot

A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
guest11b095
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
Electronic Arts / DICE
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Johan Andersson
 

What's hot (20)

Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
A Real-time Radiosity Architecture
A Real-time Radiosity ArchitectureA Real-time Radiosity Architecture
A Real-time Radiosity Architecture
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Destruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance FieldsDestruction Masking in Frostbite 2 using Volume Distance Fields
Destruction Masking in Frostbite 2 using Volume Distance Fields
 

Viewers also liked

Art Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among ThievesArt Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among Thieves
Naughty Dog
 

Viewers also liked (6)

Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Che...
 
Art Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among ThievesArt Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among Thieves
 
Practical usage of Lightmass in Architectural Visualization (Kenichi Makaya...
Practical usage of Lightmass in  Architectural Visualization  (Kenichi Makaya...Practical usage of Lightmass in  Architectural Visualization  (Kenichi Makaya...
Practical usage of Lightmass in Architectural Visualization (Kenichi Makaya...
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Level Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeLevel Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's Edge
 

Similar to Lighting the City of Glass

Similar to Lighting the City of Glass (20)

Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
 
Progressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in UnityProgressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in Unity
 
october23.ppt
october23.pptoctober23.ppt
october23.ppt
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's EdgeSIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
SIGGRAPH 2010 - Style and Gameplay in the Mirror's Edge
 
november29.ppt
november29.pptnovember29.ppt
november29.ppt
 
Real-time lightmap baking
Real-time lightmap bakingReal-time lightmap baking
Real-time lightmap baking
 
Felwyrld Tech
Felwyrld TechFelwyrld Tech
Felwyrld Tech
 
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
Company of Heroes 2 (COH2) Rendering Technology: The cold facts of recreating...
 
Book of the Dead: Environmental Design, Tools, and Techniques for Photo-Real ...
Book of the Dead: Environmental Design, Tools, and Techniques for Photo-Real ...Book of the Dead: Environmental Design, Tools, and Techniques for Photo-Real ...
Book of the Dead: Environmental Design, Tools, and Techniques for Photo-Real ...
 
Using Deep Learning to Derive 3D Cities from Satellite Imagery
Using Deep Learning to Derive 3D Cities from Satellite ImageryUsing Deep Learning to Derive 3D Cities from Satellite Imagery
Using Deep Learning to Derive 3D Cities from Satellite Imagery
 
Daylighting Design With Climate
Daylighting Design With ClimateDaylighting Design With Climate
Daylighting Design With Climate
 
Computer vision old problems new solutions
Computer vision   old problems new solutionsComputer vision   old problems new solutions
Computer vision old problems new solutions
 
Gdc11 lighting used in BF3
Gdc11 lighting used in BF3Gdc11 lighting used in BF3
Gdc11 lighting used in BF3
 
Paris Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationParis Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global Illumination
 
Lec14 multiview stereo
Lec14 multiview stereoLec14 multiview stereo
Lec14 multiview stereo
 
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発
 
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
【Unite 2018 Tokyo】プログレッシブライトマッパーの真価を発揮する秘訣
 
november6.ppt
november6.pptnovember6.ppt
november6.ppt
 
[AWSKRUG&JAWS-UG Meetup #1] 70% Cost Reduction with On-demand resizing
[AWSKRUG&JAWS-UG Meetup #1] 70% Cost Reduction with On-demand resizing[AWSKRUG&JAWS-UG Meetup #1] 70% Cost Reduction with On-demand resizing
[AWSKRUG&JAWS-UG Meetup #1] 70% Cost Reduction with On-demand resizing
 

More from Electronic Arts / DICE

More from Electronic Arts / DICE (20)

GDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game DevelopmentGDC2019 - SEED - Towards Deep Generative Models in Game Development
GDC2019 - SEED - Towards Deep Generative Models in Game Development
 
SEED - Halcyon Architecture
SEED - Halcyon ArchitectureSEED - Halcyon Architecture
SEED - Halcyon Architecture
 
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray TracingSyysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
Syysgraph 2018 - Modern Graphics Abstractions & Real-Time Ray Tracing
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and Vulkan
 
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
 
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and ProceduralismCEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
CEDEC 2018 - Functional Symbiosis of Art Direction and Proceduralism
 
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA TuringSIGGRAPH 2018 - PICA PICA and NVIDIA Turing
SIGGRAPH 2018 - PICA PICA and NVIDIA Turing
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
 
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open ProblemsHPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
HPG 2018 - Game Ray Tracing: State-of-the-Art and Open Problems
 
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
EPC 2018 - SEED - Exploring The Collaboration Between Proceduralism & Deep Le...
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Creativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural SystemsCreativity of Rules and Patterns: Designing Procedural Systems
Creativity of Rules and Patterns: Designing Procedural Systems
 
Shiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEEDShiny Pixels and Beyond: Real-Time Raytracing at SEED
Shiny Pixels and Beyond: Real-Time Raytracing at SEED
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Rendering Battlefield 4 with Mantle
Rendering Battlefield 4 with MantleRendering Battlefield 4 with Mantle
Rendering Battlefield 4 with Mantle
 
Mantle for Developers
Mantle for DevelopersMantle for Developers
Mantle for Developers
 
Battlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + MantleBattlefield 4 + Frostbite + Mantle
Battlefield 4 + Frostbite + Mantle
 
5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)5 Major Challenges in Real-time Rendering (2012)
5 Major Challenges in Real-time Rendering (2012)
 

Recently uploaded

Recently uploaded (20)

Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Velappanchavadi WhatsApp Booking 7427069034 call girl ser...
 
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Chengalpattu Phone 7427069034 Call Girls Model With...
 
𓀤Call On 6297143586 𓀤 Park Street Call Girls In All Kolkata 24/7 Provide Call...
𓀤Call On 6297143586 𓀤 Park Street Call Girls In All Kolkata 24/7 Provide Call...𓀤Call On 6297143586 𓀤 Park Street Call Girls In All Kolkata 24/7 Provide Call...
𓀤Call On 6297143586 𓀤 Park Street Call Girls In All Kolkata 24/7 Provide Call...
 
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
Hotel And Home Service Available Kolkata Call Girls Dum Dum ✔ 6297143586 ✔Cal...
 
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
❤Personal Whatsapp Number Keylong Call Girls 8617697112 💦✅.
 
Bhimtal ❤CALL GIRL 8617697112 ❤CALL GIRLS IN Bhimtal ESCORT SERVICE❤CALL GIRL
Bhimtal ❤CALL GIRL 8617697112 ❤CALL GIRLS IN Bhimtal ESCORT SERVICE❤CALL GIRLBhimtal ❤CALL GIRL 8617697112 ❤CALL GIRLS IN Bhimtal ESCORT SERVICE❤CALL GIRL
Bhimtal ❤CALL GIRL 8617697112 ❤CALL GIRLS IN Bhimtal ESCORT SERVICE❤CALL GIRL
 
Behala ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready ...
Behala ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready ...Behala ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready ...
Behala ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready ...
 
Jodhpur Park ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi ...
Jodhpur Park ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi ...Jodhpur Park ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi ...
Jodhpur Park ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi ...
 
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
 
Hotel And Home Service Available Kolkata Call Girls Park Street ✔ 6297143586 ...
Hotel And Home Service Available Kolkata Call Girls Park Street ✔ 6297143586 ...Hotel And Home Service Available Kolkata Call Girls Park Street ✔ 6297143586 ...
Hotel And Home Service Available Kolkata Call Girls Park Street ✔ 6297143586 ...
 
📞 Contact Number 8617697112 VIP Ganderbal Call Girls
📞 Contact Number 8617697112 VIP Ganderbal Call Girls📞 Contact Number 8617697112 VIP Ganderbal Call Girls
📞 Contact Number 8617697112 VIP Ganderbal Call Girls
 
College Call Girls Pune 8617697112 Short 1500 Night 6000 Best call girls Service
College Call Girls Pune 8617697112 Short 1500 Night 6000 Best call girls ServiceCollege Call Girls Pune 8617697112 Short 1500 Night 6000 Best call girls Service
College Call Girls Pune 8617697112 Short 1500 Night 6000 Best call girls Service
 
Hire 💕 8617697112 North Sikkim Call Girls Service Call Girls Agency
Hire 💕 8617697112 North Sikkim Call Girls Service Call Girls AgencyHire 💕 8617697112 North Sikkim Call Girls Service Call Girls Agency
Hire 💕 8617697112 North Sikkim Call Girls Service Call Girls Agency
 
📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call Girls📞 Contact Number 8617697112 VIP East Sikkim Call Girls
📞 Contact Number 8617697112 VIP East Sikkim Call Girls
 
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment BookingKanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
 
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
VIP Model Call Girls Vijayawada ( Pune ) Call ON 8005736733 Starting From 5K ...
 
Dum Dum ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready...
Dum Dum ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready...Dum Dum ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready...
Dum Dum ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Ready...
 
Verified Trusted Call Girls Singaperumal Koil Chennai ✔✔7427069034 Independe...
Verified Trusted Call Girls Singaperumal Koil Chennai ✔✔7427069034  Independe...Verified Trusted Call Girls Singaperumal Koil Chennai ✔✔7427069034  Independe...
Verified Trusted Call Girls Singaperumal Koil Chennai ✔✔7427069034 Independe...
 
Top Rated Pune Call Girls Dhayari ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated  Pune Call Girls Dhayari ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...Top Rated  Pune Call Girls Dhayari ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
Top Rated Pune Call Girls Dhayari ⟟ 6297143586 ⟟ Call Me For Genuine Sex Ser...
 
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Khardah ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
 

Lighting the City of Glass

  • 3. • Gorgeous futuristic office spaces and rooftops • Lighting was a big part of the art direction
  • 4. • Gorgeous futuristic office spaces and rooftops • Lighting was a big part of the art direction
  • 5. • Lighting is Static • Using Beast inside Unreal Engine 3 • Baked Direct and Indirect Lighting • High Resolution lightmaps • 1 pixel per cm • Directional irradiance • 25 hours to render 1 level
  • 6.
  • 7. • Large city as a playground • Free roaming • Exploration
  • 8. • Living world • Day cycle • Vibrant world • Immersion
  • 9. • Living world • Day cycle • Vibrant world • Immersion
  • 10. • Strong narration • City of Glass history • Rise of Faith
  • 11. • Creating a Time of Day system • Can we even make Mirror’s Edge with dynamic lighting? • Making beliveable characters for cinematics • Creating stylized images with Physically Based rendering
  • 12. • Frostbite transitioned to PRR http://www.frostbite.com/2014/11/movin g-frostbite-to-pbr/ • Specular: Microfacet model with GGX normal distribution function • Diffuse: Disney Diffuse with energy renormalization • Now industry standard • Easier to author textures with other softwares
  • 13. • Base Color • sRGB 40 – 230 • Smoothness • Artist driven • Reflectance • Controls fresnel curve of reflections • Physically correct values to follow • Metal mask
  • 14. • Dynamic Time of Day loves PBR • Shading for every lighting conditions • Accurate reflections of the environment • Game camera is a physical camera • Accurate Exposure values: Shutter Speed, Aperture, ISO • Realistic Depth of Field
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. • Useful EXIF data • White Balance • Exposure
  • 22. • Capturing HDR probes as references • 16k * 8k using a 14mm rectilinear lens • 14 camera positions • Up to 22 EV • Absolute HDR • HDR timelapses of sunrise and sunset
  • 23. • Object previewing Work In Progress Visuals
  • 24. HDR skies couldn’t be used in the game • Dynamic time of day would require many skies • Needs a lot of memory / fast streaming • Blending between HDR skies was obvious • Clouds requires high resolution • Want to relight the clouds
  • 25.
  • 26. • Precomputed atmospheric scattering • Rayleigh coefficients multiplier • Rayleigh height Work In Progress Visuals
  • 27. • Precomputed atmospheric scattering • Mie Scattering coefficients multiplier • Mie Scattering height Work In Progress Visuals
  • 28. • Precomputed atmospheric scattering • Ozone percentage Work In Progress Visuals
  • 29. • Lights sources • Sun Intensity illuminates the sky On a sunny day: Sun = 100 000 lux • Sun elevation does all the work Work In Progress Visuals
  • 30. • Lights Sources • Using 2 light sources • Sun • Moon Work In Progress Visuals
  • 31. • Aerial Perspective • Scale and intensity controls Work In Progress Visuals
  • 32. • Height fog • Altitude • Density Work In Progress Visuals
  • 33. • Height fog • Clamp density • Color add or multiplier Work In Progress Visuals
  • 34. • 2 Cloud planes lit by the sky • Alpha texture • Absorbtion and thickness values • Sky and Clouds cost: • Around 0.75 ms on consoles (+ 0.35 ms compared to static sky) Work In Progress Visuals
  • 35. • Always want more control • Wanted deeper blues
  • 36. • Physically correct • But not deep enough Work In Progress Visuals
  • 39. • Solution • Add Rayleigh Scattering Multiplier Work In Progress Visuals
  • 40. • Not deep enough
  • 41. • Rayleigh scattering / 2 • More dramatic
  • 42.
  • 43. • Aerial perspective leaking through geometry Work In Progress Visuals
  • 44. • Solution • Added Mie Scattering multiplier Work In Progress Visuals
  • 45. • Solution • Replaced with Forward Scattering lightshafts Work In Progress Visuals
  • 46. • Celestials rotation • Sun, moon and stars • Time of Day Clock • 48 min cycle • Sunrise at 06:00 AM • Sunset at 06:00 PM • Curve to control the speed • Sun Flare • Animated values • Camera exposure • Bloom • Sun disk size • ... Work In Progress Visuals
  • 47. • Celestials rotation • Sun, moon and stars • Time of Day Clock • 48 min cycle • Sunrise at 06:00 AM • Sunset at 06:00 PM • Curve to control the speed • Sun Flare • Animated values • Camera exposure • Bloom • Sun disk size • ... Work In Progress Visuals
  • 48.
  • 49. • Constrain the Time Of Day for Critical Path missions • Want to follow a color script • Sun shadows • Connected to the player movement to hide jittery shadows
  • 50.
  • 51. Work In Progress Visuals
  • 52. Work In Progress Visuals
  • 53. • Real-time indirect lighting solution by Geomerics • Used in Frostbite since Battlefield 3 • However only static lightmaps • Only used dynamically in Need for Speed Rivals
  • 54. • Rather fast precompute • 7 hours for the whole city • Interactive relighting • Gives a lot of creative freedom Work In Progress Visuals
  • 55. • City divided in hierarchized zones for streaming • 17 Ground level zones • 83 Buildings zones • 391 Props zones
  • 56. • Each streaming zone has it own Enlighten database • 1 Lightmap (Atlas up to 2048*2048) • For large static objects • Lightprobes (L2 spherical harmonics) • For dynamic and small objects • GI data for relighting • Between 5 and 15 MB • Around 30 databases loaded simultaneously Work In Progress Visuals
  • 57. • Runtime update on CPU • Budget of 3 ms per frame • Small visual pop when Time Of Day progresses Work In Progress Visuals
  • 58. • Always render Enlighten 4 minutes ahead of TimeOfDay time (8 seconds in real life) • 3 lightmaps for each database • Current one • Next one ready to blend • Next one getting solved • Possibility to switch back to instant update
  • 59. Work In Progress Visuals
  • 60. • Enlighten uses sky convolution to a 32*32 cubemap • Overall intensity slider • Multiply / Add colors
  • 61. • Default sky from Physical Sky Work In Progress Visuals
  • 62. • Adding color from moon angle + 60 degrees light Work In Progress Visuals
  • 63. • Sun bounces • Intensity set to 75% Work In Progress Visuals
  • 64. • Sun bounces • Intensity set to 75% Work In Progress Visuals
  • 65. Work In Progress Visuals
  • 66. Work In Progress Visuals
  • 67. Work In Progress Visuals
  • 68. • Indirect lighting solution only • Not really made for baking direct lighting • Low frequency radiosity • Low resolution lightmaps • Missing accurate ambient occlusion from objects • Inaccurate lightprobe lighting • Per-object lighting, not per-pixel
  • 69.
  • 70.
  • 71.
  • 72. • Old-style cubemap • Moving with the player • 256*256*6 • Updated with the Time of Day • Cheap
  • 73. • But not accurate • Reflections of the cityscape where there shouldn’t be any Work In Progress Visuals
  • 74. • Sky Visibility mask from Enlighten • Occludes reflections in small streets and interiors • Works for the day • Lowered contrasts at night Work In Progress Visuals
  • 75. • Sky Visibility mask from Enlighten • Occludes reflections in small streets and interiors • Works for the day • Lowered contrasts at night Work In Progress Visuals
  • 76. • Sky Visibility mask from Enlighten • Occludes reflections in small streets and interiors • Works for the day • Lowered contrasts at night Work In Progress Visuals
  • 77.
  • 78.
  • 79. • Parallax-corrected cubemap • Box or Sphere • 256*256*6 • Capture point can be moved Work In Progress Visuals
  • 80. • Parallax-corrected cubemap • Box or Sphere • 256*256*6 • Capture point can be moved • Tricky to place them • Normal fade • Faces fade • Expanded influences • Cost of 1 light on the surface Work In Progress Visuals
  • 81. • Parallax-corrected cubemap • Box or Sphere • 256*256*6 • Capture point can be moved • Tricky to place them • Normal fade • Faces fade • Expanded influences • Cost of 1 light on the surface Work In Progress Visuals
  • 82. • Parallax-corrected cubemap • Box or Sphere • 256*256*6 • Capture point can be moved • Tricky to place them • Normal fade • Faces fade • Expanded influences • Cost of 1 light on the surface Work In Progress Visuals
  • 83. • Updated with the Time of Day • Pool of 32 LRVs active • Priority system based on distance and camera frustum • Update 1 face per frame
  • 84.
  • 85.
  • 86. • Raytrace reflections of what is visible on screen, using the depth buffer • Adaptive Sampling based on surface roughness • Rough: 3 samples • Smooth: 1 sample • Clamped to avoid fireflies Work In Progress Visuals No SSR
  • 87. • Raytrace reflections of what is visible on screen, using the depth buffer • Adaptive Sampling based on surface roughness • Rough: 3 samples • Smooth: 1 sample • Clamped to avoid fireflies Work In Progress Visuals SSR Work In Progress Visuals
  • 88. • Optimization by roughness threshold • Optimization by world normals • No reflections on ceilings • Asynchronous SSR render with shadows • Budget of 4.2 ms for both • Refined by Temporal Anti Aliasing Work In Progress Visuals
  • 89. • Only reflects what is on screen • Fallback to LRVs • Opaque lines cut the SSR rays • Fix issues by turning off depth writing when possible • Doesn’t apply on Transparent objects Work In Progress Visuals
  • 90. • Only reflects what is on screen • Fallback to LRVs • Opaque lines cut the SSR rays • Fix issues by turning off depth writing when possible • Doesn’t apply on Transparent objects Work In Progress Visuals
  • 91.
  • 92. • Mirror reflections for characters • Forward Rendering • Light probe lighting • Directionnal Light without shadows • Override lighting intensity and direction
  • 93.
  • 94. • Sun: 100 000 lux • 11:00 • EV 14.4 • White is underexposed Work In Progress Visuals
  • 95. • Sun: 100 000 lux • 11:00 • EV 12.6 • Overexposed by 1.8 EV • White properly exposed • Added threshold to avoid overexposing non-white materials Work In Progress Visuals
  • 96. • Sun: 100 000 lux • 00:00 • EV -0.35 • Overexposed by 1.5 EV
  • 97. • Sun: 100 000 lux • 18:00 • EV 5.7 • Overexposed by 1.8 EV • Local lights contribution is very low around sunset Work In Progress Visuals
  • 98. • Sun: 1000 lux • 18:00 • EV 0.45 • Overexposed by 1.8 EV • Better ratio between local lights and sky Work In Progress Visuals
  • 99. • Sun: 1000 lux • 11:00 • EV 6 • Overexposed by 1.8 EV Work In Progress Visuals
  • 100. • Sun: 100 000 lux • 11:00 • EV 12.6 • Overexposed by 1.8 EV • No visual difference between 100 000 lux and 1 000 lux during the day Work In Progress Visuals
  • 101. • Sun: 100 000 lux • Overblown exteriors • Enlighten light leaks Work In Progress Visuals
  • 102. • Sun: 1 000 lux • Prefer Eye dynamic range to camera dynamic range So we divided sun intensity by 100 Work In Progress Visuals
  • 103. • Linear > sRGB Work In Progress Visuals
  • 104. • Linear > Filmic Work In Progress Visuals
  • 105. • Filmic Work In Progress Visuals
  • 106. • Filmic modified • White clipping • Adjusted toe Work In Progress Visuals
  • 107. • Filmic modified • White clipping • Adjusted toe Work In Progress Visuals
  • 108. • Filmic modified • White clipping • Adjusted toe Work In Progress Visuals
  • 109. • Graded Work In Progress Visuals
  • 110. Work In Progress Visuals Ungraded
  • 111. Work In Progress Visuals Graded
  • 112. Work In Progress Visuals Ungraded
  • 113. Work In Progress Visuals Graded
  • 114. Work In Progress Visuals Ungraded
  • 116.
  • 117. • Physically based • Units in Lumens or Candelas • Realistic decay rate • Color temperature in Kelvin, or RGB • IES photometric • Real intensities or as masks • Area lights • Rectangular • Disk • Sphere • Tube
  • 118. • Physically based • Units in Lumens or Candelas • Realistic decay • Color temperature in Kelvin, or RGB • IES photometric • Real intensities or as masks • Area lights • Rectangular • Disk • Sphere • Tube
  • 119. • Physically based • Units in Lumens or Candelas • Realistic decay • Color temperature in Kelvin or RGB • IES photometric • Real intensities or as masks • Area lights • Rectangular • Disk • Sphere • Tube Work In Progress Visuals
  • 120. • Physically based • Units in Lumens or Candelas • Realistic decay • Color temperature in Kelvin or RGB • IES photometric • Real intensities or as masks • Area lights • Rectangular • Disk • Sphere • Tube Work In Progress Visuals
  • 121. • Hard to use real light intensities • Only works for point lights • Realtime lights are not infinite, have small cones, miss bounce lighting... • First set up your camera exposure, then adjust intensities so it looks good X
  • 122. • Attenuation Offset • Lighting more ambient • Avoid blown out surfaces Work In Progress Visuals
  • 123. • Attenuation Offset • Lighting more ambient • Avoid blown out surfaces Work In Progress Visuals
  • 124. • Attenuation Offset • Lighting more ambient • Avoid blown out surfaces Work In Progress Visuals
  • 125. • Attenuation Offset • Lighting more ambient • Avoid blown out surfaces Work In Progress Visuals
  • 126. • Placement can be tricky as sampling is sparse • Make lights biggers • Use radiosity-only lights • Radiosity Color ScaleScale • RGB for color shift Work In Progress Visuals
  • 127. • Placement can be tricky as sampling is sparse • Make lights biggers • Use radiosity-only lights • Radiosity Color Scale • RGB for color shift Work In Progress Visuals
  • 128. • Tiled Deferred Lighting • 8*8 tiles • Can afford many lights if they don’t overlap • Budget of 3.3 ms Work In Progress Visuals
  • 129. • Tiled Deferred Lighting • 8*8 tiles • Can afford many lights if they don’t overlap • Budget of 3.5 ms Work In Progress Visuals
  • 130. • 8 shadow casting lights simultaneously • Budget shared with SSR: 4.2 ms • Cached shadows • Only update them when a character enters the light bounding box • Fade distance setting • Manually tweaked for each light Work In Progress Visuals
  • 131.
  • 132. • “Raw” image Work In Progress Visuals
  • 133. • Gaussian Bloom • Custom color for each pyramid level • Vertical /Horizontal stretch • Multiplied by a lens dirt texture • Lens reflection • Transposed and distorted bloom Work In Progress Visuals
  • 134. • Gaussian Bloom • Custom color for each pyramid level • Vertical / Horizontal stretch • Multiplied by a lens dirt texture • Lens reflection • Transposed and distorted bloom Work In Progress Visuals
  • 135. • Gaussian Bloom • Custom color for each pyramid level • Vertical / Horizontal stretch • Multiplied by a lens dirt texture • Lens reflection • Transposed and distorted bloom Work In Progress Visuals
  • 136. • Gaussian Bloom • Custom color for each pyramid level • Vertical / Horizontal stretch • Multiplied by a lens dirt texture • Lens reflection • Transposed and distorted bloom Work In Progress Visuals
  • 137. • Simple Volumetrics • Additive Spheres • Adds depth separation • Creates color shift Work In Progress Visuals
  • 138. Work In Progress Visuals Before
  • 139. Work In Progress Visuals Work In Progress Visuals After
  • 140. • Commercial billboards • Newscasts • Average color output • Drive Simple Volumetrics and Light color • Exposure Compensated Work In Progress Visuals
  • 141.
  • 142. • Model face scan • Extract mesh and diffuse texture • Different face poses scanned for wrinkle maps • But we modified all the faces • Stylized Characters • Missing reflection information from capture
  • 143. • Studio lighting test • Recreate scene inside Frostbite • HDR capture • Identical lights • Lights rotating around subject
  • 144. • Compare reference pictures to imported face scan • Findings: • Skin Saturation was too high • Reflectance was too high • Skin reflectance = 2.8 % • Smoothness was too high • Emissive intensities of some light fixtures were too strong
  • 145. Lit Base Color AO Smoothness Reflectance Normals
  • 146. • Subsurface scattering Work In Progress Visuals SSS Off
  • 147. • Subsurface scattering Work In Progress Visuals SSS On
  • 148. • Eye shader • Parallax for refraction • Normal map for iris concavity • Anisotropic Hair Shader Work In Progress Visuals
  • 149. • Eye shader • Parallax for refraction • Normal map for iris concavity • Anisotropic Hair Shader Work In Progress Visuals
  • 150. • Used a lot of lights
  • 151. • Used a lot of lights • 472 for this scene
  • 152. • Attached lights to camera track • Attached lights to camera track • Bugdet of 32 shadow casting lights • Larger shadow filtering (gaussian size 15) • Shadow dimmer very useful • Simple Volumetrics sorting • Sprite DoF
  • 153. Work In Progress Visuals Base lighting purposefully dark
  • 154. Work In Progress Visuals Key light
  • 155. Work In Progress Visuals First fill light
  • 156. Work In Progress Visuals Secondary fill light
  • 157. Work In Progress Visuals Background light
  • 158. Work In Progress Visuals Top Fill light
  • 159. Work In Progress Visuals Rim light
  • 160. Work In Progress Visuals Area Light reflected in the eye
  • 161. Work In Progress Visuals Shadow dimmer on main light
  • 162. Work In Progress Visuals Better shadow filtering
  • 163. Work In Progress Visuals Sprite DoF
  • 164. Work In Progress Visuals Emissive shapes for bokeh
  • 165. • Know your PBR • Work with references • Respect the ground rules: Dynamic Lighting doesn’t forgive • Break your PBR • Make up for inaccuracies • Enhance the visuals • Stay in control! • Do not use the wrong fix for the wrong problem • The result is what matters
  • 166. • The entire Mirror’s Edge team • Anton Palmqvist / Lighting Artist • Karl Stjernberg / Lighting Artist • Ben Hutchings / Cutscene Lighting Artist • Hus Zekayi / Cutscene Lighting Artist • Jhony Ljungstedt / Art Director • Mikael Linderholm / Technical Art Director • Yasin Uludag / Graphics Programmer • Mikael Uddholm / Graphics Programmer • Mark Scheurwater / Software Engineer • Michael Lidgren / Software Engineer • Frostbite Rendering team • Gustav Bodare and Edvard Sandberg for the Physical Sky