SlideShare a Scribd company logo
1 of 39
Game Developers Conference 2011



  Approximating Translucency
for a Fast, Cheap and Convincing
   Subsurface Scattering Look

       Colin Barré-Brisebois (speaker)
               Marc Bouchard
Agenda
•   Prelude – Real-Time Demo
•   1. Translucency in Computer Graphics
•   2. Technique Details
•   3. Implementation Details
•   Q&A




                                           Fig. 1 – Real-Time Translucency in Frostbite 2
Real-Time Translucency
Demo
Translucency in Computer
Graphics
Translucency
The quality of allowing light to pass partially and diffusely
inside media.




          Fig. 2 – Translucency in Athena Statue (left) [BarréBrisebois11], and child’s hand (right)
Translucency in Computer Graphics
• We rely heavily on BRDFs for describing local
   reflections
  – Simple and effective for opaque objects
• However, many objects in nature are (partly)
  translucent
  – Light transport also happens within the surface
  – BRDFs are not sufficient
• BSSRDFs allow for an even better simulation
  – But are usually more/too expensive
• In our case, we chose BSDFs (BRDF + BTDF),
   with some elements of BSSRDF
                                                      Fig. 3 – BRDF, BTDF and BSSRDF
The State of Translucency
Real-time translucency and derivatives come in different
flavors:
• The more complex, but (relatively) expensive
  – [Chang08] Texture-space Importance Sampling
  – [Hable09] Texture-space Diffusion blurs, for skin / SSS
  – [Ki09] Shadowmap-based Translucency / SSS




                                                                   Fig. 5 – Texture-space Diffusion [Hable09]


            Fig. 4 – Texture-space Importance Sampling [Chang08]
The State of Translucency (cont.)
Real-time translucency and derivatives come in different
flavors:
• The simpler, but faster
  – [Sousa08] double-sided lighting &
    attenuation for foliage
• We want: fast like [Sousa08], and
  nice / complex results like the
  others 



                                        Fig. 6 – Foliage Translucency from Crytek’s Crysis
And we got...




          Fig. 7 – Real-Time Translucency in EA DICE’s Frostbite 2 Engine
And we got... (cont.)




      Fig. 8 – Real-Time Translucency (Skin/Left, Hebe/Right) in EA DICE’s Frostbite 2 Engine
Technique Details
Overview
• We don’t want to rely on additional depth maps and texture-space blurs
  – Requires more memory (i.e. for depth maps)
  – Requires significant computation (i.e. for texture blurs)
  – The previous are still feasible, but what if we could do without...
• In essence, for convincing translucency, the light traveling inside the shape:
  – Has to be influenced by the varying thickness of the object
  – Has to show some view & light-dependent diffusion/attenuation
• We only really need a simple representation of inner surface diffusion
  – Most users will be convinced even if not fully accurate!
  – Also, if the effect is cheap, we are free to use it everywhere!*   
Overview (cont.)




            Fig. 9 – Direct and Translucency Lighting Vectors
Local Thickness




              Fig. 10 – Local Thickness on Hebe
Computing Local Thickness
• We rely on ambient occlusion for computing this info:
 1. Invert the surface normals
 2. Render ambient occlusion
 3. Invert the colors and store in texture
• Can also be stored in vertex color, if tesselation allows
• Similar to [Sousa08], but streamlined for meshes of varying
  shapes and sizes.
Computing Local Thickness (cont.)




             Fig. 11 – Local Thickness Texture for Hebe
What About Subsurface Scattering?
Even if not mathematically perfect,
our technique gives an impression
of SSS:
• Local thickness approximates light
  transport inside the shape
  – Different color for direct and indirect light
    gives convicing light color subsurface transfer
• View-oriented distortion and attenuation
  gives an organic result, breaking the
  uniformity
                                                      Fig. 13 – Our Technique,
                                                                combined with Skin Shading
Implementation Details
Code
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;

• Generates approx. 13 ALU
  instructions (based on platform)
  – More performance details in following
    slides
• Can precompute powers in order to
  get rid of the pow()

                                            Fig. 9 – Direct and Translucency Lighting Vectors
