![Page 1: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/1.jpg)
Deformable Snow Rendering in Batman™: Arkham OriginsColin Barré-Brisebois (Lead Rendering Programmer)
![Page 2: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/2.jpg)
AgendaMotivationsDeformable Snow
● Novel technique for rendering of surfaces covered with fallen deformable snow
● For consoles and enhanced for PC (DX11 tessellation)
Q&A
![Page 3: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/3.jpg)
![Page 4: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/4.jpg)
![Page 5: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/5.jpg)
MotivationsEnhance the world with dynamics of deformable snowThree requirements:
1. Iconic visuals of deformable snow2. Organic deformation from walking,
falling, sliding, fighting and more3. Low memory usage and low performance cost for
an open world game
![Page 6: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/6.jpg)
Iconic / Organic Deformable Snow
From Google Images - http://bit.ly/M7T9kV (footsteps in snow, left) and http://bit.ly/M7TbJB (snow angel, right)
![Page 7: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/7.jpg)
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?
![Page 8: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/8.jpg)
Our Approach (1/)Generate displacement heightmaps at runtime
● Snow prints are 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
![Page 9: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/9.jpg)
Our Approach (2/)Gotham has many rooftops and streetsDynamically alloc/dealloc heightmaps based on size, player/AIs and visibility
Heightmaps
![Page 10: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/10.jpg)
FeetCape
![Page 11: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/11.jpg)
FeetCape
![Page 12: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/12.jpg)
Render snow-affecting objectslooking from under the surface using an ankle-high orthogonal frustum
1. Clear to black2. Render actors in white3. Filter and accumulate (ping/pong) in a texture
Anything in that zone will affect the heightmap (feet, hands, sliding, throwing a thug to the ground…)
Generating the Heightmap ?
![Page 13: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/13.jpg)
Ankle-high Orthogonal Frustum
![Page 14: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/14.jpg)
![Page 15: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/15.jpg)
![Page 16: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/16.jpg)
![Page 17: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/17.jpg)
Let’s see what it looks like at runtime!
![Page 18: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/18.jpg)
Update LoopFor 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
![Page 19: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/19.jpg)
Heightmap Accumulation & RenderStage 1 – Get results & small blur
● 4-tap bilinear PoissonStage 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
![Page 20: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/20.jpg)
Stage 3 - Shading (1/)Snow surfaces have 2 material options
1. Basic Snow Materialo Active when surface is not being deformedo Shows new / clean / untouched snow, cheaper
2. Deformable Snow Materialo Two stages: non-deformed or fully flattened snowo Non-deformed part the same as Basic Snow Materialo Fully flattened shows rooftop tiles / concrete.o Blends both stages using heightmap & Relief Mapping
![Page 21: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/21.jpg)
Stage 3 - Shading (2/)Non-deformed Snow
Flattened Snow
![Page 22: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/22.jpg)
Stage 3 - Shading (3/)Blending Material Stages
● For diffuse & spec, simple lerpo Also, tint diffuse with sky color in transition area to fake SSS
● For normals, blend using Reoriented Normal Mapping [Barré-Brisebois & Hill 2012] o Normals are not colors. o You can’t lerp/overlay between directions!o Used in game to:
● Blend the snow detail normal and the macro “wave” snow normal● Add detail normal maps everywhere
![Page 23: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/23.jpg)
Stage 3 - 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]
![Page 24: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/24.jpg)
Linear Interpolation
![Page 25: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/25.jpg)
Overlay
![Page 26: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/26.jpg)
[Barré-Brisebois & Hill 2012]
Reoriented Normal Mapping
![Page 27: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/27.jpg)
Add. Implementation Details (1/)Surface UVs 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
![Page 28: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/28.jpg)
Add. Implementation Details (2/)Split render & tick of active surfaces
● Snow surface where Batman stands has priority● Only render 2 surfaces/frame (tweakable but good
enough, with distance-based priorities)
Reuse memory from old heightmaps● Not active/visible (max distance from sphere bounds)● Un-streamed open-world zones
![Page 29: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/29.jpg)
DirectX 11 With Tessellation (1/)Feature developed with our friends @ NVIDIA (Evgeny Makarov)Accurate displacement based on depth
● Capture the height field like a z-buffer● Two channels:
o Minimum height field o Projected displacement
● Allows for additive capture & smoother results. ● Also allows for deformable snow banks!
![Page 30: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/30.jpg)
Rooftop
Minimum Height field
Orthogonal Capture Frustum Projected Displacement
Final Surface (displaced)
DirectX 11 With Tessellation (2/)
![Page 31: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/31.jpg)
DirectX 11 With Tessellation (3/)Tessellated version adds detailed displacement calculated from the normal map, globally applied to the snow surface
● Extra detail compared to the relief-mapped version
● Takes the macro normal map to add additional “macro waves”
![Page 32: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/32.jpg)
Without Tessellation (No Macro Deformation)
![Page 33: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/33.jpg)
With Tessellation (Macro Deformation)
![Page 34: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/34.jpg)
DirectX 11 With Tessellation (4/)Runtime dicing of snow meshesReal geometry means:
● Works with Dynamic Shadowso Character shadows now follows the surface and shift with the deformationo Self shadowing & self-shading
● Works with dynamic ambient occlusiono AO fills-in the trails
![Page 35: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/35.jpg)
![Page 36: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/36.jpg)
Performance & MemoryPerformance
● Heightmaps update < 1.0ms GPU on PS3/360Memory
● 2 MB (360 / PS3 / WiiU)o Since we’re using low resolution heightmapso 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)
![Page 37: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/37.jpg)
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
![Page 38: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/38.jpg)
Future Endeavours…Save the heightmaps and reload them?Use this technique for other cases, such as sand, mud, etc…
![Page 39: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/39.jpg)
SummaryA 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
![Page 40: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/40.jpg)
Thank You!Érick BilodeauDavid MassicotteSébastien TurcotteJimmy BéliveauOlivier PomarezPhilippe BernardRyan LewisMarc BouchardJean-Noé Morissette
Pierric GimmigPatrick DubucReid SchneiderMaggy LaroucheMiguel SainzEvgeny MakarovJon JansenChristina CoffinJon GreenbergNVIDIA Questions?
[email protected] / @ZigguratVertigo
![Page 42: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/42.jpg)
References[Barré-Brisebois & Hill 2012] Barré-Brisebois, Colin and Hill, Stephen. "Blending in Detail - Reoriented Normal Mapping", 2012. http://bit.ly/Mf2UH0
[Edwards 2013] Edwards, John. "Sand Rendering in Journey", Advances in Real-Time Rendering, SIGGRAPH, 2012.http://advances.realtimerendering.com/s2012/index.html
[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.
[St-Amour 2013] St-Amour, Jean-François. "Rendering Assassin's Creed", Game Developers Conference, 2013.
![Page 43: GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54b613d94a79598d038b45ee/html5/thumbnails/43.jpg)