SlideShare a Scribd company logo
1 of 58
Stable SSAO in Battlefield 3 with
Selective Temporal Filtering
Louis Bavoil
Developer Technology Engineer
NVIDIA
Johan Andersson
Rendering Architect
DICE / EA
SSAO
● Screen Space Ambient Occlusion (SSAO)
● Has become de-facto approach for rendering AO in
games with no precomputation
● Key Idea: use depth buffer as approximation of the
opaque geometry of the scene
● Large variety of SSAO algorithms, all taking as input
the scene depth buffer
[Kajalin 09]
[Loos and Sloan 10]
[McGuire et al. 11]
HBAO
● Horizon-Based Ambient Occlusion (HBAO)
● Considers the depth buffer as a heightfield, and
approximates ray-tracing this heightfield
● Improved implementation available in NVIDIA’s SDK11
(SSAO11.zip / HBAO_PS.hlsl)
● Used for rendering SSAO in Battlefield 3 / PC for its
“High” and “Ultra” Graphics Quality presets
[Bavoil and Sainz 09a]
[Andersson 10]
[White and Barré-Brisebois 11]
[Andersson 10]
Original HBAO
Implementation
in Frostbite 2
Frame time (GPU):
25.2 ms
Total HBAO time:
2.5 ms (10% of frame)
[1920x1200 “High” DX11
GeForce GTX 560 Ti]
Screenshot: With HBAO
Screenshot: HBAO Only
The HBAO looked good-enough on screenshots…
Video: Flickering HBAO
…but produced objectionable flickering in motion on thin objects
such as alpha-tested foliage (grass and trees in particular)
Our Constraints
● PC-only
● In Frostbite 2, HBAO implemented only for DX10 & DX11
● Low Perf Hit, High Quality
● Whole HBAO was already 2.5 ms (1920x1200 / GTX 560 Ti)
● HBAO used in High and Ultra presets, had to look great
Considered Workarounds
● Full-resolution SSAO or dual-resolution SSAO (*)
…but that more-than-doubled the cost of the SSAO, and
some flickering could remain
● Brighten SSAO on the problematic objects
…but we wanted a way to keep full-strength SSAO on
everything (in particular on foliage)
(*) [Bavoil and Sainz 09b]
Temporal Filtering Approach
● By definition, AO depends only on the scene
geometry, not on the camera
● For static (or nearly-static geometry), can re-project AO
from previous frame
● Reduce AO variance between frames by using a temporal
filter: newAO = lerp(newAO,previousAO,x)
● Known approach used in Gears of War 2
[Nehab et al. 07]
[Smedberg and Wright 09]
Reverse
Reprojection
[Nehab et al. 07]
(uvi, zi)
Current
Camera
(Frame i)
Previous
Camera
(Frame i-1)
Pi
(uvi, zi)
Reverse
Reprojection
[Nehab et al. 07]
Current
Camera
(Frame i)
1. Current
ViewProjection-1
Previous
Camera
(Frame i-1)
Pi
uvi-1
1. Current
ViewProjection-1
2. Previous
ViewProjection
(uvi, zi)
Reverse
Reprojection
[Nehab et al. 07]
Current
Camera
(Frame i)
Previous
Camera
(Frame i-1)
Current
Camera
(Frame i)
Pi
Pi-1
(uvi-1, zi-1)
1. Current
ViewProjection-1
3. Fetch
Previous
View Depth
2. Previous
ViewProjection
(uvi, zi)
Reverse
Reprojection
[Nehab et al. 07]
Previous
Camera
(Frame i-1)
Current
Camera
(Frame i) Pi
Pi-1
(uvi-1, zi-1)
1. Current
ViewProjection-1
3. Fetch Previous
View Depth
2. Previous
ViewProjection
4. If Pi ~= Pi-1
re-use AO(Pi-1)
(uvi, zi)
Reverse
Reprojection
[Nehab et al. 07]
Previous
Camera
(Frame i-1)
Temporal Refinement [Mattausch et al. 11]
If Pi-1 ~= Pi
AOi = (Ni-1 AOi-1 + AOi) / (Ni-1 + 1)
Ni = min(Ni-1 + 1, Nmax)
Else
AOi = AOi
Ni = 1
Ni = num. frames that have been accumulated in current solution at Pi
Nmax = max num. frames (~8), to keep AOi-1 contributing to AOi
Pi
Pi-1
(uvi-1, zi-1)
(uvi, zi)
Disocclusion Test [Mattausch et al. 11]
Pi ~= Pi-1 
wi = ViewDepth(Viewi-1, Pi)
wi-1 = ViewDepth(Viewi-1, Pi-1)
Relaxed Disocclusion Test
Pi ~= Pi-1 
To support nearly-static objects
● Such as foliage waving in the wind (grass, trees, …)
● We simply relaxed the threshold (used ε = 10%)
Video: Temporal Filtering with ε=+Inf
Flickering is fixed, but there are ghosting artifacts due to disocclusions
Flickering on the grass (nearly static), but no ghosting artifacts
Video: Temporal Filtering with ε=0.1%
No flickering, no ghosting, 1% perf hit (25.2 -> 25.5 ms)
Video: Temporal Filtering with ε=10%
Video: Trailing Artifacts
New issue: trailing artifacts on static objects receiving AO from dynamic objects
Observations
1. With temporal filtering OFF
The flickering pixels are mostly on
foliage. The other pixels do not have any
objectionable flickering.
2. With temporal filtering ON
The trailing artifacts (near the
character's feet) are not an issue on
foliage pixels.
Selective Temporal Filtering
● Assumption
The set of flickering pixels and the set of trailing
pixels are mutually exclusive
● Our Approach:
1. Classify the pixels as stable (potential trailing) or
unstable (potential flickering)
2. Disable the temporal filter for the stable pixels
Pixel Classification Approach
● Normal reconstruction in SSAO shader
● Px = ||P - Pleft|| < ||P - Pright|| ? Pleft : Pright
● Py = ||P - Ptop|| < ||P - Pbottom|| ? Ptop : Pbottom
● N = ± normalize(cross(P - Px, P - Py))
● Idea: If reconstructed normal is noisy,
the SSAO will be noisy
P
Pl Pr
Pt
Pb
Piecewise Continuity Test
1. Select nearest
neighbor Px between
Pleft and Pright
P
Px = Pleft
Pright
Piecewise Continuity Test
1. Select nearest
neighbor Px between
Pleft and Pright
2. Continuous pixels 
|| Px – P || < L
where L = distance threshold
(in view-space units)
P
Px = Pleft
Pright
Pixel Classification Examples
Two Half-Res Passes
Pass 1: Output SSAO and continuity mask
continuityMask = (|| Px – P || < L && || Py – P || < L)
Pass 2: Dilate the discontinuities
dilatedMask = all4x4(continuityMask)
Example Scene
Pass 1: Classification
Note: Distant pixels are all classified as “unstable” because ||P – Px/y||
increases with depth (perspective camera). Luckily for us, trailing
artifacts were not an issue in the distance so this was not an issue.
Pass 2: 4x4 Dilation
Pixel classified as unstable if it
has at least one discontinuity in
its neighborhood
4 Gather4 instructions on DX11
Enable temporal filter only:
- for unstable pixels
- with (|1 – wi /wi-1| < ε)
Selective Temporal Filtering
Video: HBAO + Selective Temporal Filtering
Video: Final Result
Final Pipeline with
Selective Temporal
Filtering (STF)
STF Performance Hit
[1920x1200 “High”, GTX 560 Ti]
• HBAO total: 2.5 ms -> 2.9 ms
• Frame time (GPU): 25.2 -> 25.6 ms
(1.6% performance hit)
STF Parameters
• Reprojection Threshold: For detecting
disocclusions (ε=10%)
• Distance Threshold: For detecting
discontinuities (L=0.1 meter)
• Dilation Kernel Size (4x4 texels)
History Buffers
● Additional GPU memory required for the history buffers
● For (AOi, Zi, Ni) and (AOi-1, Zi-1, Ni)
● Full-res, 1xMSAA
● For Multi-GPU Alternate Frame Rendering (AFR) rendering
● Create one set of buffers per GPU and alternate between them
● Each AFR GPU has its own buffers & reprojection state
● The history buffers are cleared on first use
● Clear values: (AO,Z)=(1.f, 0.f) and N=0
SelectiveTemporalFilter(uvi, AOi)
zi = Fetch(ZBufferi, uvi)
Pi = UnprojectToWorld(uvi, zi)
uvi-1 = ProjectToUV(Viewi-1, Pi)
zi-1 = Fetch(ZBufferi-1, uvi-1)
Pi-1 = UnprojectToWorld(uvi-1, zi-1)
wi = ViewDepth(Viewi-1 , Pi)
wi-1 = ViewDepth(Viewi-1 , Pi-1)
isStablePixel = Fetch(StabilityMask, uvi)
if ( |1 – wi/wi-1 | < ε && !isStablePixel )
AOi-1 = Fetch(AOTexturei-1, uvi-1)
Ni-1 = Fetch(NTexturei-1, uvi-1)
AOi = (Ni-1 AOi-1 + AOi) / (Ni-1 + 1)
Ni = min(Ni-1 + 1, Nmax)
else
Ni = 1
return(AOi, wi, Ni)
Unoptimized
pseudo-code
For fetching zi-1, use
clamp-to-border to
discard out-of-frame
data, with borderZ=0.f
For fetching AOi-1, use
bilinear filtering like in
[Nehab et al. 07]
Blur Optimization
Raw HBAO (Blur OFF)
Final HBAO (Blur ON)
Blur Overview
● Full-screen pixel-shader passes
● BlurX (horizontal)
● BlurY (vertical)
● BlurX takes as input
● Half-res AO
● Full-res linear depth (non-MSAA)
Blur Kernel
● We use 1D Cross-Bilateral Filters (CBF)
● Gaussian blur with depth-dependent weights
[Petschnigg et al. 04]
[Eisemann and Durand 04]
[Kopf et al. 07]
[Bavoil et al. 08]
[McGuire et al. 11]
Sum[ AOi w(i,Zi,Z0), i=-R..R ]
Sum[ w(i,Zi,Z0), i=-R..R ]
Output =
Blur Opt: Adaptive Sampling
2/3 of total weights
1/3 of total weights
Can these samples be
approximated?
Blur Opt: Adaptive Sampling
Replace pairs of samples
with in-between sample
Keep original samples
(AO,Z) fetches with
hw bilinear filtering
Blur Opt: Adaptive Sampling
Brute-Force Sampling BlurX cost: 0.8 ms
Adaptive Sampling BlurX cost: 0.6 ms
Blur Opt: Speedup
Blur Radius: 8
Resolution: 1920x1200
GeForce GTX 560 Ti
GPU Time Before After Speedup
Pack (AO,Z) 0.18 ms 0.18 ms 0%
BlurX 0.75 ms 0.58 ms 29%
BlurY+STF 1.00 ms 0.95 ms 5% (*)
Blur Total 1.93 ms 1.71 ms 13%
(*) Lower speedup due to the math overhead of
the Selective Temporal Filter (STF)
Summary
Two techniques used in Battlefield 3 / PC
1. A generic solution to fix SSAO flickering with
a low perf hit (*) on DX10/11 GPUs
2. An approximate cross-bilateral filter, using a
mix of point and bilinear taps
(*) 0.4 ms in 1920x1200 on GeForce GTX 560 Ti
Questions?
Louis Bavoil
lbavoil@nvidia.com
Johan Andersson
johan.andersson@dice.se
References
[McGuire et al. 11] McGuire, Osman, Bukowski, Hennessy. The Alchemy
Screen-Space Ambient Obscurance Algorithm. Proceedings of ACM
SIGGRAPH / Eurographics High-Performance Graphics 2011 (HPG '11).
[White and Barré-Brisebois 11] White, Barré-Brisebois. More Performance!
Five Rendering Ideas from Battlefield 3 and Need For Speed: The Run.
Advances in Real-Time Rendering in Games. SIGGRAPH 2011.
[Mattausch et al. 11] Mattausch, Scherzer, Wimmer. Temporal Screen-
Space Ambient Occlusion. In GPU Pro 2. 2011.
[Loos and Sloan 10] Loos, Sloan. Volumetric Obscurance. ACM Symposium
on Interactive 3D Graphics and Games 2010.
References
[Andersson 10] Andersson. Bending the Graphics Pipeline. Beyond
Programmable Shading course, SIGGRAPH 2010.
[Bavoil and Sainz 09a] Bavoil, Sainz. Image-Space Horizon-Based Ambient
Occlusion. In ShaderX7. 2009.
[Bavoil and Sainz 09b] Bavoil, Sainz. Multi-Layer Dual-Resolution Screen-
Space Ambient Occlusion. SIGGRAPH Talk. 2009.
[Smedberg and Wright 09] Smedberg, Wright. Rendering Techniques in
Gears of War 2. GDC 2009.
[Kajalin 09] Kajalin. Screen Space Ambient Occlusion. In ShaderX7. 2009.
[Bavoil et al. 08] Bavoil, Sainz, Dimitrov. Image-Space Horizon-Based
Ambient Occlusion. SIGGRAPH Talk. 2008.
References
[Nehab et al. 07] Nehab, Sander, Lawrence, Tatarchuk, Isidoro.
Accelerating Real-Time Shading with Reverse Reprojection Caching. In ACM
SIGGRAPH/Eurographics Symposium on Graphics Hardware 2007.
[Kopf et al. 07] Kopf, Cohen, Lischinski, Uyttendaele. 2007. Joint Bilateral
Upsampling. In Proceedings of SIGGRAPH 2007.
[Petschnigg et al. 04] Petschnigg, Szeliski, Agrawala, Cohen, Hoppe.
Toyama: Digital photography with flash and no-flash image pairs. In
Proceedings of SIGGRAPH 2004.
[Eisemann and Durand 04] Eisemann, Durand. “Flash Photography
Enhancement via Intrinsic Relighting”. In Proceedings of SIGGRAPH 2004.
Bonus Slides
HLSL: Adaptive Sampling
float r = 1;
// Inner half of the kernel: step size = 1 and POINT filtering
[unroll] for (; r <= KERNEL_RADIUS/2; r += 1)
{
float2 uv = r * deltaUV + uv0;
float2 AOZ = mainTexture.Sample(pointClampSampler, uv).xy;
processSample(AOZ, r, centerDepth, totalAO, totalW);
}
// Outer half of the kernel: step size = 2 and LINEAR filtering
[unroll] for (; r <= KERNEL_RADIUS; r += 2)
{
float2 uv = (r + 0.5) * deltaUV + uv0;
float2 AOZ = mainTexture.Sample(linearClampSampler, uv).xy;
processSample(AOZ, r, centerDepth, totalAO, totalW);
}
HLSL: Cross-Bilateral Weights
// d and d0 = linear depths
float crossBilateralWeight(float r, float d, float d0)
{
// precompiled by fxc
const float BlurSigma = ((float)KERNEL_RADIUS+1.0f) * 0.5f;
const float BlurFalloff = 1.f / (2.0f*BlurSigma*BlurSigma);
// assuming that d and d0 are pre-scaled linear depths
float dz = d0 - d;
return exp2(-r*r*BlurFalloff - dz*dz);
}

More Related Content

What's hot

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)Tiago Sousa
 
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 A1Ki Hyunwoo
 
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 IlluminationWolfgang Engel
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14AMD Developer Central
 
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 2016Graham Wihlidal
 
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
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbiteElectronic Arts / DICE
 
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 RaytracingElectronic Arts / DICE
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologyTiago Sousa
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 
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 ProblemsElectronic Arts / DICE
 
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 RenderingElectronic Arts / DICE
 
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...Electronic Arts / DICE
 
Deferred shading
Deferred shadingDeferred shading
Deferred shadingFrank Chao
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility bufferWolfgang Engel
 
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 3stevemcauley
 
Volumetric Lighting for Many Lights in Lords of the Fallen
Volumetric Lighting for Many Lights in Lords of the FallenVolumetric Lighting for Many Lights in Lords of the Fallen
Volumetric Lighting for Many Lights in Lords of the FallenBenjamin Glatzel
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The SurgeMichele Giacalone
 

What's hot (20)

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)
 
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
 
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
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 
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
 
Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
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...
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
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
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
Voxel based global-illumination
Voxel based global-illuminationVoxel based global-illumination
Voxel based global-illumination
 
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
 
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
 
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...
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
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
 
