The Technology Behinds AMD's Demo


Why forward rendering:
Complex material
multiple light type
support hw AA
efficient memory usage
support transparency
but... can't support large num. lights

forward+ render
add computer shader for light culling, modify main light loop
omni. spot, cinematic , BRDF
simple design

DX11 feature
Compute shaders
UAV support
Compute shaders used in Leo demo
1. culling shader
2. virtual point lights

UAVs
array of scene light information
array of u32 light indices for storing
array of material


Algos:
1. depth prepass
2. light culling
   - screen divided into tiles, launch shader per tile
   - screen space tile, screen depth
3. rScne material
    -  use screen x, y to deter tileID
4. Material shader
    - divide what to do with incoming lighting
   - passed into BRDF
   - light accumulation

Depth prepass critical
-pixel overdraw use pre pass depth to avoid.

Result:

(H/L): (High/Low memory usage)

Comments

Popular posts from this blog

Drawing textured cube with Vulkan on Android

glTF loader for Android Vulkan

C++ unit testing & CI integration in GitHub (I/2)