Managing the Data at Runtime
At runtime, we have several parameters to manage, some per-
light, some per-material:
• Per-light parameters are used during the deferred light pass
• Per-material parameters are stored in the g-buffer
 – Can also be stored in a separate buffer, if space-limited
 – Some parameters make more sense per-light, some per-material
 – This is very specific to your g-buffer setup
 – Might require some clever packing/unpacking
   • For packing more parameters on a per-material basis, instead of per-light
 – Using this technique with deferred shading definitely brings-the-thunder!
Managing the Data at Runtime (cont.)
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;


fLTAmbient
• Ambient value
• Visible from all angles
• Representing both front and back
  translucency that is always present
• Optimally, per-material
                                              Fig. 14 – Ambient Term
Managing the Data at Runtime (cont.)
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;


iLTPower
• Power value for direct translucency
• Breaks continuity, view-dependent
• Can be optimized with pre-computed
  powers
• Optimally, per-material
                                          Fig. 16 – Power (4/Left, 12/Right) Term
Managing the Data at Runtime (cont.)
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;


fLTDistortion
• Subsurface Distortion
• Shifts the surface normal
• Breaks continuity, view-dependent
  Allows for more organic, Fresnel-like
• Optimally, per-material
                                          Fig. 17 – Distortion (None/Left, 0.2/Right) Term
Managing the Data at Runtime (cont.)
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;


fLTThickness
• Pre-computed Local Thickness Map
• Used for both direct and indirect
  translucency
• Attenuates the computation where
  surface thickness varies
• Defined per-material
                                              Fig. 18 – Local Thickness
Managing the Data at Runtime (cont.)
half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion;
half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale;
half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness;
outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT;


fLTScale
• Scale value
• Direct / Back translucency
• View-oriented
• Should be defined per-light. This
  makes it the central control point
                                          Fig. 15 – Scale (1/Left, 5/Right) Term
All-Together




               Fig. 19 – The Final Result on Hebe
Deferred Shading G-Buffer Setup
Minimally, translucency can be stored in the g-buffer as a
single greyscale value:




                       Fig. 20 – Our G-Buffer, with greyscale Translucency

Based on your game, this can be enough. The color will then only originate
from the light sources (and also diffuse albedo).
Deferred Shading G-Buffer Setup (cont.)


All objects here are
relying on a
greyscale value
for translucency 




                       Fig. 1 – Real-Time Translucency in Frostbite 2
Deferred Shading G-Buffer Setup (cont.)
Better results will be achieved if translucency is a color (here,
with some packing):




                   Fig. 21 – Our G-Buffer, with coloured Translucency (packed/offset)
This translucency color, representing our inner surface color diffusion, will
be combined to the light color and the material’s diffuse albedo.
Deferred Shading G-Buffer Setup (cont.)

Green Light
White Albedo
Red Translucency ->
# #          #     #     #
   #     #     #     #                                                         <- Blue Light
     #     #     #     #
       #                                                                          White Albedo &
                                                                                  Translucency



                             Fig. 22 – Real-Time Translucency in Frostbite 2
Performance
                         XBOX
360     PLAYSTATION
3      PC
(DX11)
Full‐Screen

Coverage
   0.6
ms       1.0
ms             0.03
ms

Instruc9ons
             13           17                 12



• PS3: Takes advantage of our light-tile rendering on SPUs
   – See Christina Coffin’s ”SPU Deferred Shading for BF3 on PS3”
• DX11: Supported in our Compute Shader solution
   – See Johan Andersson’s “DX11 rendering in Battlefield 3” talk for more
     DX11-related details
• PC: AMD Radeon 6970
Caveats
• Doesn’t take all concavities into account
• Technique is optimal for convex hulls
• Doesn’t work with morphing/animated
  objects
  – Alternative: Though camera dependent, several
    cases could work with a real-time thickness approximation
    [Oat08]
  – Alternative: Could also use an hybrid dynamic AO            Fig. 23 – Concave Hull
    computation, with inverted normals
Summary and Q&A
• We presented an artist-friendly, fast and scalable real-time
  approximation of light transport in translucent homogenous
  media:
 – Improves games visuals by adding a new dimension, with light traveling
   inside shapes
 – Has a scalable and reasonable impact on runtime
 – Provides convincing results even if not mathematically
   perfect
