Microsoft's DirectX Raytracing API Makes Photorealism Easier

Microsoft just released the Windows 10 October update, and with it comes the beginning of a new era of graphics rendering. The new version of windows includes the first public release of Microsoft’s ray-tracing API, DirectX Raytracing. In September, Nvidia released the first RTX graphics cards that support real-time ray tracing. For more background, see our What is Ray Tracing and Why Do You Want it in Your GPU? feature. Now, developers have the tools they need to make use of Nvidia’s new technology.

Microsoft first revealed DirectX Raytracing (DXR) in March, long before Nvidia revealed its Turing architecture with real-time tracing support, but developers weren’t shy to adopt the new API. Microsoft was already working with a handful of partners, including EA Frostbite, EA SEED, UL (Futuremark at the time), Unity, and Unreal Engine. The company also opened the doors for developers to request an experimental build of the API to get a head start with the new technology, and many signed up. Indeed, Microsoft said that “DXR is one of the fastest adopted features that [it has] released in recent years.”

NOw, with Nvidia’s first round of RTX hardware now on the market and DirectX Raytracing support baked into Windows 10, developers have even more reason to take an interest in ray-tracing technology.

Making Adoption Easy

Microsoft’s new DXR API is an extension of the company’s existing DirectX 12 API, which should make it easy for developers to adopt. DXR introduces four new features that enable game builders to implement ray tracing into their upcoming and existing games.

The acceleration structure represents a full 3D environment as a single object that enables the GPU to efficiently calculate the trajectory of light rays and where they bounce.

The new DispatchRays command sets the point of origin for light rays entering the scene and submits the workload to the GPU.

The DXR API introduces ray-generation, closest-hit, any-hit, and miss shaders, which enable a game developer to assign unique sets of shaders and textures for each object that react to different lighting conditions.

The DXR API also introduces the raytracing pipeline state, which keeps raytracing workloads segregated from the graphics and compute pipeline, without requiring an entire raytracing engine. Microsoft designed DXR as a compute-like workload so that it can send raytracing data in sealed packages down either pipeline.

Transitioning from Rasterization to Raytracing

The new DXR features work side-by-side with existing rasterization techniques, which allows developers to implement ray tracing features without abandoning existing code. Developers can also choose which features are right for their games and implement the ones that work. Battlefield V will include ray-traced reflections, Shadow of the Tomb Raider will have ray-traced shadows, and Metro Exodus will use global illumination and ambient occlusion, but none of them will support all three features.

The ability to pick and choose features that work for particular engines and titles should coax developers to support ray tracing sooner rather than later.

Easier for Developers

Ray tracing enables lifelike lighting and shadows that make rendered graphics appear much more realistic. But more importantly, ray-traced lighting and shadows are easier for game developers to implement once the groundwork is in place.

With existing lighting techniques in rasterized graphics, a 3D artist must manually introduce custom lightmaps, shadow maps, and ambient occlusion maps for each asset in a game. With raytracing enabled, most of that work is done automatically as a natural reaction to using physics-based lighting.

DXR Isn't Married to RTX

Microsoft’s new DirectX Raytracing API is a big step towards the photorealistic real-time graphics that we’ve been dreaming of for decades. It gives developers a standardized toolset to work with, which they can use to create the most realistic graphics ever produced.

Currently, Nvidia’s the only game in town with hardware that supports real-time ray tracing, but Microsoft’s API is not married to Nvidia’s RTX technology. Like all Direct X APIs, DirectX Raytracing is hardware agnostic, which means that when new GPUs hit the market from the likes of AMD and eventually Intel, they should be compatible with DXR as well.

Available Now

