SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Game Developer Conference 2011
                                The Technology Behind the
                                  DirectX 11 Unreal Engine
                                        "Samaritan" Demo

        Martin Mittring             Bryan Dudash
    Senior Graphics Architect   Developer Technology
Martin.Mittring@EpicGames.com   bdudash@nvidia.com
        Epic Games, Inc.              NVIDIA
Overview
• About
• Real-time demo



• Technical Part:
    –   Tessellation (NVIDIA)
    –   Hair
    –   Deferred + MSAA
    –   Subsurface Scattering
    –   Reflections
    –   Depth of Field
Demo Goals
• Ready for GDC 2011
• Real-time on High-end PC (off the shelf hardware)
• Engine improvements:
  – Add Direct3D 11 support in Unreal Engine 3
  – Implement features needed for next-gen quality
• Research:
  – New hardware features like Tessellation
  – Advanced render techniques
  – Content creation / workflow

                                                     3
Storyboard to define the scope




            => Near shots, faces, hair, harsh lighting, rain
                                                           4
Derived Technology needs
Direct3D 11
• Tessellation (NVIDIA)
Filmic look
• Quality
Harsh lighting, night scene
• Dynamic Shadows
Rain
• Reflections
• Particles
• Animated water surface
• Wet material shading
                                    5
Derived Technology needs
Close ups
• Depth of Field
• Facial expressions

Short scalp hair and beard
• Hair
• Simple animation
• Rather simple shading

Coat
  ”Realistic and Interactive Clothing in Epic
  Games Samaritan Demo Using NVIDIA
  APEX” Thursday 4:30- 5:30 Room 110,
  North Hall
                                                6
Video / Real-time demo
Rendering
  Tessellation
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          8
Rendering
  Tessellation
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          9
Short Hair / Beard
• Considered many methods
  [Tariq08] [Neulander98] [Assarson09] [Nguyen06] [Neulander01]

• Ended up with camera aligned triangle strips
  •   Reuse of existing code (e.g. mesh skinning)
  •   Reuse of existing art pipeline
  •   Move Vertices in the Vertex Shader (VS)




      VS “code” to move the vertices         Before VS      After VS
                                                                       10
Hair creation
• Generate very thin triangle strips in 3ds Max (Plug-in “Hair Farm”)
• ~5000 splines -> ~16000 triangles
• Texture contains 36 individual hairs




               Hair and head mesh in 3ds Max         Texture
                                                                  11
Rendering hair
• How to shade the pixel?
  •   Alpha Test / clip -> Problems with Aliasing
  •   Alpha Blend -> Problems with Sorting, fogging, Depth of Field
  •   Alpha To Coverage (A2C) -> Problems with many layers
  •   Order Independent Transparency [Gruen10] -> Too many layers?

• Our choice:
  •   Render to MSAA buffer
      -> Depth for DOF/Fog/Shadow receiving
  •   Stick to binary occlusion (per MSAA sample)
  •   SSAA (Alpha Test per MSAA sample)
      -> Anti-aliasing for individual hairs

                                                                      12
SSAA




4x MSAA                      4x MSAA
per pixel clip (AlphaTest)   per sample clip (SSAA)

                                                      13 /35
Rendering
  Tessellation
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          14
Deferred Rendering [Hargreaves04]
• UnrealEngine 3 is primarily a forward renderer
• Geometry detail * MSAA * Complex shaders * Many lights
  -> too slow in forward, too many shader permutations
• Added more GBuffer properties
   – Albedo + Specular color, Specular Power
   – Spec + Diffuse normal (Wet material is 2 layered)
   – Subsurface scattering
• Some forward rendering remains (skin, hair and translucency)
Anti-Aliasing
• 4x MSAA for forward rendering
• Deferred rendering requires special attention
• Per fragment shading only where needed:
   1.   Clear stencil, Set stencil write
   2.   Pass 1:
         if heuristic(depth/normal) do discard
         otherwise shade per pixel
   3.   Activate stencil test
                                      MSAA per pixel        MSAA per fragment
   4.   Pass 2:
         shade per fragment




                                       Deferred shadows (notice the bright halo)   16
Rendering
  Tessellation
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          17
Human skin Subsurface Scattering (SSS)
•   Important effect to render believable faces in dynamic lighting
•   Many skin layers contribute to the final look
•   Human eye is trained to recognize details in faces
•   Human skin is a special case that allows approximations




     No SSS              SSS only            With SSS
                                                                 18
