User:Jwilcox0212/sandbox/DirectX Raytracing

DirectX Raytracing (DXR) is a feature included in Microsoft's DirectX 12 application programming interface (API) that implements raytracing, for video graphic rendering. Raytracing is a processing method for 3D computer graphics, that works by tracking rays from the viewers perspective onto a rendered plane then calculating the values and paths of each ray to create realistic textures. Microsoft DirectX is a collection of computer programs that are used to compute multimedia operations, such as audio and video rendering. DXR was released with the Windows 10 October update (version 1809) on October 10th, 2018. DXR only works on computers that have an AMD Radeon RX 6000 or NVIDIA RTX 20 and 30 series graphics cards (GPU), which were designed to handle the high computing load used for raytracing. DXR is currently the only method available to the public that can enable raytracing on computers.

Additions to DirectX 12
With the introduction of DXR in October, four new features were added to the DirectX 12 API:


 * 1) 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.
 * 2) 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.
 * 3) 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.
 * 4) 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.

How it Works
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.

Gaming
The current game engines that support DXR are:


 * Frostbite
 * SEED (Electronic Arts)
 * Unreal Engine
 * 3DMark
 * Unity Engine

Only 14 video games currently use DXR, which include:


 * Amid Evil
 * Battlefield 5
 * Bright Memory
 * Call of Duty: Modern Warfare
 * Control
 * Deliver Us the Moon
 * Fortnite
 * MechWarrior 5: Mercenaries
 * Metro Exodus
 * Minecraft
 * Quake 2 RTX
 * Shadow of the Tomb Raider
 * Stay in the Light
 * Wolfenstein: Youngblood

Updates
DXR was released to the public on October 10th, 2018 with the Windows 10 October update (version 1809).

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.