Volumetric Lighting for Many Lights in Lords of the Fallen
Volumetric Lighting for Many Lights in Lords of the FallenVolumetric Lighting for Many Lights in Lords of the Fallen
Volumetric Lighting for Many Lights in Lords of the Fallen
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 

Viewers also liked

Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Guerrilla
 
Building the Battlefield AI Experience
Building the Battlefield AI ExperienceBuilding the Battlefield AI Experience
Building the Battlefield AI ExperienceElectronic Arts / DICE
 
How data rules the world: Telemetry in Battlefield Heroes
How data rules the world: Telemetry in Battlefield HeroesHow data rules the world: Telemetry in Battlefield Heroes
How data rules the world: Telemetry in Battlefield HeroesElectronic Arts / DICE
 
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 FieldsElectronic Arts / DICE
 
5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive RenderingElectronic Arts / DICE
 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesElectronic Arts / DICE
 
Battlelog - Building scalable web sites with tight game integration
Battlelog - Building scalable web sites with tight game integrationBattlelog - Building scalable web sites with tight game integration
Battlelog - Building scalable web sites with tight game integrationElectronic Arts / DICE
 
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 3Electronic Arts / DICE
 
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09) 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)Johan Andersson
 
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 EdgeElectronic Arts / DICE
 

Viewers also liked (15)

Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Building the Battlefield AI Experience
Building the Battlefield AI ExperienceBuilding the Battlefield AI Experience
Building the Battlefield AI Experience
 
