Share on facebook
Share on twitter
Share on linkedin
Share on reddit
Share on email

ShadowFX Effect Library for DirectX 12

Today, we are excited to announce that we are releasing an update for ShadowFX that adds support for DirectX® 12.


Different shadowing modes

  • Union of multiple light sources
  • Weighted average of multiple light sources
  • Cascaded shadow maps
  • Cube shadow maps

Different filtering modes

  • Percentage Closer Filtering
  • Contact Hardening Shadows

Different shadow map sampling modes

  • Box sampling
  • Poisson sampling

Considerations when integrating ShadowFX

As with the DirectX 11 version, integrating ShadowFX into an existing DirectX 12 renderer is simple. The usage of the library changed very little in comparison to DirectX 11.

State handling

The user has to be aware that the library binds its own Pipeline State Object (PSO) and Shader Resources Descriptor Heap (SRD Heap). The library does not save and restore states as in DirectX 11. After calling the library the PSO and SRD heap need to be explicitly reset.

Constant buffers

For maximum efficiency the library does not automatically rename constant buffers. At initialization, the user has to provide the maximum number of instances that can potentially execute in parallel. The library uses this information to determine the amount of memory that needs to be allocated for constant buffers. Every time the library gets called the user provides an instance ID and the library uses this ID to read from the right constant buffer.

Sample and More Info

The ShadowFX12 sample on GitHub demonstrates how to use this new version of ShadowFX. Additional information can be found in the ShadowFX page.

Latest news

You may also like...

Developer guides

Browse our developer guides, and find valuable advice on developing with AMD hardware, ray tracing, Vulkan, DirectX, UE4, and lots more.

Some light reading to take away with you. Our presentations, ISAs, manuals, whitepapers, and many more.

Explore our huge collection of detailed tutorials, sample code, presentations, and documentation to find your answers to your graphics development questions.

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.