Screen Space Subsurface Scattering
               (SSSSS)
• Idea is to gather lighting contributions in screen space
  [Mikkelsen10] [Jimenez09]
• Gather 16 samples in a disc, randomize per pixel and in time
• Artist can define SSS color and world space scatter radius
• Takes Depth and Normal input into account
• Hides shadow sampling artifacts
• Doesn’t work with ear




                                16 samples
                16 samples      per pixel randomized
                                                            19
Rendering
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          20
Image Based Lighting (IBL)
• To compute incoming light at given position and direction
• How it works?
   – Function that maps position and direction to an image point (5D->2D)
   – Image with HDR content representing all incoming light
• Complex lighting
• Blurry reflections
• Diffuse lighting




                                                                       21
Cubemaps
                •   only far reflections




                Planar reflection
                •   fixed camera position
                •   fixed reflection plane
                •   good for dynamic ground reflection
… [Buerger07]
                “Billboard reflections”
                •   Many textured quads (billboards)
                •   Placement like any other static object
                •   Can move/rotate/scale dynamically
                •   No limitations on the reflecting surface


                                                          22
One Billboard reflection
• Each billboard is textured (Color and Alpha for Opacity)
• Ray / quad intersection is simple math
    – Ray start position: surface point we want to shade
    – Ray direction: reflected eye vector




Notice the reflection on the right

                                                           23
Glossy reflections
• Isotropic reflections




• Anisotropic “lengthy” reflections




                                      24
Many Billboard reflections
• Many Billboard can occlude each other
• Iterate through all billboards
• Store n (~3) nearest hits (z, color, opacity)
• Composite n layers with alpha blending
• TextureArrays to index a texture in the shader
   -> Same size and format




                                                   25
Reflection Shadows

                Without shadows                       With shadows




Notice that without shadows light leaks through the building


                                                               26
Static Reflection Shadows
• Ray-casting a distance field
  –   Jump over empty areas
  –   Stored in a volume texture
  –   Distance also allows arbitrary blurred shadows
  –   Half resolution (bilateral up-sampling) [Shopf09] [Tomasi98]

  Shadows visualized (brightened sky)              Distance Field visualized




                                                                               27
Dynamic Reflection Shadows
• Crucial for grounding objects
• Method assumes single plane
  reflection (ground)
• We generate an image from the
  reflected eye position (similar to
  planar reflections), storing depth     Without
• Final mask is generated by rendering
  quads for each occluding Texel
• The quad size is computed from the
  stored depth


                                         With
                                                   28
Point Light Reflections
• Phong or Blinn-Phong specular wasn’t giving the look we wanted
• Anyone have a “wet street BRDF” ?
• We added a new specular type
   –   More “lengthy”
   –   Shadowed like Billboard reflections
   –   Energy preserving [CodeItNow09]
   –   Distance attenuated but not distance bound

        Photo reference                Real-time (without rain drops)




                                                                        29
Rendering
  Tessellation
  Hair
  Deferred + MSAA
  Subsurface Scattering
  Reflections
  Depth of Field




                          30
What is Bokeh?
• Bokeh is the name of the shape that can be seen in photos
  or movies when objects are out of focus.
• Contributes to the filmic look
• Shape depends on the camera and lens
• Many Depth of Field algorithms blur objects out of focus
  without the desired shape. [Lefohn10]

   Photo Reference           Different Bokeh shapes (real-time)




                                                                  31
Bokeh Depth of Field
     Render a Bokeh textured quad for each pixel
     [LostPlanetD3D10][3DMark]
•     Quad size and opacity depends on the Circle of Confusion (CoC) radius
•     CoC radius is computed from the pixel depth
•     Accumulate pixel color and opacity weighted by the Bokeh texture
•     Splitting the content into layers avoids occlusion artifacts




    Foreground (blurred)   In Focus (Full Resolution)   Background (blurred)
                                                                           32
Bokeh Depth of Field Rendering
Scatter pass (Geometry Shader):
 • Setup viewports to render to background/foreground layers
 • For each pixel:
       – Compute the Circle of Confusion (CoC) radius
       – Compute viewport (foreground / backgound)
       – Setup a quad with the Bokeh texture
                                                               1
         (RGB: Bokeh*scene color, A: Bokeh)
       – Render quad with additive blending                    2