A Real-time Radiosity Architecture
A Real-time Radiosity ArchitectureA Real-time Radiosity Architecture
A Real-time Radiosity Architecture
 
Bending the Graphics Pipeline
Bending the Graphics PipelineBending the Graphics Pipeline
Bending the Graphics Pipeline
 
How data rules the world: Telemetry in Battlefield Heroes
How data rules the world: Telemetry in Battlefield HeroesHow data rules the world: Telemetry in Battlefield Heroes
How data rules the world: Telemetry in Battlefield Heroes
 
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
 
5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering5 Major Challenges in Interactive Rendering
5 Major Challenges in Interactive Rendering
 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield Heroes
 
Battlelog - Building scalable web sites with tight game integration
Battlelog - Building scalable web sites with tight game integrationBattlelog - Building scalable web sites with tight game integration
Battlelog - Building scalable web sites with tight game integration
 
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
 
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09) 	 Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
Shadows & Decals: D3D10 Techniques in Frostbite (GDC'09)
 
Scope Stack Allocation
Scope Stack AllocationScope Stack Allocation
Scope Stack Allocation
 
A Step Towards Data Orientation
A Step Towards Data OrientationA Step Towards Data Orientation
A Step Towards Data Orientation
 
Introduction to Data Oriented Design
Introduction to Data Oriented DesignIntroduction to Data Oriented Design
Introduction to Data Oriented Design
 
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 Stable SSAO in Battlefield 3 with Selective Temporal Filtering

Battle field3 ssao
Battle field3 ssaoBattle field3 ssao
Battle field3 ssaoMinGeun Park
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unity Technologies
 
Interactive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video StreamsInteractive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video StreamsMatthias Trapp
 
Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Nabil Chouba
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxMannyK4
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...Johan Andersson
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...MLconf
 
Deblocking Filter for Reduction of Blocking Artifacts in Video
Deblocking Filter for Reduction of Blocking Artifacts in VideoDeblocking Filter for Reduction of Blocking Artifacts in Video
Deblocking Filter for Reduction of Blocking Artifacts in VideoIRJET Journal
 
B Eng Final Year Project Presentation
B Eng Final Year Project PresentationB Eng Final Year Project Presentation
B Eng Final Year Project Presentationjesujoseph
 
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...Tokyo Institute of Technology
 
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...ozlael ozlael
 
“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
“Show Me the Garbage!”, Garbage Collection a Friend or a Foe“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
“Show Me the Garbage!”, Garbage Collection a Friend or a FoeHaim Yadid
 
CyberSec_JPEGcompressionForensics.pdf
CyberSec_JPEGcompressionForensics.pdfCyberSec_JPEGcompressionForensics.pdf
CyberSec_JPEGcompressionForensics.pdfMohammadAzreeYahaya
 
Real Time Human Posture Detection with Multiple Depth Sensors
Real Time Human Posture Detection with Multiple Depth SensorsReal Time Human Posture Detection with Multiple Depth Sensors
Real Time Human Posture Detection with Multiple Depth SensorsWassim Filali
 
Technical Documentation_Embedded_Acoustic_DSP_Projects
Technical Documentation_Embedded_Acoustic_DSP_ProjectsTechnical Documentation_Embedded_Acoustic_DSP_Projects
Technical Documentation_Embedded_Acoustic_DSP_ProjectsEmmanuel Chidinma
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Johan Andersson
 
customization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAcustomization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAShien-Chun Luo
 

Similar to Stable SSAO in Battlefield 3 with Selective Temporal Filtering (20)

Battle field3 ssao
Battle field3 ssaoBattle field3 ssao
Battle field3 ssao
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
Interactive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video StreamsInteractive Control over Temporal Consistency while Stylizing Video Streams
Interactive Control over Temporal Consistency while Stylizing Video Streams
 
Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation Multilayer Neuronal network hardware implementation
Multilayer Neuronal network hardware implementation
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsx
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
 
Deblocking Filter for Reduction of Blocking Artifacts in Video
Deblocking Filter for Reduction of Blocking Artifacts in VideoDeblocking Filter for Reduction of Blocking Artifacts in Video
Deblocking Filter for Reduction of Blocking Artifacts in Video
 
Thesis Final Presentation
Thesis Final PresentationThesis Final Presentation
Thesis Final Presentation
 
B Eng Final Year Project Presentation
B Eng Final Year Project PresentationB Eng Final Year Project Presentation
B Eng Final Year Project Presentation
 
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...
Applying Recursive Temporal Blocking for Stencil Computations to Deeper Memor...
 
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
 
Moving object detection on FPGA
Moving object detection on FPGAMoving object detection on FPGA
Moving object detection on FPGA
 
“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
“Show Me the Garbage!”, Garbage Collection a Friend or a Foe“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
“Show Me the Garbage!”, Garbage Collection a Friend or a Foe
 
CyberSec_JPEGcompressionForensics.pdf
CyberSec_JPEGcompressionForensics.pdfCyberSec_JPEGcompressionForensics.pdf
CyberSec_JPEGcompressionForensics.pdf
 
Real Time Human Posture Detection with Multiple Depth Sensors
Real Time Human Posture Detection with Multiple Depth SensorsReal Time Human Posture Detection with Multiple Depth Sensors
Real Time Human Posture Detection with Multiple Depth Sensors
 
Technical Documentation_Embedded_Acoustic_DSP_Projects
Technical Documentation_Embedded_Acoustic_DSP_ProjectsTechnical Documentation_Embedded_Acoustic_DSP_Projects
Technical Documentation_Embedded_Acoustic_DSP_Projects
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
customization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLAcustomization of a deep learning accelerator, based on NVDLA
customization of a deep learning accelerator, based on NVDLA
 

More from Electronic Arts / DICE

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 DevelopmentElectronic Arts / DICE
 
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 EdgeElectronic Arts / DICE
 
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 TracingElectronic Arts / DICE
 
Khronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanKhronos Munich 2018 - Halcyon and Vulkan
Khronos Munich 2018 - Halcyon and VulkanElectronic Arts / DICE
 
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 RaytracingElectronic Arts / DICE
 
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 ProceduralismElectronic Arts / DICE
 
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 TuringElectronic Arts / DICE
 
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...Electronic Arts / DICE
 
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 SystemsElectronic Arts / DICE
 
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 SEEDElectronic Arts / DICE
 
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 FrostbiteElectronic Arts / DICE
 
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 FrostbiteElectronic Arts / DICE
 
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 AndromedaElectronic Arts / DICE
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
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)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
 
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
 
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
 
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...
 
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
 
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
 
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
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
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

