SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...JP Lee
 
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
 
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
 
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...Colin Barré-Brisebois
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
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
 
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
 
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
 
Oit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsOit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsHolger Gruen
 
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
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 
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
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunElectronic Arts / DICE
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근MinGeun Park
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCQLOC
 
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringStable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringElectronic Arts / DICE
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 

La actualidad más candente (20)

Frostbite on Mobile
Frostbite on MobileFrostbite on Mobile
Frostbite on Mobile
 
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
 
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...
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
More Performance! Five Rendering Ideas From Battlefield 3 and Need For Speed:...
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Light prepass
Light prepassLight prepass
Light prepass
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
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
 
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 ...
 
Oit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked ListsOit And Indirect Illumination Using Dx11 Linked Lists
Oit And Indirect Illumination Using Dx11 Linked Lists
 
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
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
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)
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOCCheckerboard Rendering in Dark Souls: Remastered by QLOC
Checkerboard Rendering in Dark Souls: Remastered by QLOC
 
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringStable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 

Similar a 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
 
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
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3guest11b095
 
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 a Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look (20)

DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
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)
 
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
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
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
 

Último

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

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.