Resolve pass:
                                                        Render Target with
   • Reconstruct the layer color (RGB divided by A)       two viewports
   • Blend layers by the accumulated occlusion
     (background, in focus, foreground)
                                                                       33
Bokeh Depth of Field Optimizations
• Vertex / Triangle count:
   •   Input image is the half resolution scene (Color + Depth)
• Fill rate:
   – Input image is the half resolution scene (Color + Depth)
   – Output image is half resolution and recombined later with full resolution
   – For each 2x2 input block:
     depending on heuristic (CoC radius, color and depth difference),
     spawn 1 or 4 quads (GS)
                                          Red: 4 quads
                                          Green: 1 quad




                                                                          34
Bokeh Depth of Field: Translucency
• Problem: Fog / particles / smoke / lens flares
• Make some effects not affected by Depth of Field
   – Artists can specify which material
   – Composed after/without Depth of Field
• New Shader graph node
   – To give artist control (fade out or blend to blurry version)




                                                                    35
References 1/2
•   [Buerger07] GPU Rendering of Secondary Effects
    http://wwwcg.in.tum.de/Research/data/Publications/vmv07.pdf
•   [Tariq08] Real-Time Hair Rendering on the GPU
    http://developer.nvidia.com/object/siggraph-2008-hair.html
•   [Lauritzen10] Deferred Rendering for Current and Future Rendering Pipelines
    http://visual-computing.intel-research.net/art/publications/deferred_rendering/
•   [CodeItNow09] Energy Conservation In Games
    http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games
•   [Lefohn10] Advanced Real-Time Depth of Field Techniques
    https://graphics.stanford.edu/wikis/cs448s-
    10/FrontPage?action=AttachFile&do=get&target=CS448s-10-10-depthOfFieldForWeb.pdf
•   [Jimenez09] Screen-Space Perceptual Rendering of Human Skin
    http://giga.cps.unizar.es/~diegog/ficheros/pdf_papers/TAP_Jimenez_LR.pdf
•   [Shopf09] Mixed Resolution Rendering
•   http://developer.amd.com/gpu_assets/ShopfMixedResolutionRendering.pdf
•   [Tomasi98] Bilateral Filtering for Gray and Color Images
•   http://www.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf
•   [Hargreaves] Deferred Shading
•   http://read.pudn.com/downloads160/sourcecode/game/724029/DeferredShading.pdf
                                                                                       36 /35
References 2/2
•   [Gruen10] OIT and Indirect Illumination using DX11 Linked Lists
    http://developer.amd.com/gpu_assets/OIT%20and%20Indirect%20Illumination%20using%20DX11
    %20Linked%20Lists_forweb.ppsx
•   Robust Multiple Specular Reflections and Refractions
    http://http.developer.nvidia.com/GPUGems3/gpugems3_ch17.html
•   [Neulander01] Hair Rendering (Ivan Neulander, Rhythm & Hues Studios)
    http://www.rhythm.com/~ivan/hairRender.html
•   [Nguyen06] GPU Gems2: Chapter 23. Hair Animation and Rendering in the Nalu Demo
    http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter23.html
•   [Assarson09] Siggraph 2009: GPU Primitives-Case Study: Hair Rendering
    http://s09.idav.ucdavis.edu/talks/07-Ulf-GPU-Prims-and-Hair-course-slides.pdf
•   [Neulander98] Rendering Generalized Cylinders with Paintstrokes
    http://www.rhythm.com/~ivan/pdfs/gi98.pdf
•   [LostPlanetD3D10] Lost Planet D3D10 Parallel Rendering
    http://meshula.net/wordpress/?p=124
•   [3DMark] 3DMark11 Whitepaper
    http://www.3dmark.com/wp-content/uploads/2010/12/3DMark11_Whitepaper.pdf
•   [Buerger07] GPU Rendering of Secondary Effects
    http://wwwcg.in.tum.de/Research/data/Publications/vmv07.pdf
•   [Mikkelsen10] Cross Bilateral Filters for Skin Shading
     http://jbit.net/~sparky/subsurf/cbf_skin.pdf

                                                                                         37
Thanks
• Our partner: NVIDIA
• NVIDIA:
     Johnny Costello, Bryan Dudash, Jon Jansen, Ignacio Llamas,
     John McDonald, David Schoemehl