A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Mother
A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' MotherA Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Mother
A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Motherget joys
 
THE MEDIC, A STORY for entertainment.docx
THE MEDIC, A STORY for entertainment.docxTHE MEDIC, A STORY for entertainment.docx
THE MEDIC, A STORY for entertainment.docxazuremorn
 
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...Amil Baba Dawood bangali
 
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...Amil baba
 
Taken Pilot Episode Story pitch Document
Taken Pilot Episode Story pitch DocumentTaken Pilot Episode Story pitch Document
Taken Pilot Episode Story pitch Documentf4ssvxpz62
 
Statement Of Intent - - Copy.documentfile
Statement Of Intent - - Copy.documentfileStatement Of Intent - - Copy.documentfile
Statement Of Intent - - Copy.documentfilef4ssvxpz62
 
Zoom In Game for ice breaking in a training
Zoom In Game for ice breaking in a trainingZoom In Game for ice breaking in a training
Zoom In Game for ice breaking in a trainingRafik ABDI
 
Fight Scene Storyboard (Action/Adventure Animation)
Fight Scene Storyboard (Action/Adventure Animation)Fight Scene Storyboard (Action/Adventure Animation)
Fight Scene Storyboard (Action/Adventure Animation)finlaygoodall2
 
Aesthetic Design Inspiration by Slidesgo.pptx
Aesthetic Design Inspiration by Slidesgo.pptxAesthetic Design Inspiration by Slidesgo.pptx
Aesthetic Design Inspiration by Slidesgo.pptxsayemalkadripial4
 
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...Amil Baba Dawood bangali
 
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024Durkin Entertainment LLC
 
