SlideShare a Scribd company logo
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
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look
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!
Colin Barre-Brisebois - GDC 2011 - Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look
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

Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
Pope Kim
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
Tiago Sousa
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
guest11b095
 
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
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
Electronic Arts / DICE
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
changehee 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
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
Codemotion
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Electronic Arts / DICE
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
MoonLightMS
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
Michele Giacalone
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
Tiago Sousa
 
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
Graham Wihlidal
 
The Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
Electronic Arts / DICE
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-rendering
mistercteam
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
Tiago Sousa
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
Electronic Arts / DICE
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
ozlael ozlael
 
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
Electronic 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
 

What's hot (20)

Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
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)
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
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...
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
 
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in FrostbitePhysically Based Sky, Atmosphere and Cloud Rendering in Frostbite
Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
Screen Space Reflections in The Surge
Screen Space Reflections in The SurgeScreen Space Reflections in The Surge
Screen Space Reflections in The Surge
 
Secrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics TechnologySecrets of CryENGINE 3 Graphics Technology
Secrets of CryENGINE 3 Graphics Technology
 
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 Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's EdgeThe Unique Lighting of Mirror's Edge
The Unique Lighting of Mirror's Edge
 
Advancements in-tiled-rendering
Advancements in-tiled-renderingAdvancements in-tiled-rendering
Advancements in-tiled-rendering
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingCEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time Raytracing
 
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:...
 

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 Origins
Colin 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 3
Slide_N
 
Rendering basics
Rendering basicsRendering basics
Rendering basics
icedmaster
 
Penn graphics
Penn graphicsPenn graphics
Penn graphics
floored
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
Naughty Dog
 
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
 
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
Steven 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.ppsx
MannyK4
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
Wolfgang Engel
 
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
drandom
 
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
Adam Hill
 
Broadcaster Notes
Broadcaster NotesBroadcaster Notes
Broadcaster Notes
Murat BAYKAL
 
Optimizing the graphics pipeline with compute
Optimizing the graphics pipeline with computeOptimizing the graphics pipeline with compute
Optimizing the graphics pipeline with compute
WuBinbo
 
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®3
Slide_N
 
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
Slide_N
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_i
ankit_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 3
Electronic Arts / DICE
 
Shader X³: Image Space - Color Grading
Shader X³: Image Space - Color GradingShader X³: Image Space - Color Grading
Shader X³: Image Space - Color Grading
Ronny Burkersroda
 

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
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
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)
 
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
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
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
 
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
 

Recently uploaded

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
The Evolution of Remote Server Management
The Evolution of Remote Server ManagementThe Evolution of Remote Server Management
The Evolution of Remote Server Management
Bert Blevins
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...
chetankumar9855
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
The Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdfThe Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdf
paysquare consultancy
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 

Recently uploaded (20)

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
The Evolution of Remote Server Management
The Evolution of Remote Server ManagementThe Evolution of Remote Server Management
The Evolution of Remote Server Management
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
The Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdfThe Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdf
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 

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
  • 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!
  • 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.