• Entire Epic team
• Everyone that contributed to the demo
• Epic:
     Daniel Wright, Andrew Scheidecker, Jordan Walker



                                                                  38
Questions?
 • Is this a game?
     No. This is just a technology demo.
 • Is that in UnrealEngine 3?
     These features are available now to UE3 licensees
     and will be in the March UDK.




”Realistic and Interactive Clothing in Epic Games Samaritan Demo
Using NVIDIA APEX” Thursday 4:30- 5:30 Room 110, North Hall
NVIDIA @ GDC 2011

CAN’T GET ENOUGH? MORE WAYS TO LEARN:
  NVIDIA GAME TECHNOLOGY THEATER
  Fri, March 4th @ NVIDIA Booth
  Open to all attendees. Featuring talks and demos from leading
  developers at game studios and more, covering a wide range of topics
  on the latest in GPU game technology.

  MORE DEVELOPER TOOLS & RESOURCES
  Available online 24/7 @ developer.nvidia.com
                                                                   NVIDIA Booth
                                                                  South Hall #1802
                                                             Details on schedule and to
                                                          download copies of presentations
                                                                         visit
                                                              www.nvidia.com/gdc2011
Bonus Slide
• Barely documented but very useful:
   – HLSL Semantic SV_SampleIndex
     Used as input causes the shader to run per MSAA sample.
     Can be used in texture.Load(float2(u,v),SampleIndex)
     or EvaluateAttributeAtSample(Interpolator,SampleIndex)
   – HLSL Semantic SV_Coverage
     uint, MSAA bit mask, PS input and output

• How to index a texture in the shader?
   –   2D Texture Atlas -> Size limits, Border and Precision issues
   –   Sample array (D3D9/10/11) -> Only for constant index / unroll able loops
   –   Dynamic branching -> Slow
   –   Texture array (D3D10/11) -> Same size and format, CPU update performance?

• Energy preserving Specular images (material varies Glossiness):




   Specular tweaked for glossy areas   Specular tweaked for dull areas   Energy preserving
                                                                                             42

Más contenido relacionado

La actualidad más candente

Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John HableNaughty Dog
 
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発Unity Technologies Japan K.K.
 
565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu ChaoFrank Chao
 
Real-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow VolumesReal-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow VolumesMark Kilgard
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2ozlael ozlael
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Johan Andersson
 
The Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneThe Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneNaughty Dog
 
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
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 
Brochure v-ray-rhino
Brochure v-ray-rhinoBrochure v-ray-rhino
Brochure v-ray-rhinoAlex Santos
 
Deferred shading
Deferred shadingDeferred shading
Deferred shadingFrank Chao
 
Angel cunado_The Terrain Of KUF2
Angel cunado_The Terrain Of KUF2Angel cunado_The Terrain Of KUF2
Angel cunado_The Terrain Of KUF2drandom
 

La actualidad más candente (18)

Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発
 
565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao565 Alpha Chun-Fu Chao
565 Alpha Chun-Fu Chao
 
Real-time lightmap baking
Real-time lightmap bakingReal-time lightmap baking
Real-time lightmap baking
 
3 D texturing
 3 D texturing 3 D texturing
3 D texturing
 
Light prepass
Light prepassLight prepass
Light prepass
 
Real-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow VolumesReal-time Shadowing Techniques: Shadow Volumes
Real-time Shadowing Techniques: Shadow Volumes
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
 
The Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneThe Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s Fortune
 
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
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
Brochure v-ray-rhino
Brochure v-ray-rhinoBrochure v-ray-rhino
Brochure v-ray-rhino
 
Deferred shading
Deferred shadingDeferred shading
Deferred shading
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
Angel cunado_The Terrain Of KUF2
Angel cunado_The Terrain Of KUF2Angel cunado_The Terrain Of KUF2
Angel cunado_The Terrain Of KUF2
 

Similar a Epic_GDC2011_Samaritan

NVIDIA effects GDC09
NVIDIA effects GDC09NVIDIA effects GDC09
NVIDIA effects GDC09IGDA_London
 
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei BoonJessica Tams
 
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
 
Develop2012 deferred sanchez_stachowiak
Develop2012 deferred sanchez_stachowiakDevelop2012 deferred sanchez_stachowiak
Develop2012 deferred sanchez_stachowiakMatt Filer
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonJean-Philippe Doiron
 