• This technique is also published in GPU Pro 2,
  released this week at GDC. Check out the book!
Special Thanks
•   Sergei Savchenko
•   Johan Andersson (@repi)
•   Christina Coffin (@christinacoffin)
•   Halldor Fannar
•   Joakim Svärling
•   Stephen Hill (@self_shadow)
•   Frederic O’Reilly
•   John White
•   Wessam Bahnassi
•   Carsten Dachsbacher
•   Daniel Collin (@daniel_collin)
•   Torbjörn Malmer
•   Kenny Magnusson                       • Mohannad Al-Khatib (@psychodesigns)
•   Dominik Bauset                        • Colin Boswell (@bozz)
•   Sandra Jensen
References
[BarréBrisebois11] Barré-Brisebois, Colin and Bouchard, Marc.”Real-Time Approximation of Light Transport
                         in Translucent Homogenous Media”, GPU Pro 2, Wolfgang Engel, Ed. Charles River
                         Media, 2011.
[Chang08]                Chang, Chih-Wen, Lin, Wen-Chieh, Ho, Tan-Chi, Huang, Tsung-Shian and Chuang,
                         Jung-Hong. “Real-Time Translucent Rendering Using GPU-based Texture Space
                         Importance Sampling,” Computer Graphics Forum (Eurographics 2008), Vol. 27,
                         No. 2, 2008, pp 517-526.
[Hable09]                Hable, John, Borshukov, George and Hejl, Jim. “Fast Skin Shading,” ShaderX7: Advanced
                         Rendering Techniques, Wolfgang Engel, Ed., Charles River Media, 2009: pp. 161-173.
[Ki09]                   Ki, Hyunwoo. “Real-time Subsurface Scattering Using Shadow Maps,” ShaderX7:
                         Advanced Rendering Techniques, Wolfgang Engel, Ed., Charles River Media, 2009:
                         pp. 467-478.
[Oat08]                  Oat, Christopher and Scheuermann, Thorsten. “Computing Per-Pixel Object Thickness in
                         a Single Render Pass,” ShaderX6: Advanced Rendering Techniques, Wolfgang Engel,
                         Ed., Charles River Media, 2008: pp. 57-62.
[Sousa08]                Sousa, Tiago. “Vegetation Procedural Animation and Shading in Crysis,” GPU Gems 3,
                         Hubert Nguyen, Ed., Addison-Wesley, 2008: pp. 373-385.
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look

More Related Content

What's hot

Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallGuerrilla
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)Philip Hammer
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility bufferWolfgang Engel
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2Guerrilla
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
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
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
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
 
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
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnThe Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnGuerrilla
 
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
 
Terrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemTerrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemElectronic Arts / DICE
 

What's hot (20)

D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
Lighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow FallLighting of Killzone: Shadow Fall
Lighting of Killzone: Shadow Fall
 
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
The Rendering Technology of 'Lords of the Fallen' (Game Connection Europe 2014)
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2The Rendering Technology of Killzone 2
The Rendering Technology of Killzone 2
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
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
 
Ssao
SsaoSsao
Ssao
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
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
 
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)
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnThe Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
 
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
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
Terrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable SystemTerrain in Battlefield 3: A Modern, Complete and Scalable System
Terrain in Battlefield 3: A Modern, Complete and Scalable System
 

Similar to Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look

GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham OriginsGTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham OriginsColin Barré-Brisebois
 
Advanced Lighting Techniques Dan Baker (Meltdown 2005)
Advanced Lighting Techniques   Dan Baker (Meltdown 2005)Advanced Lighting Techniques   Dan Baker (Meltdown 2005)
Advanced Lighting Techniques Dan Baker (Meltdown 2005)mobius.cn
 
SPU-based Deferred Shading for Battlefield 3 on Playstation 3
SPU-based Deferred Shading for Battlefield 3 on Playstation 3SPU-based Deferred Shading for Battlefield 3 on Playstation 3
SPU-based Deferred Shading for Battlefield 3 on Playstation 3Slide_N
 
Rendering basics
Rendering basicsRendering basics
Rendering basicsicedmaster
 
