User:Jwilcox0212/sandbox/DirectX Raytracing

From Wikipedia, the free encyclopedia

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.[1][2]

Additions to DirectX 12[edit]

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

  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.[3]

How it Works[edit]

Example of a scene rendered using raytracing

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[edit]

The current game engines that support DXR are:[2]

Only 14 video games currently use DXR, which include:[4]

Updates[edit]

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[edit]

  1. ^ a b "DirectX Raytracing and the Windows 10 October 2018 Update". DirectX Developer Blog. 2018-10-02. Retrieved 2020-10-27.
  2. ^ a b c d "Announcing Microsoft DirectX Raytracing!". DirectX Developer Blog. 2018-03-19. Retrieved 2020-10-27.
  3. ^ stevewhims. "Managing Graphics Pipeline State in Direct3D 12 - Win32 apps". docs.microsoft.com. Retrieved 2020-11-16.
  4. ^ 50 Games with RTX and DLSS - IGN, retrieved 2020-10-27
  5. ^ "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.
  6. ^ "DirectX Raytracing (DXR) Tier 1.1". DirectX Developer Blog. 2019-11-06. Retrieved 2020-10-27.