DirectX 11 Rendering &
NVIDIA GameWorks in Batman: Arkham Origins
Colin Barré-Brisebois (Lead Rendering Programmer)
AGENDA
PREFACE
 Motivations
PART 1–DEFORMABLE SNOW
Excerpts from GDC 2014
 Novel technique for
surfaces covered with fal...
[Barré-Brisebois 2014]
[Barré-Brisebois 2014]
PART 1
DEFORMABLE SNOW RENDERING
Deformable Snow Surfaces
ENHANCE THE WORLD WITH
DYNAMICS OF DEFORMABLE SNOW
 THREE REQUIREMENTS:
1. Iconic visuals of def...
Iconic & Organic Deformable Snow
From Google Images - http://bit.ly/M7T9kV (footsteps in snow, left) and http://bit.ly/M7T...
Previous Work?
[ST-AMOUR 2013] (ASSASSIN’S CREED 3)
[EDWARDS 2012] (JOURNEY)
 RAYCAST ON A TERRAIN / MODIFY TERRAIN MESH....
Our Approach (1/)
 GENERATE DISPLACEMENT HEIGHTMAPS AT RUNTIME
 Snow deformation is a semi-low frequency detail effect
...
Our Approach (2/)
 GOTHAM HAS MANY ROOFTOPS AND STREETS
 Dynamically alloc/dealloc heightmaps based on size, player/AIs
...
Feet
Cape
[Barré-Brisebois 2014]
Feet
Cape
[Barré-Brisebois 2014]
 RENDER SNOW-AFFECTING OBJECTS
LOOKING FROM UNDER THE SURFACE
USING AN ANKLE-HIGH ORTHOGONAL
FRUSTUM
1. Clear to black
2....
Ankle-high Orthogonal Frustum
[Barré-Brisebois 2014]
[Barré-Brisebois 2014]
[Barré-Brisebois 2014]
[Barré-Brisebois 2014]
Video!
Update Loop
FOR EVERY ACTIVE* SNOW SURFACE
1. Figure out if surface-affecting object is on the surface
 We use a quad tre...
 STAGE 1 – GET RESULTS & SMALL BLUR
 4-tap bilinear Poisson
 STAGE 2 – ADD TO EXISTING HEIGHTMAP
 During this stage, y...
Stage 3 - Shading (1/)
 SNOW SURFACES HAVE 2 MATERIAL OPTIONS:
1. Basic Snow Material
 Active when surface is not being ...
Stage 3 - Shading (2/)
Non-deformed Snow
Flattened Snow
[Barré-Brisebois 2014]
Stage 3 - Shading (3/)
[Barré-Brisebois 2014]
 BLENDING MATERIAL STAGES
 For diffuse & spec, simple lerp
 Also, tint di...