Penn graphics
Penn graphicsPenn graphics
Penn graphicsfloored
 
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
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingSteven Tovey
 
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
 
Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3drandom
 
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfPapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfAdam Hill
 
Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeWuBinbo
 
Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]ozlael ozlael
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Slide_N
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_iankit_ppt
 
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
 
Shader X³: Image Space - Color Grading
Shader X³: Image Space - Color GradingShader X³: Image Space - Color Grading
Shader X³: Image Space - Color GradingRonny Burkersroda
 
Order Independent Transparency
Order Independent TransparencyOrder Independent Transparency
Order Independent Transparencyacbess
 

Similar to Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look (20)

GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham OriginsGTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
 
Advanced Lighting Techniques Dan Baker (Meltdown 2005)
Advanced Lighting Techniques   Dan Baker (Meltdown 2005)Advanced Lighting Techniques   Dan Baker (Meltdown 2005)
Advanced Lighting Techniques Dan Baker (Meltdown 2005)
 
SPU-based Deferred Shading for Battlefield 3 on Playstation 3
SPU-based Deferred Shading for Battlefield 3 on Playstation 3SPU-based Deferred Shading for Battlefield 3 on Playstation 3
SPU-based Deferred Shading for Battlefield 3 on Playstation 3
 
Rendering basics
Rendering basicsRendering basics
Rendering basics
 
Penn graphics
Penn graphicsPenn graphics
Penn graphics
 
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
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
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
 
Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3Gdc2011 direct x 11 rendering in battlefield 3
Gdc2011 direct x 11 rendering in battlefield 3
 
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfPapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
 
Broadcaster Notes
Broadcaster NotesBroadcaster Notes
Broadcaster Notes
 
Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with compute
 
Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]Deferred rendering in_leadwerks_engine[1]
Deferred rendering in_leadwerks_engine[1]
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_i
 
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
 
Shader X³: Image Space - Color Grading
Shader X³: Image Space - Color GradingShader X³: Image Space - Color Grading
Shader X³: Image Space - Color Grading
 
Order Independent Transparency
Order Independent TransparencyOrder Independent Transparency
Order Independent Transparency
 
Light prepass
Light prepassLight prepass
Light prepass
 

Recently uploaded

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 