Princess Jahan's Tuition Classes, a story for entertainment
Princess Jahan's Tuition Classes, a story for entertainmentPrincess Jahan's Tuition Classes, a story for entertainment
Princess Jahan's Tuition Classes, a story for entertainmentazuremorn
 
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...TeslaStakeHolder
 
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)What Life Would Be Like From A Different Perspective (saltyvixenstories.com)
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)Salty Vixen Stories & More
 
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand Finale
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand FinaleBiswanath Byam Samiti Open Quiz 2022 by Qui9 Grand Finale
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand FinaleQui9 (Ultimate Quizzing)
 
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 

Recently uploaded (20)

Sincerely, The Friday Club - Farewell Quiz-Finals.pptx
Sincerely, The Friday Club - Farewell Quiz-Finals.pptxSincerely, The Friday Club - Farewell Quiz-Finals.pptx
Sincerely, The Friday Club - Farewell Quiz-Finals.pptx
 
A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Mother
A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' MotherA Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Mother
A Spotlight on Darla Leigh Pittman Rodgers: Aaron Rodgers' Mother
 
THE MEDIC, A STORY for entertainment.docx
THE MEDIC, A STORY for entertainment.docxTHE MEDIC, A STORY for entertainment.docx
THE MEDIC, A STORY for entertainment.docx
 
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...
NO1 Certified kala ilam Expert In Peshwar Kala Jadu Specialist In Peshwar Kal...
 
S10_E06-Sincerely,The Friday Club- Prelims Farewell Quiz.pptx
S10_E06-Sincerely,The Friday Club- Prelims Farewell Quiz.pptxS10_E06-Sincerely,The Friday Club- Prelims Farewell Quiz.pptx
S10_E06-Sincerely,The Friday Club- Prelims Farewell Quiz.pptx
 
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...
Uk-NO1 Amil In Karachi Best Amil In Karachi Bangali Baba In Karachi Aamil In ...
 
Taken Pilot Episode Story pitch Document
Taken Pilot Episode Story pitch DocumentTaken Pilot Episode Story pitch Document
Taken Pilot Episode Story pitch Document
 
Statement Of Intent - - Copy.documentfile
Statement Of Intent - - Copy.documentfileStatement Of Intent - - Copy.documentfile
Statement Of Intent - - Copy.documentfile
 
Zoom In Game for ice breaking in a training
Zoom In Game for ice breaking in a trainingZoom In Game for ice breaking in a training
Zoom In Game for ice breaking in a training
 