Massive Point Light Soft Shadows
Massive Point Light Soft ShadowsMassive Point Light Soft Shadows
Massive Point Light Soft ShadowsWolfgang Engel
 
Rendering basics
Rendering basicsRendering basics
Rendering basicsicedmaster
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unity Technologies
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemBo Li
 
CS 354 Shadows (cont'd) and Scene Graphs
CS 354 Shadows (cont'd) and Scene GraphsCS 354 Shadows (cont'd) and Scene Graphs
CS 354 Shadows (cont'd) and Scene GraphsMark Kilgard
 
Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Jean-Philippe Doiron
 
Hill Stephen Rendering Tools Splinter Cell Conviction
Hill Stephen Rendering Tools Splinter Cell ConvictionHill Stephen Rendering Tools Splinter Cell Conviction
Hill Stephen Rendering Tools Splinter Cell Convictionozlael ozlael
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3guest11b095
 
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説UnityTechnologiesJapan002
 
Star Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processingStar Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processingumsl snfrzb
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overviewslantsixgames
 
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingPractical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingMark Kilgard
 

Similar a Epic_GDC2011_Samaritan (20)

NVIDIA effects GDC09
NVIDIA effects GDC09NVIDIA effects GDC09
NVIDIA effects GDC09
 
CS 354 Shadows
CS 354 ShadowsCS 354 Shadows
CS 354 Shadows
 
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon4,000 Adams at 90 Frames Per Second | Yi Fei Boon
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Develop2012 deferred sanchez_stachowiak
Develop2012 deferred sanchez_stachowiakDevelop2012 deferred sanchez_stachowiak
Develop2012 deferred sanchez_stachowiak
 
Making a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie TycoonMaking a game with Molehill: Zombie Tycoon
Making a game with Molehill: Zombie Tycoon
 
Massive Point Light Soft Shadows
Massive Point Light Soft ShadowsMassive Point Light Soft Shadows
Massive Point Light Soft Shadows
 
Felwyrld Tech
Felwyrld TechFelwyrld Tech
Felwyrld Tech
 
Rendering basics
Rendering basicsRendering basics
Rendering basics
 
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering System
 
CS 354 Shadows (cont'd) and Scene Graphs
CS 354 Shadows (cont'd) and Scene GraphsCS 354 Shadows (cont'd) and Scene Graphs
CS 354 Shadows (cont'd) and Scene Graphs
 
Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill) Developing Next-Generation Games with Stage3D (Molehill)
Developing Next-Generation Games with Stage3D (Molehill)
 
Hill Stephen Rendering Tools Splinter Cell Conviction
Hill Stephen Rendering Tools Splinter Cell ConvictionHill Stephen Rendering Tools Splinter Cell Conviction
Hill Stephen Rendering Tools Splinter Cell Conviction
 
A Bit More Deferred Cry Engine3
A Bit More Deferred   Cry Engine3A Bit More Deferred   Cry Engine3
A Bit More Deferred Cry Engine3
 
Reyes
ReyesReyes
Reyes
 
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説
【Unite Tokyo 2019】Unityでレイトレーシングしよう!レイトレーシング実装と最適化の解説
 
Star Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processingStar Ocean 4 - Flexible Shader Managment and Post-processing
Star Ocean 4 - Flexible Shader Managment and Post-processing
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overview
 
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated RenderingPractical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering
 

Más de MinGeun Park

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdfMinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석MinGeun Park
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이MinGeun Park
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐MinGeun Park
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBRMinGeun Park
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OTMinGeun Park
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.MinGeun Park
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correctionMinGeun Park
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법MinGeun Park
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 MinGeun Park
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현MinGeun Park
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기MinGeun Park
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기MinGeun Park
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개MinGeun Park
 

Más de MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 

Epic_GDC2011_Samaritan

  • 1. Game Developer Conference 2011 The Technology Behind the DirectX 11 Unreal Engine "Samaritan" Demo Martin Mittring Bryan Dudash Senior Graphics Architect Developer Technology Martin.Mittring@EpicGames.com bdudash@nvidia.com Epic Games, Inc. NVIDIA
  • 2. Overview • About • Real-time demo • Technical Part: – Tessellation (NVIDIA) – Hair – Deferred + MSAA – Subsurface Scattering – Reflections – Depth of Field
  • 3. Demo Goals • Ready for GDC 2011 • Real-time on High-end PC (off the shelf hardware) • Engine improvements: – Add Direct3D 11 support in Unreal Engine 3 – Implement features needed for next-gen quality • Research: – New hardware features like Tessellation – Advanced render techniques – Content creation / workflow 3
  • 4. Storyboard to define the scope => Near shots, faces, hair, harsh lighting, rain 4
  • 5. Derived Technology needs Direct3D 11 • Tessellation (NVIDIA) Filmic look • Quality Harsh lighting, night scene • Dynamic Shadows Rain • Reflections • Particles • Animated water surface • Wet material shading 5
  • 6. Derived Technology needs Close ups • Depth of Field • Facial expressions Short scalp hair and beard • Hair • Simple animation • Rather simple shading Coat ”Realistic and Interactive Clothing in Epic Games Samaritan Demo Using NVIDIA APEX” Thursday 4:30- 5:30 Room 110, North Hall 6
  • 8. Rendering Tessellation Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 8
  • 9. Rendering Tessellation Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 9
  • 10. Short Hair / Beard • Considered many methods [Tariq08] [Neulander98] [Assarson09] [Nguyen06] [Neulander01] • Ended up with camera aligned triangle strips • Reuse of existing code (e.g. mesh skinning) • Reuse of existing art pipeline • Move Vertices in the Vertex Shader (VS) VS “code” to move the vertices Before VS After VS 10
  • 11. Hair creation • Generate very thin triangle strips in 3ds Max (Plug-in “Hair Farm”) • ~5000 splines -> ~16000 triangles • Texture contains 36 individual hairs Hair and head mesh in 3ds Max Texture 11
  • 12. Rendering hair • How to shade the pixel? • Alpha Test / clip -> Problems with Aliasing • Alpha Blend -> Problems with Sorting, fogging, Depth of Field • Alpha To Coverage (A2C) -> Problems with many layers • Order Independent Transparency [Gruen10] -> Too many layers? • Our choice: • Render to MSAA buffer -> Depth for DOF/Fog/Shadow receiving • Stick to binary occlusion (per MSAA sample) • SSAA (Alpha Test per MSAA sample) -> Anti-aliasing for individual hairs 12
  • 13. SSAA 4x MSAA 4x MSAA per pixel clip (AlphaTest) per sample clip (SSAA) 13 /35
  • 14. Rendering Tessellation Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 14
  • 15. Deferred Rendering [Hargreaves04] • UnrealEngine 3 is primarily a forward renderer • Geometry detail * MSAA * Complex shaders * Many lights -> too slow in forward, too many shader permutations • Added more GBuffer properties – Albedo + Specular color, Specular Power – Spec + Diffuse normal (Wet material is 2 layered) – Subsurface scattering • Some forward rendering remains (skin, hair and translucency)
  • 16. Anti-Aliasing • 4x MSAA for forward rendering • Deferred rendering requires special attention • Per fragment shading only where needed: 1. Clear stencil, Set stencil write 2. Pass 1: if heuristic(depth/normal) do discard otherwise shade per pixel 3. Activate stencil test MSAA per pixel MSAA per fragment 4. Pass 2: shade per fragment Deferred shadows (notice the bright halo) 16
  • 17. Rendering Tessellation Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 17
  • 18. Human skin Subsurface Scattering (SSS) • Important effect to render believable faces in dynamic lighting • Many skin layers contribute to the final look • Human eye is trained to recognize details in faces • Human skin is a special case that allows approximations No SSS SSS only With SSS 18
  • 19. Screen Space Subsurface Scattering (SSSSS) • Idea is to gather lighting contributions in screen space [Mikkelsen10] [Jimenez09] • Gather 16 samples in a disc, randomize per pixel and in time • Artist can define SSS color and world space scatter radius • Takes Depth and Normal input into account • Hides shadow sampling artifacts • Doesn’t work with ear 16 samples 16 samples per pixel randomized 19
  • 20. Rendering Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 20
  • 21. Image Based Lighting (IBL) • To compute incoming light at given position and direction • How it works? – Function that maps position and direction to an image point (5D->2D) – Image with HDR content representing all incoming light • Complex lighting • Blurry reflections • Diffuse lighting 21
  • 22. Cubemaps • only far reflections Planar reflection • fixed camera position • fixed reflection plane • good for dynamic ground reflection … [Buerger07] “Billboard reflections” • Many textured quads (billboards) • Placement like any other static object • Can move/rotate/scale dynamically • No limitations on the reflecting surface 22
  • 23. One Billboard reflection • Each billboard is textured (Color and Alpha for Opacity) • Ray / quad intersection is simple math – Ray start position: surface point we want to shade – Ray direction: reflected eye vector Notice the reflection on the right 23
  • 24. Glossy reflections • Isotropic reflections • Anisotropic “lengthy” reflections 24
  • 25. Many Billboard reflections • Many Billboard can occlude each other • Iterate through all billboards • Store n (~3) nearest hits (z, color, opacity) • Composite n layers with alpha blending • TextureArrays to index a texture in the shader -> Same size and format 25
  • 26. Reflection Shadows Without shadows With shadows Notice that without shadows light leaks through the building 26
  • 27. Static Reflection Shadows • Ray-casting a distance field – Jump over empty areas – Stored in a volume texture – Distance also allows arbitrary blurred shadows – Half resolution (bilateral up-sampling) [Shopf09] [Tomasi98] Shadows visualized (brightened sky) Distance Field visualized 27
  • 28. Dynamic Reflection Shadows • Crucial for grounding objects • Method assumes single plane reflection (ground) • We generate an image from the reflected eye position (similar to planar reflections), storing depth Without • Final mask is generated by rendering quads for each occluding Texel • The quad size is computed from the stored depth With 28
  • 29. Point Light Reflections • Phong or Blinn-Phong specular wasn’t giving the look we wanted • Anyone have a “wet street BRDF” ? • We added a new specular type – More “lengthy” – Shadowed like Billboard reflections – Energy preserving [CodeItNow09] – Distance attenuated but not distance bound Photo reference Real-time (without rain drops) 29
  • 30. Rendering Tessellation Hair Deferred + MSAA Subsurface Scattering Reflections Depth of Field 30
  • 31. What is Bokeh? • Bokeh is the name of the shape that can be seen in photos or movies when objects are out of focus. • Contributes to the filmic look • Shape depends on the camera and lens • Many Depth of Field algorithms blur objects out of focus without the desired shape. [Lefohn10] Photo Reference Different Bokeh shapes (real-time) 31
  • 32. Bokeh Depth of Field Render a Bokeh textured quad for each pixel [LostPlanetD3D10][3DMark] • Quad size and opacity depends on the Circle of Confusion (CoC) radius • CoC radius is computed from the pixel depth • Accumulate pixel color and opacity weighted by the Bokeh texture • Splitting the content into layers avoids occlusion artifacts Foreground (blurred) In Focus (Full Resolution) Background (blurred) 32
  • 33. Bokeh Depth of Field Rendering Scatter pass (Geometry Shader): • Setup viewports to render to background/foreground layers • For each pixel: – Compute the Circle of Confusion (CoC) radius – Compute viewport (foreground / backgound) – Setup a quad with the Bokeh texture 1 (RGB: Bokeh*scene color, A: Bokeh) – Render quad with additive blending 2 Resolve pass: Render Target with • Reconstruct the layer color (RGB divided by A) two viewports • Blend layers by the accumulated occlusion (background, in focus, foreground) 33
  • 34. Bokeh Depth of Field Optimizations • Vertex / Triangle count: • Input image is the half resolution scene (Color + Depth) • Fill rate: – Input image is the half resolution scene (Color + Depth) – Output image is half resolution and recombined later with full resolution – For each 2x2 input block: depending on heuristic (CoC radius, color and depth difference), spawn 1 or 4 quads (GS) Red: 4 quads Green: 1 quad 34
  • 35. Bokeh Depth of Field: Translucency • Problem: Fog / particles / smoke / lens flares • Make some effects not affected by Depth of Field – Artists can specify which material – Composed after/without Depth of Field • New Shader graph node – To give artist control (fade out or blend to blurry version) 35
  • 36. References 1/2 • [Buerger07] GPU Rendering of Secondary Effects http://wwwcg.in.tum.de/Research/data/Publications/vmv07.pdf • [Tariq08] Real-Time Hair Rendering on the GPU http://developer.nvidia.com/object/siggraph-2008-hair.html • [Lauritzen10] Deferred Rendering for Current and Future Rendering Pipelines http://visual-computing.intel-research.net/art/publications/deferred_rendering/ • [CodeItNow09] Energy Conservation In Games http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games • [Lefohn10] Advanced Real-Time Depth of Field Techniques https://graphics.stanford.edu/wikis/cs448s- 10/FrontPage?action=AttachFile&do=get&target=CS448s-10-10-depthOfFieldForWeb.pdf • [Jimenez09] Screen-Space Perceptual Rendering of Human Skin http://giga.cps.unizar.es/~diegog/ficheros/pdf_papers/TAP_Jimenez_LR.pdf • [Shopf09] Mixed Resolution Rendering • http://developer.amd.com/gpu_assets/ShopfMixedResolutionRendering.pdf • [Tomasi98] Bilateral Filtering for Gray and Color Images • http://www.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf • [Hargreaves] Deferred Shading • http://read.pudn.com/downloads160/sourcecode/game/724029/DeferredShading.pdf 36 /35
  • 37. References 2/2 • [Gruen10] OIT and Indirect Illumination using DX11 Linked Lists http://developer.amd.com/gpu_assets/OIT%20and%20Indirect%20Illumination%20using%20DX11 %20Linked%20Lists_forweb.ppsx • Robust Multiple Specular Reflections and Refractions http://http.developer.nvidia.com/GPUGems3/gpugems3_ch17.html • [Neulander01] Hair Rendering (Ivan Neulander, Rhythm & Hues Studios) http://www.rhythm.com/~ivan/hairRender.html • [Nguyen06] GPU Gems2: Chapter 23. Hair Animation and Rendering in the Nalu Demo http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter23.html • [Assarson09] Siggraph 2009: GPU Primitives-Case Study: Hair Rendering http://s09.idav.ucdavis.edu/talks/07-Ulf-GPU-Prims-and-Hair-course-slides.pdf • [Neulander98] Rendering Generalized Cylinders with Paintstrokes http://www.rhythm.com/~ivan/pdfs/gi98.pdf • [LostPlanetD3D10] Lost Planet D3D10 Parallel Rendering http://meshula.net/wordpress/?p=124 • [3DMark] 3DMark11 Whitepaper http://www.3dmark.com/wp-content/uploads/2010/12/3DMark11_Whitepaper.pdf • [Buerger07] GPU Rendering of Secondary Effects http://wwwcg.in.tum.de/Research/data/Publications/vmv07.pdf • [Mikkelsen10] Cross Bilateral Filters for Skin Shading http://jbit.net/~sparky/subsurf/cbf_skin.pdf 37
  • 38. Thanks • Our partner: NVIDIA • NVIDIA: Johnny Costello, Bryan Dudash, Jon Jansen, Ignacio Llamas, John McDonald, David Schoemehl • Entire Epic team • Everyone that contributed to the demo • Epic: Daniel Wright, Andrew Scheidecker, Jordan Walker 38
  • 39.
  • 40. Questions? • Is this a game? No. This is just a technology demo. • Is that in UnrealEngine 3? These features are available now to UE3 licensees and will be in the March UDK. ”Realistic and Interactive Clothing in Epic Games Samaritan Demo Using NVIDIA APEX” Thursday 4:30- 5:30 Room 110, North Hall
  • 41. NVIDIA @ GDC 2011 CAN’T GET ENOUGH? MORE WAYS TO LEARN: NVIDIA GAME TECHNOLOGY THEATER Fri, March 4th @ NVIDIA Booth Open to all attendees. Featuring talks and demos from leading developers at game studios and more, covering a wide range of topics on the latest in GPU game technology. MORE DEVELOPER TOOLS & RESOURCES Available online 24/7 @ developer.nvidia.com NVIDIA Booth South Hall #1802 Details on schedule and to download copies of presentations visit www.nvidia.com/gdc2011
  • 42. Bonus Slide • Barely documented but very useful: – HLSL Semantic SV_SampleIndex Used as input causes the shader to run per MSAA sample. Can be used in texture.Load(float2(u,v),SampleIndex) or EvaluateAttributeAtSample(Interpolator,SampleIndex) – HLSL Semantic SV_Coverage uint, MSAA bit mask, PS input and output • How to index a texture in the shader? – 2D Texture Atlas -> Size limits, Border and Precision issues – Sample array (D3D9/10/11) -> Only for constant index / unroll able loops – Dynamic branching -> Slow – Texture array (D3D10/11) -> Same size and format, CPU update performance? • Energy preserving Specular images (material varies Glossiness): Specular tweaked for glossy areas Specular tweaked for dull areas Energy preserving 42