Содержание
- 2. GPU-Driven Rendering Pipelines Ulrich Haar, Lead Programmer 3D, Ubisoft Montreal Sebastian Aaltonen, Senior Lead Programmer, RedLynx
- 3. Topics Motivation Mesh Cluster Rendering Rendering Pipeline Overview Occlusion Depth Generation Results and future work SIGGRAPH
- 4. GPU-Driven Rendering? GPU controls what objects are actually rendered “draw scene” GPU-command n viewports/frustums GPU determines
- 5. Motivation (RedLynx) Modular construction using in-game level editor High draw distance. Background built from small objects.
- 6. Massive amounts of geometry: architecture Motivation Assassin’s Creed Unity SIGGRAPH 2015: Advances in Real-Time Rendering course
- 7. Motivation Assassin’s Creed Unity Massive amounts of geometry: seamless interiors SIGGRAPH 2015: Advances in Real-Time Rendering
- 8. Motivation Assassin’s Creed Unity Massive amounts of geometry: crowds SIGGRAPH 2015: Advances in Real-Time Rendering course
- 9. Motivation Assassin’s Creed Unity Modular construction (partially automated) ~10x instances compared to previous Assassin’s Creed games
- 10. Mesh Cluster Rendering Fixed topology (64 vertex strip) Split & rearrange all meshes to fit fixed
- 11. Mesh Cluster Rendering Arbitrary number of meshes in single drawcall GPU-culled by cluster bounds [Greene93] [Shopf08]
- 12. Mesh Cluster Rendering (ACU) Problems with triangle strips: Memory increase due to degenerate triangles Non-deterministic cluster
- 13. Rendering Pipeline Overview MULTI-DRAW COARSE FRUSTUM CULLING BATCH DRAWCALLS INSTANCE CULLING (FRUSTUM/OCCLUSION) CLUSTER CHUNK EXPANSION CLUSTER
- 14. Rendering pipeline overview CPU quad tree culling Per instance data: E.g. transform, LOD factor... Updated in
- 15. SIGGRAPH 2015: Advances in Real-Time Rendering course Transform Bounds Mesh Rendering Pipeline Overview MULTI-DRAW INSTANCE CULLING
- 16. SIGGRAPH 2015: Advances in Real-Time Rendering course Rendering Pipeline Overview Instance Idx Chunk Idx MULTI-DRAW INSTANCE
- 17. SIGGRAPH 2015: Advances in Real-Time Rendering course Instance Idx Cluster Idx Rendering Pipeline Overview MULTI-DRAW INSTANCE
- 18. SIGGRAPH 2015: Advances in Real-Time Rendering course Triangle Mask Read/Write Offsets Rendering Pipeline Overview MULTI-DRAW INSTANCE
- 19. SIGGRAPH 2015: Advances in Real-Time Rendering course Rendering Pipeline Overview MULTI-DRAW INSTANCE CULLING (FRUSTUM/OCCLUSION) CLUSTER CHUNK
- 20. SIGGRAPH 2015: Advances in Real-Time Rendering course Rendering Pipeline Overview 0 1 0 1 0 1
- 21. Rendering Pipeline Overview MULTI-DRAW INSTANCE CULLING (FRUSTUM/OCCLUSION) CLUSTER CHUNK EXPANSION CLUSTER CULLING (FRUSTUM/OCCLUSION/TRIANGLE BACKFACE) INDEX BUFFER
- 22. Static Triangle Backface Culling Bake triangle visibility for pixel frustums of cluster centered cubemap Cubemap lookup
- 23. Static Triangle Backface Culling SIGGRAPH 2015: Advances in Real-Time Rendering course
- 24. Static Triangle Backface Culling Only one pixel per cubemap face (6 bits per triangle) Pixel frustum
- 25. Occlusion Depth Generation SIGGRAPH 2015: Advances in Real-Time Rendering course
- 26. Occlusion Depth Generation Hierarchy Depth pre-pass with best occluders Rendered in full resolution for High-Z and
- 27. Occlusion Depth Generation Hierarchy 300 best occluders (~600us) Rendered in full resolution for High-Z and Early-Z
- 28. Shadow Occlusion Depth Generation For each cascade Camera depth reprojection (~70us) Combine with shadow depth reprojection
- 29. Camera Depth Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 30. Camera Depth Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 31. Camera Depth Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 32. Camera Depth Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 33. Camera Depth Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 34. Camera Depth Reprojection Light Space Reprojection SIGGRAPH 2015: Advances in Real-Time Rendering course
- 35. Camera Depth Reprojection Reprojection “shadow” of the building SIGGRAPH 2015: Advances in Real-Time Rendering course
- 36. Camera Depth Reprojection Similar to [Silvennoinen12] But, mask not effective because of fog: Cannot use min-depth
- 37. Results CPU: 1-2 Orders of magnitude less drawcalls ~75% of previous AC, with ~10x objects GPU:
- 38. Future Bindless textures GPU-driven vs. DX12/Vulkan SIGGRAPH 2015: Advances in Real-Time Rendering course
- 39. RedLynx Topics Virtual Texturing in GPU-Driven Rendering Virtual Deferred Texturing MSAA Trick Two-Phase Occlusion Culling Virtual
- 40. Virtual Texturing Key idea: Keep only the visible texture data in memory [Hall99] Virtual 256k2 texel
- 41. GPU-Driven Rendering with VT Virtual texturing is the biggest difference between our and AC: Unity’s renderer
- 42. Single Draw Call Rendering Viewport = single draw call (x2) Dynamic branching for different vertex animation
- 43. Additional VT Advantages Complex material blends and decal rendering results are stored to VT page cache
- 44. Virtual Deferred Texturing Old Idea: Store UVs to the G-buffer instead of texels [Auf.07] Key feature:
- 45. Gradients and Tangent Frame Calculate pixel gradients in screen space. UV distance used to detect neighbors.
- 46. Recap & Advantages 64 bits. Full fill rate. No MRT. Overdraw is dirt cheap Texturing deferred
- 47. Gradient reconstruction quality Ground truth Reconstructed Difference (x4) SIGGRAPH 2015: Advances in Real-Time Rendering course
- 48. MSAA Trick Key Observation: UV and tangent can be interpolated Idea: Render the scene at 2x2
- 49. 1080p Reconstruction Reconstruct 1080p into LDS Edge pixels are perfectly reconstructed. MSAA runs the pixel shader
- 50. 8xMSAA Trick Benchmark 128 bpp G-Buffer One pixel is a 2x2 tile of ”2xMSAA pixels” Xbox
- 51. Two-Phase Occlusion Culling No extra occlusion pass with low poly proxy geometry Precise WYSIWYG occlusion Based
- 52. SIGGRAPH 2015: Advances in Real-Time Rendering course Two-Phase Occlusion Culling 1st phase Cull objects & clusters
- 53. Benchmark “Torture” unit test scene 250,000 separate moving objects 1 GB of mesh data (10k+ meshes)
- 54. Benchmark Results CPU time: 0.2 milliseconds (single Jaguar CPU core) Xbox One, 1080p SIGGRAPH 2015: Advances
- 55. Virtual Shadow Mapping 128k2 virtual shadow map 2562 texel pages Identify needed shadow pages from the
- 56. VTSM Quality and Performance Close to 1:1 shadow-to-screen resolution in all areas Measured: Up to 3.5x
- 57. GPU-Driven Rendering + DX12 NEW DX12 (PC) FEATURES ExecuteIndirect Asynchronous Compute VS RT index (GS bypass)
- 58. References [SBOT08] Shopf, J., Barczak, J., Oat, C., Tatarchuk, N. March of the Froblins: simulation and
- 59. Acknowledgements Stephen Hill Roland Kindermann Jussi Knuuttila Jalal Eddine El Mansouri Tiago Rodrigues Lionel Berenguier Stephen
- 61. Скачать презентацию