Advances in RealTime Rendering in Games Game Worlds
![Advances in Real-Time Rendering in Games Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-1.jpg)
![Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering Hao Chen Ari Silvennoinen Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering Hao Chen Ari Silvennoinen](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-2.jpg)
![Talk Outline • Game Environment • Previous Approach • New Approach • Implementation • Talk Outline • Game Environment • Previous Approach • New Approach • Implementation •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-3.jpg)
![Halo Reach Advances in Real-Time Rendering in Games Halo Reach Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-4.jpg)
![More than pretty pixels • AI perception • Activation • Path-finding • Collision/Physics • More than pretty pixels • AI perception • Activation • Path-finding • Collision/Physics •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-5.jpg)
![More than pretty pixels • AI perception • Activation • Object Attachment • Audibility More than pretty pixels • AI perception • Activation • Object Attachment • Audibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-6.jpg)
![Background § § § Cells and portals Potentially Visible Sets (PVS) Occluder rasterization § Background § § § Cells and portals Potentially Visible Sets (PVS) Occluder rasterization §](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-7.jpg)
![Halo Approach • Cells and portals • Watertight shell geometry • Artists manually placed Halo Approach • Cells and portals • Watertight shell geometry • Artists manually placed](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-8.jpg)
![Pros • Unified visibility/spatial connectivity • Precise spatial decomposition • Inside/outside test • Great Pros • Unified visibility/spatial connectivity • Precise spatial decomposition • Inside/outside test • Great](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-9.jpg)
![Cons • Manual portalization is non-trivial! • Watertightness is painful for content authoring • Cons • Manual portalization is non-trivial! • Watertightness is painful for content authoring •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-10.jpg)
![Portalization Example Advances in Real-Time Rendering in Games Portalization Example Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-11.jpg)
![Polygon Soup! Advances in Real-Time Rendering in Games Polygon Soup! Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-12.jpg)
![Polygon Soup • Just pieces jammed together • No water-tightness • No manual portals Polygon Soup • Just pieces jammed together • No water-tightness • No manual portals](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-13.jpg)
![General Idea • Sub-divide the scene • Voxelize the subdivided volume • Segment the General Idea • Sub-divide the scene • Voxelize the subdivided volume • Segment the](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-14.jpg)
![2 D Example –Path Finding Input Scene [Recast Library: Mikko Mononen http: //code. google. 2 D Example –Path Finding Input Scene [Recast Library: Mikko Mononen http: //code. google.](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-15.jpg)
![2 D Example –Path Finding Voxelization Advances in Real-Time Rendering in Games 2 D Example –Path Finding Voxelization Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-16.jpg)
![2 D Example –Path Finding “Walk-able” voxels Advances in Real-Time Rendering in Games 2 D Example –Path Finding “Walk-able” voxels Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-17.jpg)
![2 D Example –Path Finding Distance Field Advances in Real-Time Rendering in Games 2 D Example –Path Finding Distance Field Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-18.jpg)
![2 D Example –Path Finding 2 D Watershed Transform Advances in Real-Time Rendering in 2 D Example –Path Finding 2 D Watershed Transform Advances in Real-Time Rendering in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-19.jpg)
![2 D Example –Path Finding Contour Advances in Real-Time Rendering in Games 2 D Example –Path Finding Contour Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-20.jpg)
![2 D Example –Path Finding Nav Mesh Advances in Real-Time Rendering in Games 2 D Example –Path Finding Nav Mesh Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-21.jpg)
![3 D Watershed Bungie & Zhe Jiang University Zhefeng Wu, Xinguo Liu Advances in 3 D Watershed Bungie & Zhe Jiang University Zhefeng Wu, Xinguo Liu Advances in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-22.jpg)
![3 D Watershed Transform Advances in Real-Time Rendering in Games 3 D Watershed Transform Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-23.jpg)
![Problems • 3 D is considerably harder/slower • Over-segmentation (small regions) • Sensitive to Problems • 3 D is considerably harder/slower • Over-segmentation (small regions) • Sensitive to](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-24.jpg)
![Collaboration with Umbra • Automatic portal generation • Incremental/local updates • CPU based solution, Collaboration with Umbra • Automatic portal generation • Incremental/local updates • CPU based solution,](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-25.jpg)
![Umbra Solution Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Umbra Solution Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-26.jpg)
![Preprocess Overview Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Preprocess Overview Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-27.jpg)
![Preprocess Overview § § Discretize the scene into voxels Determine voxel connectivity with respect Preprocess Overview § § Discretize the scene into voxels Determine voxel connectivity with respect](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-28.jpg)
![Tile Grid § Subdivide the input geometry into tiles Advances in Real-Time Rendering in Tile Grid § Subdivide the input geometry into tiles Advances in Real-Time Rendering in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-29.jpg)
![Tile Grid § Subdivide the input geometry into tiles § § § Localizes computation Tile Grid § Subdivide the input geometry into tiles § § § Localizes computation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-30.jpg)
![Tile Voxelization § Compute a BSP tree for each tile Advances in Real-Time Rendering Tile Voxelization § Compute a BSP tree for each tile Advances in Real-Time Rendering](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-31.jpg)
![Tile Voxelization § Compute a BSP tree for each tile § Subdivide to discretization Tile Voxelization § Compute a BSP tree for each tile § Subdivide to discretization](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-32.jpg)
![From Voxels to Cells and Portals Advances in Real-Time Rendering in Games From Voxels to Cells and Portals Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-33.jpg)
![From Voxels to Cells and Portals § § § Classify voxels Connect voxels Local From Voxels to Cells and Portals § § § Classify voxels Connect voxels Local](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-34.jpg)
![Voxel Classification § § § Classify voxels Connect voxels Local connected components represent view Voxel Classification § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-35.jpg)
![Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-36.jpg)
![Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-37.jpg)
![Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-38.jpg)
![Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-39.jpg)
![Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-40.jpg)
![Cells § § § Classify voxels Connect voxels Local connected components represent view cells Cells § § § Classify voxels Connect voxels Local connected components represent view cells](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-41.jpg)
![Portals § § § Classify voxels Build voxel connections Local connected components represent view Portals § § § Classify voxels Build voxel connections Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-42.jpg)
![Portals § § § Classify voxels Build voxel connections Local connected components represent view Portals § § § Classify voxels Build voxel connections Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-43.jpg)
![Cell Graph § Optimize cells and portals to a runtime cell graph § Runtime Cell Graph § Optimize cells and portals to a runtime cell graph § Runtime](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-44.jpg)
![Cell Graph § § § Optimize cells and portals to a runtime cell graph Cell Graph § § § Optimize cells and portals to a runtime cell graph](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-45.jpg)
![Runtime Algorithms Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Runtime Algorithms Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-46.jpg)
![Connectivity Algorithms § § § Connectivity is encoded in the precomputed cell graph Connectivity Connectivity Algorithms § § § Connectivity is encoded in the precomputed cell graph Connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-47.jpg)
![Visibility Algorithms § Practical analytic visibility in the cell graph § Axis aligned portals Visibility Algorithms § Practical analytic visibility in the cell graph § Axis aligned portals](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-48.jpg)
![Potentially Visible Sets § § § Deterministic conservative visibility Computation time is directly related Potentially Visible Sets § § § Deterministic conservative visibility Computation time is directly related](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-49.jpg)
![Portal Culling § How to traverse 100 K+ portals fast? § Recursive algorithm does Portal Culling § How to traverse 100 K+ portals fast? § Recursive algorithm does](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-50.jpg)
![Renderer Integration • Focus on the pipeline, not on rendering techniques • Visibility integration Renderer Integration • Focus on the pipeline, not on rendering techniques • Visibility integration](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-51.jpg)
![Halo Reach Game Loop Advances in Real-Time Rendering in Games Halo Reach Game Loop Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-52.jpg)
![Halo Reach Game Loop • Coarse-grain parallelism – System on a thread Advances in Halo Reach Game Loop • Coarse-grain parallelism – System on a thread Advances in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-53.jpg)
![Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-54.jpg)
![Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-55.jpg)
![Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-56.jpg)
![Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-57.jpg)
![Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-58.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 Simulation loop: 75 -100% HW Thread Halo Reach: Simulation Thread (MP) HW Thread 0 Simulation loop: 75 -100% HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-59.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 Object Update loop: 75 -100% Simulation Halo Reach: Simulation Thread (MP) HW Thread 0 Object Update loop: 75 -100% Simulation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-60.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-61.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-62.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-63.jpg)
![Halo Reach: Simulation Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Simulation Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-64.jpg)
![Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-65.jpg)
![Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-66.jpg)
![Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-67.jpg)
![Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-68.jpg)
![Can We Do Better? • Observation #1: We don’t need the entire game state Can We Do Better? • Observation #1: We don’t need the entire game state](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-69.jpg)
![Gamestate and Visibility • In Reach, game state extraction happens before we do visibility Gamestate and Visibility • In Reach, game state extraction happens before we do visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-70.jpg)
![Reduce CPU Latency • Visibility is a large chunk of CPU time on render Reduce CPU Latency • Visibility is a large chunk of CPU time on render](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-71.jpg)
![Gamestate and Visibility • But we can invert that operation • Only copy data Gamestate and Visibility • But we can invert that operation • Only copy data](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-72.jpg)
![Extract Post Visibility • Better: Drive game extraction and processing based on results of Extract Post Visibility • Better: Drive game extraction and processing based on results of](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-73.jpg)
![Better Load Balancing • Start by splitting off visibility computation into jobs per view Better Load Balancing • Start by splitting off visibility computation into jobs per view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-74.jpg)
![Reducing Input Latency • Stagger visibility computation at the same time as game object Reducing Input Latency • Stagger visibility computation at the same time as game object](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-75.jpg)
![Improve CPU Latency • Run expensive CPU render operations for visible objects only – Improve CPU Latency • Run expensive CPU render operations for visible objects only –](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-76.jpg)
![An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1 An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-77.jpg)
![An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1 An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-78.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-79.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-80.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-81.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-82.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-83.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-84.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-85.jpg)
![An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-86.jpg)
![Streamlined Submission Thread HW Thread 0 Havok Update Obj move Object Update loop: Simulation Streamlined Submission Thread HW Thread 0 Havok Update Obj move Object Update loop: Simulation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-87.jpg)
![Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-88.jpg)
![Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-89.jpg)
![A Simple Little Job Tree Advances in Real-Time Rendering in Games A Simple Little Job Tree Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-90.jpg)
![Future Work • Predict dynamic objects visibility with temporal bounding volume • Fixup after Future Work • Predict dynamic objects visibility with temporal bounding volume • Fixup after](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-91.jpg)
![Advances in Real-Time Rendering in Games Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-92.jpg)
- Slides: 92
![Advances in RealTime Rendering in Games Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-1.jpg)
Advances in Real-Time Rendering in Games
![Game Worlds from Polygon Soup Visibility Spatial Connectivity and Rendering Hao Chen Ari Silvennoinen Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering Hao Chen Ari Silvennoinen](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-2.jpg)
Game Worlds from Polygon Soup: Visibility, Spatial Connectivity and Rendering Hao Chen Ari Silvennoinen Natalya Tatarchuk Bungie Umbra Software Bungie Advances in Real-Time Rendering in Games
![Talk Outline Game Environment Previous Approach New Approach Implementation Talk Outline • Game Environment • Previous Approach • New Approach • Implementation •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-3.jpg)
Talk Outline • Game Environment • Previous Approach • New Approach • Implementation • Demo Advances in Real-Time Rendering in Games
![Halo Reach Advances in RealTime Rendering in Games Halo Reach Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-4.jpg)
Halo Reach Advances in Real-Time Rendering in Games
![More than pretty pixels AI perception Activation Pathfinding CollisionPhysics More than pretty pixels • AI perception • Activation • Path-finding • Collision/Physics •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-5.jpg)
More than pretty pixels • AI perception • Activation • Path-finding • Collision/Physics • Object Attachment • Audibility • Visibility • Spatial Connectivity • Caching/Paging • Rendering Advances in Real-Time Rendering in Games
![More than pretty pixels AI perception Activation Object Attachment Audibility More than pretty pixels • AI perception • Activation • Object Attachment • Audibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-6.jpg)
More than pretty pixels • AI perception • Activation • Object Attachment • Audibility • Caching/Paging • • • Path-finding Collision/Physics Visibility Spatial Connectivity Rendering Advances in Real-Time Rendering in Games
![Background Cells and portals Potentially Visible Sets PVS Occluder rasterization Background § § § Cells and portals Potentially Visible Sets (PVS) Occluder rasterization §](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-7.jpg)
Background § § § Cells and portals Potentially Visible Sets (PVS) Occluder rasterization § Software rasterization § Hardware occlusion queries § GPGPU solutions § Spatial Connectivity § Watershed Transform § Automatic Portal Generation Advances in Real-Time Rendering in Games
![Halo Approach Cells and portals Watertight shell geometry Artists manually placed Halo Approach • Cells and portals • Watertight shell geometry • Artists manually placed](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-8.jpg)
Halo Approach • Cells and portals • Watertight shell geometry • Artists manually placed portals • Build a BSP tree from shell geometry • Floodfill BSP leaves into cells • Build cell connectivity Advances in Real-Time Rendering in Games
![Pros Unified visibilityspatial connectivity Precise spatial decomposition Insideoutside test Great Pros • Unified visibility/spatial connectivity • Precise spatial decomposition • Inside/outside test • Great](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-9.jpg)
Pros • Unified visibility/spatial connectivity • Precise spatial decomposition • Inside/outside test • Great for indoor spaces with natural portals Advances in Real-Time Rendering in Games
![Cons Manual portalization is nontrivial Watertightness is painful for content authoring Cons • Manual portalization is non-trivial! • Watertightness is painful for content authoring •](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-10.jpg)
Cons • Manual portalization is non-trivial! • Watertightness is painful for content authoring • Force early level design decision • Optimized for indoor scene only. Advances in Real-Time Rendering in Games
![Portalization Example Advances in RealTime Rendering in Games Portalization Example Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-11.jpg)
Portalization Example Advances in Real-Time Rendering in Games
![Polygon Soup Advances in RealTime Rendering in Games Polygon Soup! Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-12.jpg)
Polygon Soup! Advances in Real-Time Rendering in Games
![Polygon Soup Just pieces jammed together No watertightness No manual portals Polygon Soup • Just pieces jammed together • No water-tightness • No manual portals](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-13.jpg)
Polygon Soup • Just pieces jammed together • No water-tightness • No manual portals • Incremental construction/fast iteration. • Allow late design changes Advances in Real-Time Rendering in Games
![General Idea Subdivide the scene Voxelize the subdivided volume Segment the General Idea • Sub-divide the scene • Voxelize the subdivided volume • Segment the](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-14.jpg)
General Idea • Sub-divide the scene • Voxelize the subdivided volume • Segment the voxels into regions • Build a connectivity graph between regions • Build simplified volumes from voxel regions Advances in Real-Time Rendering in Games
![2 D Example Path Finding Input Scene Recast Library Mikko Mononen http code google 2 D Example –Path Finding Input Scene [Recast Library: Mikko Mononen http: //code. google.](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-15.jpg)
2 D Example –Path Finding Input Scene [Recast Library: Mikko Mononen http: //code. google. com/p/ recastnavigation/] Advances in Real-Time Rendering in Games
![2 D Example Path Finding Voxelization Advances in RealTime Rendering in Games 2 D Example –Path Finding Voxelization Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-16.jpg)
2 D Example –Path Finding Voxelization Advances in Real-Time Rendering in Games
![2 D Example Path Finding Walkable voxels Advances in RealTime Rendering in Games 2 D Example –Path Finding “Walk-able” voxels Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-17.jpg)
2 D Example –Path Finding “Walk-able” voxels Advances in Real-Time Rendering in Games
![2 D Example Path Finding Distance Field Advances in RealTime Rendering in Games 2 D Example –Path Finding Distance Field Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-18.jpg)
2 D Example –Path Finding Distance Field Advances in Real-Time Rendering in Games
![2 D Example Path Finding 2 D Watershed Transform Advances in RealTime Rendering in 2 D Example –Path Finding 2 D Watershed Transform Advances in Real-Time Rendering in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-19.jpg)
2 D Example –Path Finding 2 D Watershed Transform Advances in Real-Time Rendering in Games
![2 D Example Path Finding Contour Advances in RealTime Rendering in Games 2 D Example –Path Finding Contour Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-20.jpg)
2 D Example –Path Finding Contour Advances in Real-Time Rendering in Games
![2 D Example Path Finding Nav Mesh Advances in RealTime Rendering in Games 2 D Example –Path Finding Nav Mesh Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-21.jpg)
2 D Example –Path Finding Nav Mesh Advances in Real-Time Rendering in Games
![3 D Watershed Bungie Zhe Jiang University Zhefeng Wu Xinguo Liu Advances in 3 D Watershed Bungie & Zhe Jiang University Zhefeng Wu, Xinguo Liu Advances in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-22.jpg)
3 D Watershed Bungie & Zhe Jiang University Zhefeng Wu, Xinguo Liu Advances in Real-Time Rendering in Games
![3 D Watershed Transform Advances in RealTime Rendering in Games 3 D Watershed Transform Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-23.jpg)
3 D Watershed Transform Advances in Real-Time Rendering in Games
![Problems 3 D is considerably harderslower Oversegmentation small regions Sensitive to Problems • 3 D is considerably harder/slower • Over-segmentation (small regions) • Sensitive to](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-24.jpg)
Problems • 3 D is considerably harder/slower • Over-segmentation (small regions) • Sensitive to scene changes • Simplified representation non-trivial • What about visibility? Advances in Real-Time Rendering in Games
![Collaboration with Umbra Automatic portal generation Incrementallocal updates CPU based solution Collaboration with Umbra • Automatic portal generation • Incremental/local updates • CPU based solution,](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-25.jpg)
Collaboration with Umbra • Automatic portal generation • Incremental/local updates • CPU based solution, low latency • Same solution for visibility and spatial connectivity • Handle doors and elevators • Precise around user placed portals • Fast run time / low memory fooprint Advances in Real-Time Rendering in Games
![Umbra Solution Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Umbra Solution Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-26.jpg)
Umbra Solution Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity queries Advances in Real-Time Rendering in Games
![Preprocess Overview Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Preprocess Overview Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-27.jpg)
Preprocess Overview Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity queries Advances in Real-Time Rendering in Games
![Preprocess Overview Discretize the scene into voxels Determine voxel connectivity with respect Preprocess Overview § § Discretize the scene into voxels Determine voxel connectivity with respect](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-28.jpg)
Preprocess Overview § § Discretize the scene into voxels Determine voxel connectivity with respect to input geometry Propagate connectivity to find connected components Determine portals between local connected components Advances in Real-Time Rendering in Games
![Tile Grid Subdivide the input geometry into tiles Advances in RealTime Rendering in Tile Grid § Subdivide the input geometry into tiles Advances in Real-Time Rendering in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-29.jpg)
Tile Grid § Subdivide the input geometry into tiles Advances in Real-Time Rendering in Games
![Tile Grid Subdivide the input geometry into tiles Localizes computation Tile Grid § Subdivide the input geometry into tiles § § § Localizes computation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-30.jpg)
Tile Grid § Subdivide the input geometry into tiles § § § Localizes computation Distributed computing Fast local changes Advances in Real-Time Rendering in Games
![Tile Voxelization Compute a BSP tree for each tile Advances in RealTime Rendering Tile Voxelization § Compute a BSP tree for each tile Advances in Real-Time Rendering](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-31.jpg)
Tile Voxelization § Compute a BSP tree for each tile Advances in Real-Time Rendering in Games
![Tile Voxelization Compute a BSP tree for each tile Subdivide to discretization Tile Voxelization § Compute a BSP tree for each tile § Subdivide to discretization](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-32.jpg)
Tile Voxelization § Compute a BSP tree for each tile § Subdivide to discretization level § Skip empty space § Leaf nodes = voxels Advances in Real-Time Rendering in Games
![From Voxels to Cells and Portals Advances in RealTime Rendering in Games From Voxels to Cells and Portals Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-33.jpg)
From Voxels to Cells and Portals Advances in Real-Time Rendering in Games
![From Voxels to Cells and Portals Classify voxels Connect voxels Local From Voxels to Cells and Portals § § § Classify voxels Connect voxels Local](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-34.jpg)
From Voxels to Cells and Portals § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Classification Classify voxels Connect voxels Local connected components represent view Voxel Classification § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-35.jpg)
Voxel Classification § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Connectivity Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-36.jpg)
Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Connectivity Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-37.jpg)
Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Connectivity Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-38.jpg)
Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Connectivity Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-39.jpg)
Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Voxel Connectivity Classify voxels Connect voxels Local connected components represent view Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-40.jpg)
Voxel Connectivity § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Cells Classify voxels Connect voxels Local connected components represent view cells Cells § § § Classify voxels Connect voxels Local connected components represent view cells](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-41.jpg)
Cells § § § Classify voxels Connect voxels Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Portals Classify voxels Build voxel connections Local connected components represent view Portals § § § Classify voxels Build voxel connections Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-42.jpg)
Portals § § § Classify voxels Build voxel connections Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Portals Classify voxels Build voxel connections Local connected components represent view Portals § § § Classify voxels Build voxel connections Local connected components represent view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-43.jpg)
Portals § § § Classify voxels Build voxel connections Local connected components represent view cells § Build portals between connected cells Advances in Real-Time Rendering in Games
![Cell Graph Optimize cells and portals to a runtime cell graph Runtime Cell Graph § Optimize cells and portals to a runtime cell graph § Runtime](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-44.jpg)
Cell Graph § Optimize cells and portals to a runtime cell graph § Runtime algorithms are graph traversals Advances in Real-Time Rendering in Games
![Cell Graph Optimize cells and portals to a runtime cell graph Cell Graph § § § Optimize cells and portals to a runtime cell graph](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-45.jpg)
Cell Graph § § § Optimize cells and portals to a runtime cell graph Runtime algorithms are graph traversals Graph structure allows limited dynamic changes Advances in Real-Time Rendering in Games
![Runtime Algorithms Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity Runtime Algorithms Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-46.jpg)
Runtime Algorithms Polygon soup Preprocess Automatic cell and portal generation Runtime Visibility and connectivity queries Advances in Real-Time Rendering in Games
![Connectivity Algorithms Connectivity is encoded in the precomputed cell graph Connectivity Connectivity Algorithms § § § Connectivity is encoded in the precomputed cell graph Connectivity](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-47.jpg)
Connectivity Algorithms § § § Connectivity is encoded in the precomputed cell graph Connectivity queries are just graph traversals Examples: § § § Find connected region (region == set of view cells) Find shortest 3 D path Intersection queries Ray casts Combinations: Ray cast -> connected region -> objects in region § Lot’s of possibilities for simulation and AI Advances in Real-Time Rendering in Games
![Visibility Algorithms Practical analytic visibility in the cell graph Axis aligned portals Visibility Algorithms § Practical analytic visibility in the cell graph § Axis aligned portals](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-48.jpg)
Visibility Algorithms § Practical analytic visibility in the cell graph § Axis aligned portals enable effective algorithms § § From point visibility queries From region visibility queries Volumetric visibility We can choose to be aggressive or conservative Advances in Real-Time Rendering in Games
![Potentially Visible Sets Deterministic conservative visibility Computation time is directly related Potentially Visible Sets § § § Deterministic conservative visibility Computation time is directly related](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-49.jpg)
Potentially Visible Sets § § § Deterministic conservative visibility Computation time is directly related to culling efficiency Every solution is useful § Sampling based visibility solvers can take long time to converge § Additional use cases: § § § Identify visibility hotspots Cull always hidden triangles Cull always hidden lightmaps Advances in Real-Time Rendering in Games
![Portal Culling How to traverse 100 K portals fast Recursive algorithm does Portal Culling § How to traverse 100 K+ portals fast? § Recursive algorithm does](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-50.jpg)
Portal Culling § How to traverse 100 K+ portals fast? § Recursive algorithm does not scale § Many paths to one cell – combinatorial explosion § Rasterization based approach § BSP-style front-to-back traversal § Update coverage buffer on entry and exit § Fast – 16 pixels at a time with 128 -bit SIMD vectors Advances in Real-Time Rendering in Games
![Renderer Integration Focus on the pipeline not on rendering techniques Visibility integration Renderer Integration • Focus on the pipeline, not on rendering techniques • Visibility integration](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-51.jpg)
Renderer Integration • Focus on the pipeline, not on rendering techniques • Visibility integration with game state extraction and rendering Advances in Real-Time Rendering in Games
![Halo Reach Game Loop Advances in RealTime Rendering in Games Halo Reach Game Loop Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-52.jpg)
Halo Reach Game Loop Advances in Real-Time Rendering in Games
![Halo Reach Game Loop Coarsegrain parallelism System on a thread Advances in Halo Reach Game Loop • Coarse-grain parallelism – System on a thread Advances in](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-53.jpg)
Halo Reach Game Loop • Coarse-grain parallelism – System on a thread Advances in Real-Time Rendering in Games
![Halo Reach Game Loop Coarsegrain parallelism System on a thread Explicit Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-54.jpg)
Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit synchronization through state mirroring Advances in Real-Time Rendering in Games
![Halo Reach Game Loop Coarsegrain parallelism System on a thread Explicit Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-55.jpg)
Halo Reach Game Loop • Coarse-grain parallelism – System on a thread • Explicit synchronization through state mirroring • Mostly manual load-balancing Advances in Real-Time Rendering in Games
![Halo Reach Game Loop HW Thread 0 Simulation loop 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-56.jpg)
Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread 1 Job kernel HW Thread 2 Render loop @ 30 hz HW Thread 3 Audio loop HW Thread 4 Job kernel, debug logging HW Thread 5 Async tasks, I/O, misc. Advances in Real-Time Rendering in Games
![Halo Reach Game Loop HW Thread 0 Simulation loop 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-57.jpg)
Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread 1 Job kernel HW Thread 2 Render loop @ 30 hz HW Thread 3 Audio loop HW Thread 4 Job kernel, debug logging HW Thread 5 Async tasks, I/O, misc. Advances in Real-Time Rendering in Games
![Halo Reach Game Loop HW Thread 0 Simulation loop 30 hz HW Thread Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-58.jpg)
Halo Reach Game Loop HW Thread 0 Simulation loop @ 30 hz HW Thread 1 Job kernel HW Thread 2 Render loop @ 30 hz HW Thread 3 Audio loop HW Thread 4 Job kernel, debug logging HW Thread 5 Async tasks, I/O, misc. Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 Simulation loop 75 100 HW Thread Halo Reach: Simulation Thread (MP) HW Thread 0 Simulation loop: 75 -100% HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-59.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 Object Update loop 75 100 Simulation Halo Reach: Simulation Thread (MP) HW Thread 0 Object Update loop: 75 -100% Simulation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-60.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 Object Update loop: 75 -100% Simulation HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-61.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update loop: Simulation 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-62.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update loop: Simulation 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 Havok Update Obj move Object Update Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-63.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 Havok Update Obj move Object Update loop: Simulation 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Simulation Thread MP HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Simulation Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-64.jpg)
Halo Reach: Simulation Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Havok Update Obj move Object Update loop: Simulation 75 -100% Job kernel: 20 -30% frame is Render published for 70 -100% rendering loop: HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 game state mirror Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Render Thread MP HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-65.jpg)
Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Havok Update Obj move Object Update loop: Simulation 75 -100% Job kernel: 20 -30% Player. Render Viewport 1 loop: 70 -100%Player Viewport 2 HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Render Thread MP HW Thread 0 HW Thread 1 HW Thread 2 Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-66.jpg)
Halo Reach: Render Thread (MP) HW Thread 0 HW Thread 1 HW Thread 2 Havok Update Obj move Object Update loop: Simulation 75 -100% Job kernel: 20 -30% PV 1: Visib PV 1: Submission Player. Render Viewport 1 loop: PV 2: Visib PV 2: Submission Player Viewport 2 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Thread Utilization HW Thread 0 Simulation loop 75 100 utilized HW Thread Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-67.jpg)
Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread 1 Job kernel: 20 -30% utilized HW Thread 2 Render loop: 70 -100% utilized HW Thread 3 Audio loop: 50 -80% utilized HW Thread 4 Job kernel, debug logging: 20 -30% utilized HW Thread 5 Async tasks, I/O, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Halo Reach Thread Utilization HW Thread 0 Simulation loop 75 100 utilized HW Thread Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-68.jpg)
Halo Reach: Thread Utilization HW Thread 0 Simulation loop: 75 -100% utilized HW Thread 1 Job kernel: 20 -30% utilized HW Thread 2 Render loop: 70 -100% utilized HW Thread 3 Audio loop: 50 -80% utilized HW Thread 4 Job kernel, debug logging: 20 -30% utilized HW Thread 5 Async tasks, I/O, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Can We Do Better Observation 1 We dont need the entire game state Can We Do Better? • Observation #1: We don’t need the entire game state](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-69.jpg)
Can We Do Better? • Observation #1: We don’t need the entire game state for rendering Advances in Real-Time Rendering in Games
![Gamestate and Visibility In Reach game state extraction happens before we do visibility Gamestate and Visibility • In Reach, game state extraction happens before we do visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-70.jpg)
Gamestate and Visibility • In Reach, game state extraction happens before we do visibility – That’s why we have to copy the entire game state – Expensive (in ms and memory footprint) Advances in Real-Time Rendering in Games
![Reduce CPU Latency Visibility is a large chunk of CPU time on render Reduce CPU Latency • Visibility is a large chunk of CPU time on render](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-71.jpg)
Reduce CPU Latency • Visibility is a large chunk of CPU time on render thread • Yet we have CPU time is under utilized – Underutilized HW threads – And not to mention other platforms! Advances in Real-Time Rendering in Games
![Gamestate and Visibility But we can invert that operation Only copy data Gamestate and Visibility • But we can invert that operation • Only copy data](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-72.jpg)
Gamestate and Visibility • But we can invert that operation • Only copy data for visible objects out of game state – Only extract data for objects that will be rendered Advances in Real-Time Rendering in Games
![Extract Post Visibility Better Drive game extraction and processing based on results of Extract Post Visibility • Better: Drive game extraction and processing based on results of](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-73.jpg)
Extract Post Visibility • Better: Drive game extraction and processing based on results of visibility – Only extract data for visible objects (both static and dynamic) • No need to double buffer the entire game state – Only buffer game data for the per-frame transient state for visible objects – Smaller memory footprint Advances in Real-Time Rendering in Games
![Better Load Balancing Start by splitting off visibility computation into jobs per view Better Load Balancing • Start by splitting off visibility computation into jobs per view](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-74.jpg)
Better Load Balancing • Start by splitting off visibility computation into jobs per view – This includes visibility computations for player, shadow, reflection views • Visibility jobs can have viewport-to-viewport dependencies – Can reuse results of one visibility job computation as input to another Advances in Real-Time Rendering in Games
![Reducing Input Latency Stagger visibility computation at the same time as game object Reducing Input Latency • Stagger visibility computation at the same time as game object](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-75.jpg)
Reducing Input Latency • Stagger visibility computation at the same time as game object update – Start static visibility early with predictive camera early in the frame – Start this before we do object update Advances in Real-Time Rendering in Games
![Improve CPU Latency Run expensive CPU render operations for visible objects only Improve CPU Latency • Run expensive CPU render operations for visible objects only –](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-76.jpg)
Improve CPU Latency • Run expensive CPU render operations for visible objects only – Just make sure to run this after visibility – These would be render-only operations (skinning, cloth sim, polygon sorting) – they do not affect game play Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Simulation loop 75 100 HW Thread 1 An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-77.jpg)
An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Predict camera envelope Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Simulation loop 75 100 HW Thread 1 An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-78.jpg)
An Improved Game Loop HW Thread 0 Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Determine render views next Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-79.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 HW Thread 3 HW Thread 4 HW Thread 5 Start static objects’ (environment) visibility and broadphase dynamic Render loop: 70 -100% objects visibility for render views as jobs on available threads: Audio loop: 50 -80% player, shadows, etc. Job kernel, debug logging: 20 -30% Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-80.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Execute object update jobs Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-81.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 HW Thread 3 HW Thread 4 HW Thread 5 Run render prepare for static environment Render loop: 70 -100% rendering jobs (bake precompiled Audio loop: 50 -80% command buffers, etc. ) Job kernel, debug logging: 20 -30% Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-82.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% Finalize camera (poll input) HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-83.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Compute narrow phase dynamic objects visibility (as jobs) Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-84.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Preparing visible dynamic objects and extracting game state data for them (in jobs) Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-85.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Execute final prepare jobs to finalizeloop: frame packet data Audio 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![An Improved Game Loop HW Thread 0 Object UpdateMove Simulation loop 75 100 HW An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-86.jpg)
An Improved Game Loop HW Thread 0 Object Update/Move Simulation loop: 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 Audio loop: 50 -80% HW Thread 4 Job kernel, debug logging: 20 -30% HW Thread 5 Publish the frame for rendering Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Streamlined Submission Thread HW Thread 0 Havok Update Obj move Object Update loop Simulation Streamlined Submission Thread HW Thread 0 Havok Update Obj move Object Update loop: Simulation](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-87.jpg)
Streamlined Submission Thread HW Thread 0 Havok Update Obj move Object Update loop: Simulation 75 -100% HW Thread 1 Job kernel: 20 -30% HW Thread 2 Render loop: 70 -100% HW Thread 3 HW Thread 4 HW Thread 5 Audio loop: submission 50 -80% job Render Job kernel, debug logging: 20 -30% Async tasks, socket polling, misc: 10 -30% with bursts of 100% utilization Advances in Real-Time Rendering in Games
![Benefits Decouple gamestate traversal from drawing Better CPU utilization with staggered visibility Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-88.jpg)
Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility computation – Earlier results for each frame mean reduced input latency Advances in Real-Time Rendering in Games
![Benefits Decouple gamestate traversal from drawing Better CPU utilization with staggered visibility Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-89.jpg)
Benefits • Decouple game-state traversal from drawing • Better CPU utilization with staggered visibility computation • Render thread becomes a streamlined kernel processor Advances in Real-Time Rendering in Games
![A Simple Little Job Tree Advances in RealTime Rendering in Games A Simple Little Job Tree Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-90.jpg)
A Simple Little Job Tree Advances in Real-Time Rendering in Games
![Future Work Predict dynamic objects visibility with temporal bounding volume Fixup after Future Work • Predict dynamic objects visibility with temporal bounding volume • Fixup after](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-91.jpg)
Future Work • Predict dynamic objects visibility with temporal bounding volume • Fixup after final camera and object positions are known Advances in Real-Time Rendering in Games
![Advances in RealTime Rendering in Games Advances in Real-Time Rendering in Games](https://slidetodoc.com/presentation_image/4f45b735557215eb9e53f0858e86695f/image-92.jpg)
Advances in Real-Time Rendering in Games
Advances in real-time rendering in games
Rendering realtime compositing
Rendering realtime compositing
Slides
Game rendering techniques
Outdoor games and indoor games
Hunger games chapter 21 questions and answers
Advances in memory technology
Advances in technology during wwii
Opto-electronic advances
Chapter 9 intellectual development in the first year
Classification of advances as per rbi
Recent advances in dental ceramics
Axis powers
Coherent scattering
Lurbinectedin posologie
Loans and advances in tally
Short term loans and advances
What is game sense in video games
Alyac realtime service
Rational rose realtime
Realtime it
Realtime communications
Firebase realtime database push notification
Realtime media
Realtime mobile communication
Realtime
Okolm
Lightning realtime
Frankfurt realtime
Ams realtime weather maps central
Asiaplus realtime
Realtime it
Realtime streaming protocol
Realtime iep
Rto real time optimization
Realtime big data
Simple online and realtime tracking
Real time system definition
Realtime interaction
Realtime etl
Cac realtime
Curis realtime
Real time messaging protocol
Realtime diagnostics
Ad hoc realtime
Real time characteristics of embedded operating systems
Realtime it
Gullistan carpet
Realtime networks
Cos realtime
Realtime forex
Real time interaction management forrester wave
Rendering pipeline
Image-based modeling and rendering
Kajiya rendering equation
Rendering equation
Clustered shading
Christopher buehler
Vray render elements compositing photoshop
Rendering
Forma urbis
David rosen sega
Car paint rendering
Bunkasha games
Multipass rendering
Lumigraph rendering
Maya rendering with aneka
Indirect volume rendering
Wireframe techniques
Teknik bayangan adalah
Real time rendering architecture
Hair rendering
Teknik rendering grafik tiga dimensi dengan interaksi sinar
Rendering fur with three dimensional textures
Windowscolorsystem
Reyes rendering
Computer graphics pipeline
Diffuse rendering
What is vtk
Eurographics symposium on rendering
Direct volume rendering ray casting
Splat rendering
Hanspeter pfister
Radiosity rendering
Graphics rendering
Light transport
Photorealistic rendering carlsbad
Jerry tessendorf
Solid edge rendering
Distributed rendering blender
Radiosity rendering
Guillaume fenelon