AMD has published a new Direct3D 11 code sample that shows tiled lighting culling in action. Binaries and source code are provided as well as a PDF-doc.
This sample provides an example implementation of two tile-based light culling methods: Forward+ (or Tiled Forward) and Tiled Deferred. Both methods support high numbers of dynamic lights while maintaining performance. They utilize a Direct3D 11 compute shader (DirectCompute 5.0) to divide the screen into tiles and quickly cull lights against those tiles. For Forward+, the resulting per-tile light lists are written out to a buffer for the forward pixel shader to use when lighting. For Tiled Deferred, lighting is done in the same compute shader that performs light culling.
In addition to non-shadow-casting point lights that are typically seen in tile-based light culling demos, this sample supports non-shadow-casting spot lights, as well as shadow-casting lights (point and spot). Moreover, it extends tiled light culling to work with alpha-blended geometry. It can also spawn virtual point lights (VPLs) to approximate one-bounce global illumination, as seen in AMD’s Leo Demo.
You can download the TiledLighting11 v1.0 code sample HERE.
In AMD’s demo, the size of a tile is 16×16 pixels.
Source: Geeks3D forum
One thought on “AMD Tiled Lighting Direct3D 11 Demo”
Some quick notes about the demo:
1. If the demo is getting stuck while pre-compiling the shaders (yellow text scrolling over the screen at the start), try moving the directory of the executable to the root folder of one of your drives (e.g. C:\). It seems some of the files generated in the pre-compiling step have too long file names. That way I got the demo running.
2. If the demo leads to GPU watchdog timeouts and you are using an Nvidia card with the 314.22 driver, try the 320.49 driver. That solved the issues with the deferred renderer for me.
3. The demo automatically runs on the highest MSAA level. Keep that in mind when you are comparing the performance of the two techniques.
I hope that helped someone. Cheers!
Comments are closed.