Microsoft has announced a new API for DX12 with Windows 10 which allows developers to now use ray tracing to render images.
It is a set of new HLSL shader types including ray-generation, closest-hit, any-hit, and miss shaders. These specify what the DXR workload actually does computationally.
When DispatchRays is called, the ray-generation shader runs. Using the new TraceRayintrinsic function in HLSL, the ray generation shader causes rays to be traced into the scene.
Depending on where the ray goes in the scene, one of several hit or miss shaders may be invoked at the point of intersection. This allows a game to assign each object its own set of shaders and textures, resulting in a unique material.
You may have noticed that DXR does not introduce a new GPU engine to go alongside DX12’s existing Graphics and Compute engines. This is intentional – DXR workloads can be run on either of DX12’s existing engines Ray tracing is a simple compute workload.
Microsoft PIX has steep system requirements.
Recommended for best results when using PIX on Windows:
- Windows 10 build 15063 (Creators Update, aka RS2) with latest updates
- 32 GB RAM
- A Direct3D 12 GPU with the latest available graphics drivers
- AMD driver >= 126.96.36.199 (17.5.1)
- Intel driver >= 188.8.131.5264
- NVIDIA 970 or better with driver >= 378.92 (184.108.40.20692). Note that NVIDIA’s support for GPU shader instruction disassembly requires a DLL. Please use this link to get the DLL.
- Windows 10 build 10586 (November Update, aka TH2)
- x64 processor architecture
- A Direct3D 12 GPU of any feature level
The PIX package has a lot of new potential for game developers.
PIX can be downloaded from MSDN here. PIX is still under active development and it should become mature by the end of 2018.
Generally PIX is intended as one of several tools needed for AAA game development. PIX can import most 3D artwork from Maya, 3D Studio etc easily and the shaders can be used with most major enginesor it can be used with a custom job too.
Pix makes it easier to make coding the shaders relative to the scene in any type of game environment.