Raytracing was merged into Dev-Rendering!

Has anyone managed to run this on a 10 series GPU? I have a 1080Ti, managed to build the rendering branch, have the latest Win10 and nVidia drivers, enabled skin cache and ray tracing in the project settings and added the “-dx12 -raytracing” parameter in the shortcut, but not a single one of the “r.RayTracing.*” console variables seem to have any effect on my test project. I don’t care about performance right now, i just want to test it for myself.

This post from Epic staff tells that it needs an RTX card:
https://forums.unrealengine.com/deve…74#post1567574

For this to work with any non-RTX card, the card vendor needs to add driver support feature to comply with DXR. The implementation Epic does comply with DXR, not specifically with NVidia RTX cards, so if vendors does not add support you won’t see this working.

I’m not sure if I’m understanding… Is it really a driver support issue? I’m asking this because I’ve seen many people being able to run raytraced applications (like the recent Battlefield V update, after enabling it manually via console) on 10 series cards, even though with bad framerates…

I don’t know what Battlefield V does, hard to tell if they are using DXR or using some NVidia API directly. This would be better answered by @YuriyODonnell in this case. Know that one thing is how a game does things, since they don’t need to code to coexist with other platforms as Unreal Engine does and also, the UE 4.22 is still under heavy construction.

I’m still not clear on whether dev-rendering is DXR or RTX.

DXR is a DirectX layer that talks to RTX for you. That’s what Battlefield V uses and it’s smart enough to recompile to work on 10x0 cards.

However in the examples of raytracing in UE it looks like what Epic does is a lot more low level than DXR, but I could be wrong.

RTX is the Nvidia standard I think and DXR is definitely the Microsoft standard. Neither are platform agnostic so I don’t expect long-term support for them in UE, but I don’t know what would replace them. DXR will work right across supported cards on Windows though, whereas RTX will only work on Nvidia cards (I think). Not that there’s any AMD raytracing cards yet that I know of.

In theory, following Microsoft’s papers about DXR is that it is like a Compute workload, so in theory it can run in common graphics cards. For Raytracing to be platform agnostic it should be mapped to a lower level API like Vulkan. NVidia already made available Vulkan for this with their driver 411.63 as found in Turing Extensions for Vulkan and OpenGL | NVIDIA Developer

Note that doing this in a hardware which does not have RT cores will not only be slow, but will also limit the resources on GPU for other common things, since a big deal of cores will be used for computing workload instead, not to mention VRAM. I think even AMD Rays is based on Vulkan, but I didn’t have time to dig.

Excuse me, will we get GI, translucent, HISM support in 4.22? It seems that none of this has been supported, only GI has been seen in path tracing.

So won’t the landform system be supported at 4.22?

Will raytraced shadows work with the forward rendering path, or does it not matter?

(Asking due to future VR interest. Internal product viewer, not a published game.)

Please archviz and glas material test please

I don’t see why not as the event of a ray intersecting a polygon causes its shader to be run. In fact it’s a lot more like forward rendering than deferred in that aspect.

It’s probably not supported just *yet *though.

Unreal Engine uses the official public Microsoft DirectX12 ray tracing API, also known as DXR: https://blogs.msdn.microsoft.com/dir…ctx-raytracing.

RTX is a marketing name used by NVIDIA for their Turing architecture GPUs. It is not an API or a specification as such, therefore applications can’t “use RTX API directly”. They must go through either some version of DirectX12 RayTracing or through VK_NV_ray_tracing extension when using Vulkan. Perhaps latest NVIDIA OptiX can also use hardware acceleration these days, but I’m not sure, as it’s not directly applicable to games.

The only officially-supported GPUs for DXR and VK_NV_ray_tracing on the market today are NVIDIA Turing-based models (aka RTX 20-series) and some Volta-based models (TITAN-V).