Recently uploaded (20)

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 

Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look

  • 1. Game Developers Conference 2011 Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look Colin Barré-Brisebois (speaker) Marc Bouchard
  • 2. Agenda • Prelude – Real-Time Demo • 1. Translucency in Computer Graphics • 2. Technique Details • 3. Implementation Details • Q&A Fig. 1 – Real-Time Translucency in Frostbite 2
  • 4.
  • 5.
  • 7. Translucency The quality of allowing light to pass partially and diffusely inside media. Fig. 2 – Translucency in Athena Statue (left) [BarréBrisebois11], and child’s hand (right)
  • 8. Translucency in Computer Graphics • We rely heavily on BRDFs for describing local reflections – Simple and effective for opaque objects • However, many objects in nature are (partly) translucent – Light transport also happens within the surface – BRDFs are not sufficient • BSSRDFs allow for an even better simulation – But are usually more/too expensive • In our case, we chose BSDFs (BRDF + BTDF), with some elements of BSSRDF Fig. 3 – BRDF, BTDF and BSSRDF
  • 9. The State of Translucency Real-time translucency and derivatives come in different flavors: • The more complex, but (relatively) expensive – [Chang08] Texture-space Importance Sampling – [Hable09] Texture-space Diffusion blurs, for skin / SSS – [Ki09] Shadowmap-based Translucency / SSS Fig. 5 – Texture-space Diffusion [Hable09] Fig. 4 – Texture-space Importance Sampling [Chang08]
  • 10. The State of Translucency (cont.) Real-time translucency and derivatives come in different flavors: • The simpler, but faster – [Sousa08] double-sided lighting & attenuation for foliage • We want: fast like [Sousa08], and nice / complex results like the others  Fig. 6 – Foliage Translucency from Crytek’s Crysis
  • 11. And we got... Fig. 7 – Real-Time Translucency in EA DICE’s Frostbite 2 Engine
  • 12. And we got... (cont.) Fig. 8 – Real-Time Translucency (Skin/Left, Hebe/Right) in EA DICE’s Frostbite 2 Engine
  • 14. Overview • We don’t want to rely on additional depth maps and texture-space blurs – Requires more memory (i.e. for depth maps) – Requires significant computation (i.e. for texture blurs) – The previous are still feasible, but what if we could do without... • In essence, for convincing translucency, the light traveling inside the shape: – Has to be influenced by the varying thickness of the object – Has to show some view & light-dependent diffusion/attenuation • We only really need a simple representation of inner surface diffusion – Most users will be convinced even if not fully accurate! – Also, if the effect is cheap, we are free to use it everywhere!* 
  • 15. Overview (cont.) Fig. 9 – Direct and Translucency Lighting Vectors
  • 16. Local Thickness Fig. 10 – Local Thickness on Hebe
  • 17. Computing Local Thickness • We rely on ambient occlusion for computing this info: 1. Invert the surface normals 2. Render ambient occlusion 3. Invert the colors and store in texture • Can also be stored in vertex color, if tesselation allows • Similar to [Sousa08], but streamlined for meshes of varying shapes and sizes.
  • 18. Computing Local Thickness (cont.) Fig. 11 – Local Thickness Texture for Hebe
  • 19. What About Subsurface Scattering? Even if not mathematically perfect, our technique gives an impression of SSS: • Local thickness approximates light transport inside the shape – Different color for direct and indirect light gives convicing light color subsurface transfer • View-oriented distortion and attenuation gives an organic result, breaking the uniformity Fig. 13 – Our Technique, combined with Skin Shading
  • 22. Managing the Data at Runtime At runtime, we have several parameters to manage, some per- light, some per-material: • Per-light parameters are used during the deferred light pass • Per-material parameters are stored in the g-buffer – Can also be stored in a separate buffer, if space-limited – Some parameters make more sense per-light, some per-material – This is very specific to your g-buffer setup – Might require some clever packing/unpacking • For packing more parameters on a per-material basis, instead of per-light – Using this technique with deferred shading definitely brings-the-thunder!
  • 23. Managing the Data at Runtime (cont.) half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion; half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale; half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness; outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT; fLTAmbient • Ambient value • Visible from all angles • Representing both front and back translucency that is always present • Optimally, per-material Fig. 14 – Ambient Term
  • 24. Managing the Data at Runtime (cont.) half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion; half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale; half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness; outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT; iLTPower • Power value for direct translucency • Breaks continuity, view-dependent • Can be optimized with pre-computed powers • Optimally, per-material Fig. 16 – Power (4/Left, 12/Right) Term
  • 25. Managing the Data at Runtime (cont.) half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion; half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale; half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness; outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT; fLTDistortion • Subsurface Distortion • Shifts the surface normal • Breaks continuity, view-dependent Allows for more organic, Fresnel-like • Optimally, per-material Fig. 17 – Distortion (None/Left, 0.2/Right) Term
  • 26. Managing the Data at Runtime (cont.) half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion; half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale; half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness; outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT; fLTThickness • Pre-computed Local Thickness Map • Used for both direct and indirect translucency • Attenuates the computation where surface thickness varies • Defined per-material Fig. 18 – Local Thickness
  • 27. Managing the Data at Runtime (cont.) half3
vLTLight
=
vLight
+
vNormal
*
fLTDistortion; half
fLTDot
=
pow(saturate(dot(vEye,
‐vLTLight)),
iLTPower)
*
fLTScale; half3
fLT
=
fLightAttenuation
*
(fLTDot
+
fLTAmbient)
*
fLTThickness; outColor.rgb
+=
cDiffuseAlbedo
*
cLightDiffuse
*
fLT; fLTScale • Scale value • Direct / Back translucency • View-oriented • Should be defined per-light. This makes it the central control point Fig. 15 – Scale (1/Left, 5/Right) Term
  • 28. All-Together Fig. 19 – The Final Result on Hebe
  • 29. Deferred Shading G-Buffer Setup Minimally, translucency can be stored in the g-buffer as a single greyscale value: Fig. 20 – Our G-Buffer, with greyscale Translucency Based on your game, this can be enough. The color will then only originate from the light sources (and also diffuse albedo).
  • 30. Deferred Shading G-Buffer Setup (cont.) All objects here are relying on a greyscale value for translucency  Fig. 1 – Real-Time Translucency in Frostbite 2
  • 31. Deferred Shading G-Buffer Setup (cont.) Better results will be achieved if translucency is a color (here, with some packing): Fig. 21 – Our G-Buffer, with coloured Translucency (packed/offset) This translucency color, representing our inner surface color diffusion, will be combined to the light color and the material’s diffuse albedo.
  • 32. Deferred Shading G-Buffer Setup (cont.) Green Light White Albedo Red Translucency -> # # # # # # # # # <- Blue Light # # # # # White Albedo & Translucency Fig. 22 – Real-Time Translucency in Frostbite 2
  • 33. Performance XBOX