Fight Scene Storyboard (Action/Adventure Animation)
Fight Scene Storyboard (Action/Adventure Animation)Fight Scene Storyboard (Action/Adventure Animation)
Fight Scene Storyboard (Action/Adventure Animation)
 
Aesthetic Design Inspiration by Slidesgo.pptx
Aesthetic Design Inspiration by Slidesgo.pptxAesthetic Design Inspiration by Slidesgo.pptx
Aesthetic Design Inspiration by Slidesgo.pptx
 
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...
NO1 Certified Black magic specialist,Expert in Pakistan Amil Baba kala ilam E...
 
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024
ECOLUXE pre-ESPYS Ultimate Sports Lounge 2024
 
Princess Jahan's Tuition Classes, a story for entertainment
Princess Jahan's Tuition Classes, a story for entertainmentPrincess Jahan's Tuition Classes, a story for entertainment
Princess Jahan's Tuition Classes, a story for entertainment
 
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...
Flying Avocado Cat Cryptocurrency Created, Coded, Generated and Named by Grok...
 
S10_E02_How to Pimp Social Media 101.pptx
S10_E02_How to Pimp Social Media 101.pptxS10_E02_How to Pimp Social Media 101.pptx
S10_E02_How to Pimp Social Media 101.pptx
 
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)What Life Would Be Like From A Different Perspective (saltyvixenstories.com)
What Life Would Be Like From A Different Perspective (saltyvixenstories.com)
 
Moveable Feast_Travel-Lifestyle-Culture Quiz.pptx
Moveable Feast_Travel-Lifestyle-Culture Quiz.pptxMoveable Feast_Travel-Lifestyle-Culture Quiz.pptx
Moveable Feast_Travel-Lifestyle-Culture Quiz.pptx
 
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand Finale
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand FinaleBiswanath Byam Samiti Open Quiz 2022 by Qui9 Grand Finale
Biswanath Byam Samiti Open Quiz 2022 by Qui9 Grand Finale
 
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书
办理滑铁卢大学毕业证成绩单|购买加拿大文凭证书
 