Stage 4 – Shading (4/)
float3 t = tex2D(BaseNormal, uv) * float3(2, 2, 2) + float3(-1, -1, 0);
float3 u = tex2D(DetailNorm...
[Barré-Brisebois 2014]
LINEAR INTERPOLATION
Overlay
[Barré-Brisebois 2014]
OVERLAY BLEND
REORIENTED NORMAL MAPPING
ADOBE, PLEASE ADD TO PHOTOSHOP!
[Barré-Brisebois & Hill 2012]
Add. Implementation Details
 SURFACE UV ALIGN WITH ORTHO FRUSTUM
 0-1 range, simplifies heightmap-to-displacement
 SCAL...
 DEVELOPED WITH OUR FRIENDS@NVIDIA (EVGENY MAKAROV)
 ACCURATE DISPLACEMENT BASED ON DEPTH
 Capture the height field lik...
DirectX 11 With Tessellation (2/)
Minimum Height field
Orthogonal Capture Frustum Projected Displacement
Final Surface (di...
Without Tessellation (No Macro Deformation)
[Barré-Brisebois 2014]
With Tessellation (Macro Deformation)
[Barré-Brisebois 2014]
DirectX 11 With Tessellation (4/)
 RUNTIME DICING OF SNOW MESHES
 REAL GEOMETRY MEANS:
 Works with Dynamic Shadows
 Ch...
[Barré-Brisebois 2014]
Performance & Memory
 PERFORMANCE
 Heightmaps update < 1.0ms GPU on PS3/360
 MEMORY
 2 MB (360 / PS3 / WiiU)
 Since w...
Caveats / Issues ?
 RELIEF-MAPPED APPROACH
 Deformation looks great, but will never be as thick as
tessellation. Replace...
Future Endeavors…
 Save the heightmaps and reload them?
 Use this technique for other cases, such as
sand, mud, etc…
 I...
PART 2
CHROMA SUBSAMPLING IMPROVEMENTS
Chroma Subsampling? (1/)
 ARKHAM ORIGINS’ WORLD IS DOUBLE THE SIZE OF
ARKHAM CITY
 More data, but same amount of storage...
Chroma Subsampling? (2/)
Y(W, H)
COCG (W / N, H / N)
N  Your art director’s tolerance to compression (2, 4…) 
Chroma Subsampling? (3/)
 USED EXTENSIVELY ON LIGHTMAPS
 Unlike [White and Penty 2009], we used YCoCg
 Pack two luma te...
Chroma Subsampling? (4/)
 CHROMA SUBSAMPLING CAN BE USED EXTENSIVELY…
 We started implementing chroma frame buffer compr...
PART 3
NVIDIA GAMEWORKS ENHANCEMENTS
BATMAN: ARKHAM ORIGINS
FEATURED NVIDIA TECHNOLOGY
DEPTH OF FIELD
SNOWPRINTS: TESSELATION
CONTACT-HARDENING
SHADOWS
HBAO+
B...
VIDEO
BATMAN: ARKHAM ORIGINS
FEATURED NVIDIA TECHNOLOGY
DEPTH OF FIELD
SNOWPRINTS: TESSELATION
CONTACT-HARDENING
SHADOWS
HBAO+
B...
HBAO+
HBAO+
HBAO+
DEPTH OF FIELD
TURBULENCE PARTICLES
PARTICLES
PARTICLES
PARTICLES
PARTICLES
PARTICLES
PARTICLE SHADOW MAPPING
CAPE TESSELLATION (1/)
CAPE TESSELLATION (2/)
4K
Summary
 A FAST AND LOW-MEMORY FOOTPRINT TECHNIQUE TO
RENDER DEFORMABLE SNOW SURFACES
 Adds a really nice level of inter...
Thank You!
Érick Bilodeau
David Massicotte
Sébastien Turcotte
Jimmy Béliveau
Olivier Pomarez
Philippe Bernard
Ryan Lewis
M...
We’re Hiring! http://www.wbgamesmontreal.com
References (1/)
[Barré-Brisebois 2014]
Barré-Brisebois, Colin. “Deformable Snow Rendering in Batman: Arkham Origins“, Game...
References (2/)
[Policarpo & Oliveira 2006]
Policarpo, Fabio and Oliveira, Manuel M. Rendering Surface Details in Games wi...
GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins
Upcoming SlideShare
Loading in...5
×

GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins

2,649

Published on

An extended version from the GDC14 "Deformable Snow Rendering in Batman: Arkham Origins" talk. This talk focuses on several DirectX 11 features developed/integrated in collaboration with NVIDIA. Tessellation and how the integration NVIDIA GameWorks with features such as physically-based particles with PhysX, particle fields with Turbulence, HBAO+, and bokeh DOF is also presented. Other improvements are also showcased: Reoriented Normal Mapping and chroma subsampling pipeline improvements.

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,649
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
71
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

GTC 2014 - DirectX 11 Rendering and NVIDIA GameWorks in Batman: Arkham Origins

  1. 1. DirectX 11 Rendering & NVIDIA GameWorks in Batman: Arkham Origins Colin Barré-Brisebois (Lead Rendering Programmer)
  2. 2. AGENDA PREFACE  Motivations PART 1–DEFORMABLE SNOW Excerpts from GDC 2014  Novel technique for surfaces covered with fallen deformable snow  Enhanced for PC using DX11 PART 2–CHROMA SUBSAMPLING  Various pipeline enhancements PART 3–NVIDIA GAMEWORKS  Enhanced game features using NVIDIA GameWorks
  3. 3. [Barré-Brisebois 2014]
  4. 4. [Barré-Brisebois 2014]
  5. 5. PART 1 DEFORMABLE SNOW RENDERING
  6. 6. Deformable Snow Surfaces ENHANCE THE WORLD WITH DYNAMICS OF DEFORMABLE SNOW  THREE REQUIREMENTS: 1. Iconic visuals of deformable snow 2. Organic deformation from walking, falling, sliding, fighting and more 3. Low memory usage and low performance cost for an open world game [Barré-Brisebois 2014]
  7. 7. Iconic & Organic Deformable Snow From Google Images - http://bit.ly/M7T9kV (footsteps in snow, left) and http://bit.ly/M7TbJB (snow angel, right) [Barré-Brisebois 2014]
  8. 8. Previous Work? [ST-AMOUR 2013] (ASSASSIN’S CREED 3) [EDWARDS 2012] (JOURNEY)  RAYCAST ON A TERRAIN / MODIFY TERRAIN MESH.  We don’t have terrain. We have rooftops and streets.  Besides, we don’t want to add raycasts.  REQUIRES VARIABLE TRIANGLE DENSITY FOR VISUALLY CONVINCING VERTEX DISPLACEMENT IN ALL CASES  PC DX11 with tessellation is great… but what about consoles? [Barré-Brisebois 2014]
  9. 9. Our Approach (1/)  GENERATE DISPLACEMENT HEIGHTMAPS AT RUNTIME  Snow deformation is a semi-low frequency detail effect  Cheap approximation works with footsteps & more  Great performance, and low memory usage  CONSOLES: VIRTUAL DISPLACEMENT VIA RELIEF MAPPING  Minimal taps. No “swimming”  Independent of triangle density  PC: DIRECTX 11 VERSION WITH TESSELLATION [Barré-Brisebois 2014]
  10. 10. Our Approach (2/)  GOTHAM HAS MANY ROOFTOPS AND STREETS  Dynamically alloc/dealloc heightmaps based on size, player/AIs and visibility Heightmaps [Barré-Brisebois 2014]
  11. 11. Feet Cape [Barré-Brisebois 2014]
  12. 12. Feet Cape [Barré-Brisebois 2014]
  13. 13.  RENDER SNOW-AFFECTING OBJECTS LOOKING FROM UNDER THE SURFACE USING AN ANKLE-HIGH ORTHOGONAL FRUSTUM 1. Clear to black 2. Render actors in white 3. Filter and accumulate (ping/pong) in a texture  ANYTHING IN THAT ZONE WILL AFFECT THE HEIGHTMAP 1. Feet, hands 2. Sliding, throwing a thug to the ground… Generating the Heightmap ? [Barré-Brisebois 2014]
  14. 14. Ankle-high Orthogonal Frustum [Barré-Brisebois 2014]
  15. 15. [Barré-Brisebois 2014]
  16. 16. [Barré-Brisebois 2014]
  17. 17. [Barré-Brisebois 2014]
  18. 18. Video!
  19. 19. Update Loop FOR EVERY ACTIVE* SNOW SURFACE 1. Figure out if surface-affecting object is on the surface  We use a quad tree look-up rather than keeping an actor list for each surface 2. Override materials on all parts  Simple white material 3. Render actors 4. Process/Accumulate with custom post-process chain [Barré-Brisebois 2014]
  20. 20.  STAGE 1 – GET RESULTS & SMALL BLUR  4-tap bilinear Poisson  STAGE 2 – ADD TO EXISTING HEIGHTMAP  During this stage, you can also subtract a small value to the heightmap to make snow gradually replenish (since it’s snowing)   STAGE 3 – SHADING [Barré-Brisebois 2014] Heightmap Accumulation & Render
  21. 21. Stage 3 - Shading (1/)  SNOW SURFACES HAVE 2 MATERIAL OPTIONS: 1. Basic Snow Material  Active when surface is not being deformed  Shows new / clean / untouched snow, cheaper 2. Deformable Snow Material  Two stages: non-deformed or fully flattened snow  Non-deformed part the same as Basic Snow Material  Fully flattened shows rooftop tiles / concrete.  Blends both stages using heightmap & Relief Mapping [Barré-Brisebois 2014]
  22. 22. Stage 3 - Shading (2/) Non-deformed Snow Flattened Snow [Barré-Brisebois 2014]
  23. 23. Stage 3 - Shading (3/) [Barré-Brisebois 2014]  BLENDING MATERIAL STAGES  For diffuse & spec, simple lerp  Also, tint diffuse with sky color in transition area to fake SSS  For normals, blend using Reoriented Normal Mapping [Barré-Brisebois & Hill 2012]  Normals are not colors.  You can’t lerp/overlay between directions!  Used in game to:  Blend the snow detail normal and the macro “wave” snow normal  Add detail normal maps everywhere
  24. 24. Stage 4 – Shading (4/) float3 t = tex2D(BaseNormal, uv) * float3(2, 2, 2) + float3(-1, -1, 0); float3 u = tex2D(DetailNormal, uv) * float3(-2, -2, 2) + float3(1, 1, -1); float3 r = t * dot(t, u) / t.z – u; [Barré-Brisebois & Hill 2012] REORIENTED NORMAL MAPPING
  25. 25. [Barré-Brisebois 2014] LINEAR INTERPOLATION
  26. 26. Overlay [Barré-Brisebois 2014] OVERLAY BLEND
  27. 27. REORIENTED NORMAL MAPPING ADOBE, PLEASE ADD TO PHOTOSHOP! [Barré-Brisebois & Hill 2012]
  28. 28. Add. Implementation Details  SURFACE UV ALIGN WITH ORTHO FRUSTUM  0-1 range, simplifies heightmap-to-displacement  SCALED WORLD-SPACE HEIGHTMAP RES.  Min(512, ¼ * (SurfaceX, SurfaceY))  Tries to keep texels “square”  Doesn’t need to be high-res, looks better in lower resolutions  Must scale Relief Mapping parameters  SPLIT RENDER & TICK OF ACTIVE SURFACES  Snow surface where Batman stands has priority  We only render 2 surfaces/frame (tweakable, distance-based) [Barré-Brisebois 2014]
  29. 29.  DEVELOPED WITH OUR FRIENDS@NVIDIA (EVGENY MAKAROV)  ACCURATE DISPLACEMENT BASED ON DEPTH  Capture the height field like a z-buffer  Two channels:  Minimum height field  Projected displacement  Allows for additive capture, smoother results and deformable snow banks!   TESSELLATED VERSION ADDS DETAILED DISPLACEMENT CALCULATED FROM THE NORMAL MAP  Macro deformation breaks surface uniformity DirectX 11 With Tessellation (1/) [Barré-Brisebois 2014]
  30. 30. DirectX 11 With Tessellation (2/) Minimum Height field Orthogonal Capture Frustum Projected Displacement Final Surface (displaced) Rooftop [Barré-Brisebois 2014]
  31. 31. Without Tessellation (No Macro Deformation) [Barré-Brisebois 2014]
  32. 32. With Tessellation (Macro Deformation) [Barré-Brisebois 2014]
  33. 33. DirectX 11 With Tessellation (4/)  RUNTIME DICING OF SNOW MESHES  REAL GEOMETRY MEANS:  Works with Dynamic Shadows  Character shadows now follows the surface and shift with the deformation  Self shadowing & self-shading  Works with dynamic ambient occlusion  AO fills-in the trails [Barré-Brisebois 2014]
  34. 34. [Barré-Brisebois 2014]
  35. 35. Performance & Memory  PERFORMANCE  Heightmaps update < 1.0ms GPU on PS3/360  MEMORY  2 MB (360 / PS3 / WiiU)  Since we’re using low resolution heightmaps  This is flexible, but sufficient for our needs since we allocate/deallocate as the player flies in the world  2-4 MB (FP16 vs FP32 on PC) [Barré-Brisebois 2014]
  36. 36. Caveats / Issues ?  RELIEF-MAPPED APPROACH  Deformation looks great, but will never be as thick as tessellation. Replace with Parallax Occlusion Mapping?  Derive parametric AO from the heightmap?  TESSELLATED APPROACH  When artists were working on content creation, displacement wasn't taken into account (pre-pass actors, open edges being visible, etc...)  Some meshes couldn't use tessellation as there were parts of geometry right under the snow, not supposed to be visible [Barré-Brisebois 2014]
  37. 37. Future Endeavors…  Save the heightmaps and reload them?  Use this technique for other cases, such as sand, mud, etc…  Improvements to slopes with the depth-based approach [Barré-Brisebois 2014]
  38. 38. PART 2 CHROMA SUBSAMPLING IMPROVEMENTS
  39. 39. Chroma Subsampling? (1/)  ARKHAM ORIGINS’ WORLD IS DOUBLE THE SIZE OF ARKHAM CITY  More data, but same amount of storage…  USE CHROMA SUBSAMPLING Chroma subsampling is the practice of encoding images by implementing less resolution for chroma information than for luma information, taking advantage of the human visual system's lower acuity for color differences than for luminance. 1  THIS IS NOT NEW…  Broadcasting  Oh, and in games too! [White and Penty 2009] 1 http://en.wikipedia.org/wiki/Chroma_subsampling
  40. 40. Chroma Subsampling? (2/) Y(W, H) COCG (W / N, H / N) N  Your art director’s tolerance to compression (2, 4…) 
  41. 41. Chroma Subsampling? (3/)  USED EXTENSIVELY ON LIGHTMAPS  Unlike [White and Penty 2009], we used YCoCg  Pack two luma textures together instead of 3  Blue channel pollution from DXT1 compression is too significant in our case when packing 3  Improve quality by setting B channel to 0 and/or set the DXT weights  (R=0.5, G=0.5, B=0)  USED EXTENSIVELY ON LODS  We have 2 (NEAR & FAR) levels of LODs, let’s compress more!  OVERALL BETTER COMPRESSION RESULTS OVER VANILLA DXT1 LIGHTMAPS & LODS
  42. 42. Chroma Subsampling? (4/)  CHROMA SUBSAMPLING CAN BE USED EXTENSIVELY…  We started implementing chroma frame buffer compression  Similar to [Mavridis & Papaioannou 2012]’s The Compact YCoCg Frame Buffer  Didn’t make it into the final game   Nonetheless…  WE SHOULD ALWAYS FIND MORE OPPORTUNITIES TO COMPRESS MORE, ESPECIALLY WHEN IT MAKES “VISUALLY SENSE”!  Next time! 
  43. 43. PART 3 NVIDIA GAMEWORKS ENHANCEMENTS
  44. 44. BATMAN: ARKHAM ORIGINS FEATURED NVIDIA TECHNOLOGY DEPTH OF FIELD SNOWPRINTS: TESSELATION CONTACT-HARDENING SHADOWS HBAO+ BATMAN: TXAA, HBAO+, SOFT SHADOWS, CAPE TESSELLATION TEARING CLOTH ENVIRONMENTAL CLOTH PHYSX PARTICLES TURBULENCE BLIZZARD CONDITIONS: TURBULENCE
  45. 45. VIDEO
  46. 46. BATMAN: ARKHAM ORIGINS FEATURED NVIDIA TECHNOLOGY DEPTH OF FIELD SNOWPRINTS: TESSELATION CONTACT-HARDENING SHADOWS HBAO+ BATMAN: TXAA, HBAO+, SOFT SHADOWS, CAPE TESSELLATION TEARING CLOTH ENVIRONMENTAL CLOTH PHYSX PARTICLES TURBULENCE BLIZZARD CONDITIONS: TURBULENCE
  47. 47. HBAO+
  48. 48. HBAO+
  49. 49. HBAO+
  50. 50. DEPTH OF FIELD
  51. 51. TURBULENCE PARTICLES
  52. 52. PARTICLES
  53. 53. PARTICLES
  54. 54. PARTICLES
  55. 55. PARTICLES
  56. 56. PARTICLES
  57. 57. PARTICLE SHADOW MAPPING
  58. 58. CAPE TESSELLATION (1/)
  59. 59. CAPE TESSELLATION (2/)
  60. 60. 4K
  61. 61. Summary  A FAST AND LOW-MEMORY FOOTPRINT TECHNIQUE TO RENDER DEFORMABLE SNOW SURFACES  Adds a really nice level of interaction between players and the world  Depics iconic & organic visuals of deformable snow  A good tessellation case for your DX11 game using minimal editing and art tweaks  CHROMA SUBSAMPLING FOR YOUR ART PIPELINE IS DEFINITELY A VENUE TO CONSIDER  HOW WE USED NVIDIA’S GAMEWORKS TO ENHANCE THE VISUALS OF SNOW BEHIND BATMAN: ARKHAM ORIGINS
  62. 62. Thank You! Érick Bilodeau David Massicotte Sébastien Turcotte Jimmy Béliveau Olivier Pomarez Philippe Bernard Ryan Lewis Marc Bouchard Jean-Noé Morissette Pierric Gimmig Patrick Dubuc Reid Schneider Maggy Larouche Miguel Sainz Evgeny Makarov Jon Jansen Louis Bavoil Holger Gruen Andrei Tatarinov Andrew Burnes Jon Greenberg NVIDIA Questions? colin.barrebrisebois@wbgames.com / @ZigguratVertigo
  63. 63. We’re Hiring! http://www.wbgamesmontreal.com
  64. 64. References (1/) [Barré-Brisebois 2014] Barré-Brisebois, Colin. “Deformable Snow Rendering in Batman: Arkham Origins“, Game Developers Conference, 2014. [Barré-Brisebois & Hill 2012] Barré-Brisebois, Colin and Hill, Stephen. "Blending in Detail - Reoriented Normal Mapping", 2012. http://bit.ly/Mf2UH0 [Bavoil & Jansen 2013] Bavoil, Louis and Jansen, Jon. “Particle Shadows & Cache-Efficient Post-Processing”, Game Developers Conference, 2013. [Edwards 2013] Edwards, John. "Sand Rendering in Journey", Advances in Real-Time Rendering, SIGGRAPH, 2012. [Jansen & Bavoil 2011] Jansen, Jon and Bavoil, Louis. “Fast rendering of opacity-mapped particles using DirectX 11 tessellation and mixed resolutions”, NVIDIA SDK, February 2011.
  65. 65. References (2/) [Policarpo & Oliveira 2006] Policarpo, Fabio and Oliveira, Manuel M. Rendering Surface Details in Games with Relief Mapping Using a Minimally Invasive Approach. In:Wolfgang Engel (ed.). SHADER X4: Lighting & Rendering. Charles River Media, Inc., Hingham, Massachusetts, 2006 (ISBN 1-58450-425-0), pp. 109-119. [Mavridis & Papaioannou 2012] Mavridis, Pavlos and Papaioannou, Georgios. “The Compact YCoCg Frame Buffer”, Journal of Computer Graphics Techniques, 2012. [St-Amour 2013] St-Amour, Jean-François. "Rendering Assassin's Creed", Game Developers Conference, 2013. [White & Penty 2009] White, John and Penty, Colin. “Shooting in San Vanelona: The Visuals of Skate”, Game Developers Conference, 2009.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×