360 PLAYSTATION
3 PC
(DX11) Full‐Screen

Coverage
 0.6
ms 1.0
ms 0.03
ms Instruc9ons
 13 17 12
 • PS3: Takes advantage of our light-tile rendering on SPUs – See Christina Coffin’s ”SPU Deferred Shading for BF3 on PS3” • DX11: Supported in our Compute Shader solution – See Johan Andersson’s “DX11 rendering in Battlefield 3” talk for more DX11-related details • PC: AMD Radeon 6970
  • 34. Caveats • Doesn’t take all concavities into account • Technique is optimal for convex hulls • Doesn’t work with morphing/animated objects – Alternative: Though camera dependent, several cases could work with a real-time thickness approximation [Oat08] – Alternative: Could also use an hybrid dynamic AO Fig. 23 – Concave Hull computation, with inverted normals
  • 35. Summary and Q&A • We presented an artist-friendly, fast and scalable real-time approximation of light transport in translucent homogenous media: – Improves games visuals by adding a new dimension, with light traveling inside shapes – Has a scalable and reasonable impact on runtime – Provides convincing results even if not mathematically perfect • This technique is also published in GPU Pro 2, released this week at GDC. Check out the book!
  • 36.
  • 37. Special Thanks • Sergei Savchenko • Johan Andersson (@repi) • Christina Coffin (@christinacoffin) • Halldor Fannar • Joakim Svärling • Stephen Hill (@self_shadow) • Frederic O’Reilly • John White • Wessam Bahnassi • Carsten Dachsbacher • Daniel Collin (@daniel_collin) • Torbjörn Malmer • Kenny Magnusson • Mohannad Al-Khatib (@psychodesigns) • Dominik Bauset • Colin Boswell (@bozz) • Sandra Jensen
  • 38. References [BarréBrisebois11] Barré-Brisebois, Colin and Bouchard, Marc.”Real-Time Approximation of Light Transport in Translucent Homogenous Media”, GPU Pro 2, Wolfgang Engel, Ed. Charles River Media, 2011. [Chang08] Chang, Chih-Wen, Lin, Wen-Chieh, Ho, Tan-Chi, Huang, Tsung-Shian and Chuang, Jung-Hong. “Real-Time Translucent Rendering Using GPU-based Texture Space Importance Sampling,” Computer Graphics Forum (Eurographics 2008), Vol. 27, No. 2, 2008, pp 517-526. [Hable09] Hable, John, Borshukov, George and Hejl, Jim. “Fast Skin Shading,” ShaderX7: Advanced Rendering Techniques, Wolfgang Engel, Ed., Charles River Media, 2009: pp. 161-173. [Ki09] Ki, Hyunwoo. “Real-time Subsurface Scattering Using Shadow Maps,” ShaderX7: Advanced Rendering Techniques, Wolfgang Engel, Ed., Charles River Media, 2009: pp. 467-478. [Oat08] Oat, Christopher and Scheuermann, Thorsten. “Computing Per-Pixel Object Thickness in a Single Render Pass,” ShaderX6: Advanced Rendering Techniques, Wolfgang Engel, Ed., Charles River Media, 2008: pp. 57-62. [Sousa08] Sousa, Tiago. “Vegetation Procedural Animation and Shading in Crysis,” GPU Gems 3, Hubert Nguyen, Ed., Addison-Wesley, 2008: pp. 373-385.