Microsoft's DirectX Raytracing API Makes Photorealism Easier For Developers

comedichistorian

Distinguished
Jun 26, 2010
39
9
18,535
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
 

bit_user

Titan
Ambassador

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.

[video="https://www.youtube.com/watch?v=rpUm0N4Hsd8"][/video]

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.

[video="https://www.youtube.com/watch?v=WoQr0k2IA9A"][/video]
 
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!
 

bit_user

Titan
Ambassador

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.


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.
 

rantoc

Distinguished
Dec 17, 2009
1,859
1
19,780
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.
 

Gilles_2

Commendable
Aug 10, 2016
31
0
1,530
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
 
Oct 4, 2018
28
2
35
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.
 

Jim90

Distinguished
- Ray tracing: accurately simulating the natural behaviour of light and its effects on a scene



- Houston, we have a problem.
 

Olle P

Distinguished
Apr 7, 2010
720
61
19,090
...The new DXR features work side-by-side with existing rasterization techniques, which allows developers to implement ray tracing features without abandoning existing code. ...
- - -
... ray-traced lighting and shadows are easier for game developers to implement...
Yes, it's easy to implement onto existing code, and even to code instead of rasterization.
Still, the developers need to either code for RT in addition to the traditional rasterization, meaning extra work required, or they must require the user to have hardware that has no problems handling the RT code.

Fake reflections has been the norm for a long period.
In Battlefield V it seems the developers has chosen to do less work than normal on this aspect of the game, effectively providing a sub-par graphics quality for players not using RT.
Seems from the BF/RT demo like the reflections are worse than those present in the somewhat dated 3DMark 2001 (starting at 2:13):
[video="https://www.youtube.com/watch?v=yg7Vk4b0Ook?"][/video]
 

bit_user

Titan
Ambassador

Sure, it looks good. But you have to understand what they're doing. They're likely using multi-pass rendering, and it only works on that singular, planar surface. The amount of work scales with each additional surface you add.

https://www.opengl.org/archives/resources/code/samples/sig99/advanced99/notes/node162.html

If you sacrifice accuracy (or have curved surfaces), then you pick one point to render an environment map and your shader can index into that. This is what people usually do, but the reflections are toned down to make it less likely that you notice the errors.

https://en.wikipedia.org/wiki/Reflection_mapping
 


From what I could find about FireRays, it is set to work on VR environments too - if that's not dynamic, I wonder what is. But, I guess the fact it works on Vulkan with a strong accent upon async compute efficiency made it a big no-no for Nvidia who decided to support the proprietary DXRT API instead and put a lot of pressure on developers to support the latter.
The fact that FireRays could actually use an APU's GPU core for RT through OpenCL to improve RT rendering in parallel with a rasterizer (like a discrete APU) is probably another reason why Nvidia supports DXRT only - imagine doing RT on a Vega 11 while rasterizing on a GTX1070ti and reaching the performance of a RTX2070 ! Would you still buy the 2070?

But, since there is no content at all on any API that supports real time ray tracing, we still have no way to see what the point of that technology is in real life.
 

bit_user

Titan
Ambassador

Rays seems to be the low-level API that can be used in both ProRender and Vulkan. They announced a Vulkan integration at GDC, in March, but noted that it wasn't yet shipping.

The performance data they provided is ~300 MRays/s for moderate scenes, though I don't know if that's comparable to the way Nvidia measures Gigarays/sec of their RTX GPUs. Elsewhere, AMD mentions a 10x improvement over CPU-based ray tracing, making it seem likely they're not in the same ballpark as Nvidia. This is hardly surprising, when you're comparing a software solution to purpose-built hardware.


DXRT is MS' API. So, it's not proprietary to Nvidia.

Nvidia also announced Vulkan extensions, though it's likely that both AMD and Nvidia's are vendor-specific extensions.


Except that ray tracing is the hard part. You won't get satisfactory performance on an APU.
 

Olle P

Distinguished
Apr 7, 2010
720
61
19,090
Even if reflections usually are being toned down, it seems like in BFV they've been just about eliminated!
My hunch is that it's done to make RTX more appealing while also cutting the time used coding for rasterized reflections.

The example benchmark ran well on a GeForce 2GTS, and I'm pretty sure that most of today's GPUs perform better than that...