Snapshots Just 4 You
sshot1911759255.jpg
Home CGT Year 4 (2008-09) SS Honours Project
Money mouth Editor pick!: Project of the Year

The research has been carried on during my Honours year. The research addresses an interesting problem in modern game applications regarding to real-time rendering, where a game scene is detailed with large number of various kinds of objects.

According to this, the research has been experimented into many optimization strategies in order to maximize the GPU utilization. We mainly explore the system limitations and try to improve bottlenecks by implementing the best combination of acceleration algorithms and the new features introducing in DirectX 10 rendering technologies.

While carefully monitoring with a couple of proper Profilers, together with the optimal usages of Skinned Instancing, Geometry Shaders, Scene managements and etc., finally, we manage to render more than 300,000 animating objects on the scene at 30 fps.

The development roadmap has been recorded in the Honours project blog. Or you can continue reading on this topic for the project summary and showcase.

Developing the application, help me understand the graphic pipeline and how to use the tools to analyse and find out where is the system bottleneck. Once we defined the hot-spot, various rendering techniques have been experimented, mix and match in order to suppress the bottleneck and balance the system,

Considering "Geometry instancing" as the primary rendering techniques. By using the latest DirectX API, DirectX10 has embedded this feature to make it work faster than the previous version. The concept of Geometry instance is to reduce the number of CPU draw calls which yield out as better GPU utilization.

"Rain particles" Animation has been created using the Geometry Shader and GPU double-buffering. The technique shows that we can move some systems to be processed under GPU with minimal CPU involvement.

We also addressed the problem when GPU become bottleneck of the system. Using NVPerfHUD we spotted that too many unnecessary vertices has been pass to the GPU. This happened because full detailed meshes are rendered even when they are at far distance,
Implementing LOD system and replace distance objects with alternative representation, such as Low-poly mesh and imposter can help reduce a huge number of proceed vertices while the visual quality still maintain

Selecting the proper scene management is not only help we increased the number of renderable objects on the scene, it also helping us balance the system. Note that the naive implementation is lead to over -complication, which could turn CPU back to the system bottleneck.

General acceleration data sructure also has been carefully implemented. STL Hash-map and some LUTs have to use a quick reference in various place in the application

learning outcome

  • Explore DirectX10 API and its new features
  • Understand the Shader Model 4.0, and NVIDIA 8800 GPU Pipeline architecture
  • Learn how to use some Performance tools to analyse the application, in order to find the system bottlenecks
  • NVIDIA NVPerfHUD and Intel VTUNE Analyser
  • Understand how to use "Geometry Instancing" to optimize the rendering dataflow
  • Understand the underlying concept of GPU streaming data and GPU resources
  • Have to use Geometry Shader to create an GPU animation system (particle base movement)
  • Learn Scene management techniques, Quadtree implemetation
  • Learn to implement LOD system
  • Use Geoposters and Imposters for distanced geometry replacement

Application specification

NAME : DirectX10 Performance Demo
HARDWARE : NVdia 8800GT 512 MB, Intel Dual-Cores processor and 4GB RAM
PLATFORM : Windows VISTA
DEV ENVIRONMENT
: Visual C++ 2005, DirectX10
CONTROL : PC Standard

ScreenShots (20 Mar 2009)


Please find more pictures at the Honours project section.

Videos

  • 100,000 Animating Soldiers, 100,000 GPU Rain Particles and 100,000 Animating Grass Billboards (updated 31 Mar 09)
  • 100,000 Animating Soldiers, 100,000 GPU Rain Particles and Grass Billboards (updated 20 Mar 09)
  • 150k Static ArmyMen under the Rain (updated 09 Mar 2009)

Get the Flash Player to see this player.

 


Last Updated (Friday, 16 July 2010 20:16)

 
Source Supplyment
Additional CV support materials. Any projects source files can be supplied as requested.
Please contact