In any case, applications must ask the drivers at run-time if ray tracing is supported by the current OS, driver and hardware before using any ray tracing functionality. Trying to use the extensions when driver does not report the support will most likely result in a crash.

DXR is a Microsoft specification, which indeed can be implemented by *any hardware vendor *that wishes to do so (just like any other optional part of D3D12). It is indeed also possible to implement DXR in software. This was done by Microsoft during early DXR development: https://github.com/Microsoft/DirectX…racingFallback. The fallback layer is not 100% compatible with DXR (it’s not a transparent drop-in replacement) and performance is not attractive for any kind of practical applications. Its purpose was to allow early development of ray tracing applications. It has been discontinued since the release of the official DXR-capable drivers and hardware. Unreal Engine does not support the fallback layer and is unlikely to support in the future unless it can be done completely transparently (without special paths in the rendering code).

Will unreal engine support raytracing using the vulkan extension in the future?

@YuriyODonnell Thanks for clarifying all the questioning! I am sure this will make clear for people with less low level knowledge to understand better why it won’t work on non-RTX cards.

I would like to ask another thing, which many are talking about, but we can’t see the info elsewhere:

Will Multi-GPU support ever happen? And if yes, which is the preliminary guess on its release?

Many people are purchasing 2 RTX cards (2080, 2080TI, Titan RTX, Quadro RTX) because they want the shared memory thing and the speed up on rendering on other rendering packages, so that hardware would be nice to have usability inside Unreal aswel! Even if mostly proposed as feature for arch-viz or film and not gaming purpose.

@YuriyODonnell

Could you say if raytracing will be supported with VR in 4.22, or is that not planned for 4.22 and will only be possible in a later engine version?

I don’t mean “will performance be good enough for VR”, I mean “will it render correctly in VR, without any unusual artifacts”.

https://github.com/EpicGames/UnrealEngine/tree/4.22

Not excatly understand. This is ray tracing branch ??

+1 for VR rendering that works properly ! Performance can be tackled for 4.23 ;D

For everyone still exploring this branch, RTGI has been officially checked into dev-rendering (yay!):

Ray tracing global illumination. Currently disabled by default to evaluate performance and quality in WoodChuck. r.RayTracing.GlobalIllumination (enables RTGI, default = 0) r.RayTracing.GlobalIllumination.Denoiser (enables denoising, default = 1) r.RayTracing.GlobalIllumination.SamplesPerPixel (determines samples-per-pixel, default = 1) r.RayTracing.GlobalIllumination.MaxBounces (determines maximum number of diffuse bounces, default = 1) r.RayTracing.GlobalIllumination.EvalSkyLight (determines whether or not SkyLight can be hit with indirect diffuse, default = 0) r.RayTracing.GlobalIllumination.MaxRayDistance (maximum ray distance for diffuse and visibility rays, default = 1.0e27) Details here: https://github.com/EpicGames/UnrealEngine/commit/20588dd212b6d316da7221734d8819913010a6c0

For those still playing around with early raytracing stuff in dev-rendering, RTGI has been checked-in! Yay! :


Ray tracing global illumination. Currently disabled by default to evaluate performance and quality in WoodChuck.

r.RayTracing.GlobalIllumination (enables RTGI, default = 0)
r.RayTracing.GlobalIllumination.Denoiser (enables denoising, default = 1)
r.RayTracing.GlobalIllumination.SamplesPerPixel (determines samples-per-pixel, default = 1)
r.RayTracing.GlobalIllumination.MaxBounces (determines maximum number of diffuse bounces, default = 1)
r.RayTracing.GlobalIllumination.EvalSkyLight (determines whether or not SkyLight can be hit with indirect diffuse, default = 0)
r.RayTracing.GlobalIllumination.MaxRayDistance (maximum ray distance for diffuse and visibility rays, default = 1.0e27)

Details: https://github.com/EpicGames/UnrealE…8819913010a6c0

Awesome! Thanks for the pointer.

Yeah, RTGI is here with us now :slight_smile: