DirectX Raytracing
DirectX Raytracing (DXR) is a feature introduced in Microsoft's DirectX 12 application programming interface (API) that implements ray tracing, for video graphic rendering. DXR was released with the Windows 10 October update (version 1809) on October 10th, 2018. It requires an AMD Radeon RX 6000 or NVIDIA RTX GTX 10 Series 20- or 30-series video card, which is designed to handle the high computing load used for ray tracing. DXR is currently the only method available to the public that can enable real-time ray tracing on computers.[1][2]
Additions to DirectX 12
With the introduction of DXR in October, four new features were added to the DirectX 12 API:[2]
- Acceleration structure is a representation of the 3D environment that is efficiently formatted for the GPU. This environment is the plane that is used to create the starting points. The structure allows for modifications to be made and has optimized ray traversal.
- The command list DispatchRays, is the start of the rays that are used to generate the reflection graphics. These are used by the GPU to begin the raytracing process.
- New HLSL shaders, ray-generation, closest-hit, any hit, and miss , that are used describe computationally what DXR is doing when rendering raytracing. These shaders utilize the TraceRay function in HLSL to trace rays in the environment. When the ray interacts with the generated plane it can call on one of many selected hit or miss shaders. The variation of hit and miss shaders creates different textures.
- Raytracing pipeline state, a counterpart to the current Graphics and Compute pipeline state objects. Pipeline state objects are hardware settings that determine how the GPU interprets and renders information.[3]
Technical details
DXR starts by sending out a ray from each pixel on a given plane and calculates which objects on the plane are hit by the ray first. Next, the DXR algorithm estimates the amount of light where the ray intersects the object and attaches that calculation to the object. Objects can have different properties that will absorb or reflect light at different rates. To stop infinite bounces of a ray from happening, DXR will stop calculations after a certain amount of intersections. Rays that never interact with an object are tracked for how far they have gone. This is so the algorithm understands when rays have gone too far.[2]
Gaming
The current game engines that support DXR are:[2]
Only 14 video games currently use DXR, which include:[4]
- Amid Evil
- Battlefield 5
- Bright Memory
- Call of Duty: Modern Warfare
- Control
- Deliver Us the Moon
- Fortnite
- MechWarrior 5: Mercenaries
- Metro Exodus
- Minecraft
- Quake II RTX
- Shadow of the Tomb Raider
- Stay in the Light
- Wolfenstein: Youngblood
- Cyberpunk 2077
Updates
DXR was released to the public on October 10th, 2018 with the Windows 10 October update (version 1809).[1]
The first major update was made to DXR on May 27th, 2020 with the Windows 10 May update (version 2004). The May update implemented DXR Tier 1.1, which allows game engines to make real time calculations which makes the raytracing graphics faster and more efficient.[5][6]
References
- "DirectX Raytracing and the Windows 10 October 2018 Update". DirectX Developer Blog. 2018-10-02. Retrieved 2020-10-27.
- "Announcing Microsoft DirectX Raytracing!". DirectX Developer Blog. 2018-03-19. Retrieved 2020-10-27.
- stevewhims. "Managing Graphics Pipeline State in Direct3D 12 - Win32 apps". docs.microsoft.com. Retrieved 2020-11-16.
- 50 Games with RTX and DLSS - IGN, retrieved 2020-10-27
- "Windows 10 May 2020 v2004 20H1 Feature Update Packs DirectX 12 Ultimate, Improved Ray Tracing Support, DirectX Mesh Shader And Many Other Features For PC Gaming". Appuals.com. 2020-05-12. Retrieved 2020-10-27.
- "DirectX Raytracing (DXR) Tier 1.1". DirectX Developer Blog. 2019-11-06. Retrieved 2020-10-27.