Microsoft’s DirectX Raytracing is baked right into the latest version of Windows 10, which launched on October 2 with the Windows 10 October Update. The new version of Windows is rolling out in a staggered release schedule, which means you could have the update now, or could get it within the next week or so. If you want to beat the queue, check out our guide to getting the update now. Just don't expect to be playing any ray-traced games in the short-term future, as none seem to be on offer just yet. But we have a feeling that will change fairly soon.

 Kevin Carbotte is a contributing writer for Tom's Hardware who primarily covers VR and AR hardware. He has been writing for us for more than four years. 

  • robax91
    "likes of ADM and eventually Intel" did you mean AMD?
    Reply
  • Warsaw
    ADM and Intel? To whom is this competitor of Intel? ;)
    Reply
  • islandwalker
    Thanks ROBAX91. Fixed.
    Reply
  • comedichistorian
    What the hell are they trying to show me in that Battlefield V shot exactly? That Raytracing adds flames? I'm probably missing something obvious like usual so please school me lol
    Reply
  • bit_user
    21373286 said:
    What the hell are they trying to show me in that Battlefield V shot exactly?
    This is a still frame that's taken from a video you can find on Youtube. The flames are actually seen in the reflection off a car's body.


    If you watch the whole video, I think they might be trying to tell FPS players that they can gain an advantage with ray tracing, by being able to see behind them or around corners, off the reflection of objects, puddles, windows, (eyeballs ;-) etc.

    Traditional rasterization can do reflections, but not accurate ones. In raytracing, the easiest way to do reflections is also the accurate way.

    Also, I just found this official narrated version that breaks it down and shows effects in the original you might've missed.

    Reply
  • mitch074
    Funny how everybody is on dxrt when AMD's open source RT technology, ProRender Radeon Rays, has been out for 6 months...
    I wonder how funny it would be if, right after a DXRT title comes out, it turns out to be available and enabled on Vega!
    Reply
  • bit_user
    21373591 said:
    Funny how everybody is on dxrt when AMD's open source RT technology, ProRender Radeon Rays, has been out for 6 months...
    They're different animals. Rays is equivalent to Nvidia's OptiX - they're for CG artists and other professional applications.

    The main difference is that DXRT is designed for realtime rendering of dynamic environments - very different than what Rays and OptiX is designed for. One of the main issues is in how quickly the scene graph can be updated, from one frame to the next. For non-realtime purposes, the scene graph can be static and relatively more expensive to build, but must scale to far more complex geometry. For realtime, you can optimize around simpler scenes, but it's got to be much lower overhead.

    21373591 said:
    I wonder how funny it would be if, right after a DXRT title comes out, it turns out to be available and enabled on Vega!
    Yeah, it would be ironic if DXRT actually came from Team Red, while everyone just assumed it was Nvidia pushing for it. But, if you search on linked-in to find the current employer of notable academics and researchers behind ray tracing, you'll find they're all now working for Nvidia.

    I think it's safe to say AMD was caught off-guard. It probably won't be until at least Arcturus that they can respond with any sort of comparable hardware acceleration. Until they do, enabling ray tracing on AMD hardware will probably be a performance killer.
    Reply
  • rantoc
    Raytracing will be a perf killer no matter what but with dedicated hardware it will be far more efficient. We will likely have a hybrid ray/raster for quite some time due to that but i'm happy someone took the bold step forward. In retrospect it kinda reminds me from going from basic textures to shaded, that step introduced way better gfx but was a performance killer in the beginning... today it's used _everywhere_ in real time. It will be the same for raytracing in due time so be happy someone took a real step forward rather than just become better at whats already present.
    Reply
  • Gilles_2
    well AMD can do RT with GCN, but power used for RT won't be available for rasterization, unlike nvidia which made a special part of the chip just for RT
    now if AMD goes big with 7nm GPU they could do it and don't care, letting user choose how much they want to allow for RT
    Reply
  • nufelevas
    I do not nottice ray tracing in REAL LIFE. Why I should pay a fortune to have it in games?

    Games need much better physics. Destructable environments, movable objects, persistent world madifications made by the user, so te player can leave a mark on the world, and use it to his advantage.

    Raytracing is far beyond the level of graphic detail I can notice or care.
    Reply