Stable SSAO in Battlefield 3 with Selective Temporal Filtering

  • 1. Stable SSAO in Battlefield 3 with Selective Temporal Filtering Louis Bavoil Developer Technology Engineer NVIDIA Johan Andersson Rendering Architect DICE / EA
  • 2. SSAO ● Screen Space Ambient Occlusion (SSAO) ● Has become de-facto approach for rendering AO in games with no precomputation ● Key Idea: use depth buffer as approximation of the opaque geometry of the scene ● Large variety of SSAO algorithms, all taking as input the scene depth buffer [Kajalin 09] [Loos and Sloan 10] [McGuire et al. 11]
  • 3. HBAO ● Horizon-Based Ambient Occlusion (HBAO) ● Considers the depth buffer as a heightfield, and approximates ray-tracing this heightfield ● Improved implementation available in NVIDIA’s SDK11 (SSAO11.zip / HBAO_PS.hlsl) ● Used for rendering SSAO in Battlefield 3 / PC for its “High” and “Ultra” Graphics Quality presets [Bavoil and Sainz 09a] [Andersson 10] [White and Barré-Brisebois 11]
  • 5. Original HBAO Implementation in Frostbite 2 Frame time (GPU): 25.2 ms Total HBAO time: 2.5 ms (10% of frame) [1920x1200 “High” DX11 GeForce GTX 560 Ti]
  • 7. Screenshot: HBAO Only The HBAO looked good-enough on screenshots…
  • 8. Video: Flickering HBAO …but produced objectionable flickering in motion on thin objects such as alpha-tested foliage (grass and trees in particular)
  • 9. Our Constraints ● PC-only ● In Frostbite 2, HBAO implemented only for DX10 & DX11 ● Low Perf Hit, High Quality ● Whole HBAO was already 2.5 ms (1920x1200 / GTX 560 Ti) ● HBAO used in High and Ultra presets, had to look great
  • 10. Considered Workarounds ● Full-resolution SSAO or dual-resolution SSAO (*) …but that more-than-doubled the cost of the SSAO, and some flickering could remain ● Brighten SSAO on the problematic objects …but we wanted a way to keep full-strength SSAO on everything (in particular on foliage) (*) [Bavoil and Sainz 09b]
  • 11. Temporal Filtering Approach ● By definition, AO depends only on the scene geometry, not on the camera ● For static (or nearly-static geometry), can re-project AO from previous frame ● Reduce AO variance between frames by using a temporal filter: newAO = lerp(newAO,previousAO,x) ● Known approach used in Gears of War 2 [Nehab et al. 07] [Smedberg and Wright 09]
  • 12. Reverse Reprojection [Nehab et al. 07] (uvi, zi) Current Camera (Frame i) Previous Camera (Frame i-1)
  • 13. Pi (uvi, zi) Reverse Reprojection [Nehab et al. 07] Current Camera (Frame i) 1. Current ViewProjection-1 Previous Camera (Frame i-1)
  • 14. Pi uvi-1 1. Current ViewProjection-1 2. Previous ViewProjection (uvi, zi) Reverse Reprojection [Nehab et al. 07] Current Camera (Frame i) Previous Camera (Frame i-1)
  • 15. Current Camera (Frame i) Pi Pi-1 (uvi-1, zi-1) 1. Current ViewProjection-1 3. Fetch Previous View Depth 2. Previous ViewProjection (uvi, zi) Reverse Reprojection [Nehab et al. 07] Previous Camera (Frame i-1)
  • 16. Current Camera (Frame i) Pi Pi-1 (uvi-1, zi-1) 1. Current ViewProjection-1 3. Fetch Previous View Depth 2. Previous ViewProjection 4. If Pi ~= Pi-1 re-use AO(Pi-1) (uvi, zi) Reverse Reprojection [Nehab et al. 07] Previous Camera (Frame i-1)
  • 17. Temporal Refinement [Mattausch et al. 11] If Pi-1 ~= Pi AOi = (Ni-1 AOi-1 + AOi) / (Ni-1 + 1) Ni = min(Ni-1 + 1, Nmax) Else AOi = AOi Ni = 1 Ni = num. frames that have been accumulated in current solution at Pi Nmax = max num. frames (~8), to keep AOi-1 contributing to AOi Pi Pi-1 (uvi-1, zi-1) (uvi, zi)
  • 18. Disocclusion Test [Mattausch et al. 11] Pi ~= Pi-1  wi = ViewDepth(Viewi-1, Pi) wi-1 = ViewDepth(Viewi-1, Pi-1)
  • 19. Relaxed Disocclusion Test Pi ~= Pi-1  To support nearly-static objects ● Such as foliage waving in the wind (grass, trees, …) ● We simply relaxed the threshold (used ε = 10%)
  • 20. Video: Temporal Filtering with ε=+Inf Flickering is fixed, but there are ghosting artifacts due to disocclusions
  • 21. Flickering on the grass (nearly static), but no ghosting artifacts Video: Temporal Filtering with ε=0.1%
  • 22. No flickering, no ghosting, 1% perf hit (25.2 -> 25.5 ms) Video: Temporal Filtering with ε=10%
  • 23. Video: Trailing Artifacts New issue: trailing artifacts on static objects receiving AO from dynamic objects
  • 24. Observations 1. With temporal filtering OFF The flickering pixels are mostly on foliage. The other pixels do not have any objectionable flickering. 2. With temporal filtering ON The trailing artifacts (near the character's feet) are not an issue on foliage pixels.
  • 25. Selective Temporal Filtering ● Assumption The set of flickering pixels and the set of trailing pixels are mutually exclusive ● Our Approach: 1. Classify the pixels as stable (potential trailing) or unstable (potential flickering) 2. Disable the temporal filter for the stable pixels
  • 26. Pixel Classification Approach ● Normal reconstruction in SSAO shader ● Px = ||P - Pleft|| < ||P - Pright|| ? Pleft : Pright ● Py = ||P - Ptop|| < ||P - Pbottom|| ? Ptop : Pbottom ● N = ± normalize(cross(P - Px, P - Py)) ● Idea: If reconstructed normal is noisy, the SSAO will be noisy P Pl Pr Pt Pb
  • 27. Piecewise Continuity Test 1. Select nearest neighbor Px between Pleft and Pright P Px = Pleft Pright
  • 28. Piecewise Continuity Test 1. Select nearest neighbor Px between Pleft and Pright 2. Continuous pixels  || Px – P || < L where L = distance threshold (in view-space units) P Px = Pleft Pright
  • 30. Two Half-Res Passes Pass 1: Output SSAO and continuity mask continuityMask = (|| Px – P || < L && || Py – P || < L) Pass 2: Dilate the discontinuities dilatedMask = all4x4(continuityMask)
  • 32. Pass 1: Classification Note: Distant pixels are all classified as “unstable” because ||P – Px/y|| increases with depth (perspective camera). Luckily for us, trailing artifacts were not an issue in the distance so this was not an issue.
  • 33. Pass 2: 4x4 Dilation Pixel classified as unstable if it has at least one discontinuity in its neighborhood 4 Gather4 instructions on DX11
  • 34. Enable temporal filter only: - for unstable pixels - with (|1 – wi /wi-1| < ε) Selective Temporal Filtering
  • 35. Video: HBAO + Selective Temporal Filtering
  • 37. Final Pipeline with Selective Temporal Filtering (STF) STF Performance Hit [1920x1200 “High”, GTX 560 Ti] • HBAO total: 2.5 ms -> 2.9 ms • Frame time (GPU): 25.2 -> 25.6 ms (1.6% performance hit) STF Parameters • Reprojection Threshold: For detecting disocclusions (ε=10%) • Distance Threshold: For detecting discontinuities (L=0.1 meter) • Dilation Kernel Size (4x4 texels)
  • 38. History Buffers ● Additional GPU memory required for the history buffers ● For (AOi, Zi, Ni) and (AOi-1, Zi-1, Ni) ● Full-res, 1xMSAA ● For Multi-GPU Alternate Frame Rendering (AFR) rendering ● Create one set of buffers per GPU and alternate between them ● Each AFR GPU has its own buffers & reprojection state ● The history buffers are cleared on first use ● Clear values: (AO,Z)=(1.f, 0.f) and N=0
  • 39. SelectiveTemporalFilter(uvi, AOi) zi = Fetch(ZBufferi, uvi) Pi = UnprojectToWorld(uvi, zi) uvi-1 = ProjectToUV(Viewi-1, Pi) zi-1 = Fetch(ZBufferi-1, uvi-1) Pi-1 = UnprojectToWorld(uvi-1, zi-1) wi = ViewDepth(Viewi-1 , Pi) wi-1 = ViewDepth(Viewi-1 , Pi-1) isStablePixel = Fetch(StabilityMask, uvi) if ( |1 – wi/wi-1 | < ε && !isStablePixel ) AOi-1 = Fetch(AOTexturei-1, uvi-1) Ni-1 = Fetch(NTexturei-1, uvi-1) AOi = (Ni-1 AOi-1 + AOi) / (Ni-1 + 1) Ni = min(Ni-1 + 1, Nmax) else Ni = 1 return(AOi, wi, Ni) Unoptimized pseudo-code For fetching zi-1, use clamp-to-border to discard out-of-frame data, with borderZ=0.f For fetching AOi-1, use bilinear filtering like in [Nehab et al. 07]
  • 43. Blur Overview ● Full-screen pixel-shader passes ● BlurX (horizontal) ● BlurY (vertical) ● BlurX takes as input ● Half-res AO ● Full-res linear depth (non-MSAA)
  • 44. Blur Kernel ● We use 1D Cross-Bilateral Filters (CBF) ● Gaussian blur with depth-dependent weights [Petschnigg et al. 04] [Eisemann and Durand 04] [Kopf et al. 07] [Bavoil et al. 08] [McGuire et al. 11] Sum[ AOi w(i,Zi,Z0), i=-R..R ] Sum[ w(i,Zi,Z0), i=-R..R ] Output =
  • 45. Blur Opt: Adaptive Sampling 2/3 of total weights 1/3 of total weights Can these samples be approximated?
  • 46. Blur Opt: Adaptive Sampling Replace pairs of samples with in-between sample Keep original samples (AO,Z) fetches with hw bilinear filtering
  • 47. Blur Opt: Adaptive Sampling
  • 49. Adaptive Sampling BlurX cost: 0.6 ms
  • 50. Blur Opt: Speedup Blur Radius: 8 Resolution: 1920x1200 GeForce GTX 560 Ti GPU Time Before After Speedup Pack (AO,Z) 0.18 ms 0.18 ms 0% BlurX 0.75 ms 0.58 ms 29% BlurY+STF 1.00 ms 0.95 ms 5% (*) Blur Total 1.93 ms 1.71 ms 13% (*) Lower speedup due to the math overhead of the Selective Temporal Filter (STF)
  • 51. Summary Two techniques used in Battlefield 3 / PC 1. A generic solution to fix SSAO flickering with a low perf hit (*) on DX10/11 GPUs 2. An approximate cross-bilateral filter, using a mix of point and bilinear taps (*) 0.4 ms in 1920x1200 on GeForce GTX 560 Ti
  • 53. References [McGuire et al. 11] McGuire, Osman, Bukowski, Hennessy. The Alchemy Screen-Space Ambient Obscurance Algorithm. Proceedings of ACM SIGGRAPH / Eurographics High-Performance Graphics 2011 (HPG '11). [White and Barré-Brisebois 11] White, Barré-Brisebois. More Performance! Five Rendering Ideas from Battlefield 3 and Need For Speed: The Run. Advances in Real-Time Rendering in Games. SIGGRAPH 2011. [Mattausch et al. 11] Mattausch, Scherzer, Wimmer. Temporal Screen- Space Ambient Occlusion. In GPU Pro 2. 2011. [Loos and Sloan 10] Loos, Sloan. Volumetric Obscurance. ACM Symposium on Interactive 3D Graphics and Games 2010.
  • 54. References [Andersson 10] Andersson. Bending the Graphics Pipeline. Beyond Programmable Shading course, SIGGRAPH 2010. [Bavoil and Sainz 09a] Bavoil, Sainz. Image-Space Horizon-Based Ambient Occlusion. In ShaderX7. 2009. [Bavoil and Sainz 09b] Bavoil, Sainz. Multi-Layer Dual-Resolution Screen- Space Ambient Occlusion. SIGGRAPH Talk. 2009. [Smedberg and Wright 09] Smedberg, Wright. Rendering Techniques in Gears of War 2. GDC 2009. [Kajalin 09] Kajalin. Screen Space Ambient Occlusion. In ShaderX7. 2009. [Bavoil et al. 08] Bavoil, Sainz, Dimitrov. Image-Space Horizon-Based Ambient Occlusion. SIGGRAPH Talk. 2008.
  • 55. References [Nehab et al. 07] Nehab, Sander, Lawrence, Tatarchuk, Isidoro. Accelerating Real-Time Shading with Reverse Reprojection Caching. In ACM SIGGRAPH/Eurographics Symposium on Graphics Hardware 2007. [Kopf et al. 07] Kopf, Cohen, Lischinski, Uyttendaele. 2007. Joint Bilateral Upsampling. In Proceedings of SIGGRAPH 2007. [Petschnigg et al. 04] Petschnigg, Szeliski, Agrawala, Cohen, Hoppe. Toyama: Digital photography with flash and no-flash image pairs. In Proceedings of SIGGRAPH 2004. [Eisemann and Durand 04] Eisemann, Durand. “Flash Photography Enhancement via Intrinsic Relighting”. In Proceedings of SIGGRAPH 2004.
  • 57. HLSL: Adaptive Sampling float r = 1; // Inner half of the kernel: step size = 1 and POINT filtering [unroll] for (; r <= KERNEL_RADIUS/2; r += 1) { float2 uv = r * deltaUV + uv0; float2 AOZ = mainTexture.Sample(pointClampSampler, uv).xy; processSample(AOZ, r, centerDepth, totalAO, totalW); } // Outer half of the kernel: step size = 2 and LINEAR filtering [unroll] for (; r <= KERNEL_RADIUS; r += 2) { float2 uv = (r + 0.5) * deltaUV + uv0; float2 AOZ = mainTexture.Sample(linearClampSampler, uv).xy; processSample(AOZ, r, centerDepth, totalAO, totalW); }
  • 58. HLSL: Cross-Bilateral Weights // d and d0 = linear depths float crossBilateralWeight(float r, float d, float d0) { // precompiled by fxc const float BlurSigma = ((float)KERNEL_RADIUS+1.0f) * 0.5f; const float BlurFalloff = 1.f / (2.0f*BlurSigma*BlurSigma); // assuming that d and d0 are pre-scaled linear depths float dz = d0 - d; return exp2(-r*r*BlurFalloff - dz*dz); }

Editor's Notes

  1. In Gears of War 2 talk: “Motivation – Large spatial filters needed to hide low occlusion samples – Detail is lost with large filters Lots of variance between frames"
  2. Two 1D passes: applied horizontally, then vertically
  3. approximating the low-weighted part of the Gaussian kernel.
  4. TODO: Dump Gaussian weights for R=8