Analyzing ray traced shadows in World of Warcraft
Ray tracing in video games is a relatively new feature that is picking up momentum as more and more games are starting to implement it. This also includes World of Warcraft Shadowlands. Let's take a look at ray tracing features and how WoW implements them.
As Wikipedia describes it - ray tracing is a rendering technique for generating an image by tracing the path of light as pixels in an image plane and simulating the effects of its encounters with virtual objects. The technique is capable of producing a high degree of visual realism, more so than typical rendering methods, but at a greater computational cost.
Existing implementations pretty much
fake lighting and shadows to a point that it looks kind of realistic (but with some limitations). It's easy for GPU to render but requires a lot of developers work. With ray tracing the developer has less work and the end result doesn't have the limitations of traditional methods (like for example reflections and indirect lighting effects). Ray tracing is much more complex computationally so it wasn't used in video games, but quite often for movies and still images.
With the introduction of Nvidia Turing GPUs we got hardware accelerated ray tracing support allowing for some degree of ray tracing at the speeds required by video games. In 2020 we got a second generation of Nvidia cards - Ampere as well as AMD RDNA 2 cards with improved support for ray tracing and auxiliary features like machine learning aided up-scaling. Upcoming Sony and Microsoft consoles will also support this feature.
Ray tracing isn't limited to tracing rays of light but also shadows, reflections and various indirect lighting effects like ambient occlusion or light refraction/reflections (caustics). Each game can implement some or all possible ray tracing use cases.
- Metro Exodus: global illumination, ambient occlusion
- Shadow of the Tomb Raider: shadows
- Battlefield V: reflections
- Atomic Heart: reflections, shadows
- Justice Online: reflections, shadows, caustics
- Fortnite: ambient occlusion, global illumination, shadows
- Minecraft: lighting, reflections, shadows
- Control: reflections, transparent reflections, indirect diffuse lighting, contact shadows
- Deliver us the Moon: reflections
- Cyberpunk 2077: ambient occlusion, diffuse illumination, reflections, shadows
- World of Warcraft: Shadowlands: shadows
Based on which uses cases are used in a given game the end results of ray tracing off/on can be barely noticeable to really impactful. This also depends how much work was spent on non-raytraced lighting implementation.
You can read more on various techniques on Nvidia website.
As ray tracing is expensive to compute Nvidia pioneered a combination of ray tracing with machine learning aided upscaling (can also be used without ray tracing). Nvidia calls it DLSS while AMD is also working on their of implementation of similar feature.
DLSS works by taking a game frame running at a low resolution plus frame motion vector and upscaling it to target resolution while reconstructing detail based on pre-trained machine learning model - a sort of a
complex algorithm that generates a target resolution frame based on the low resolution frame and training it received on super resolution frames (it
assumes how things should look like). It won't produce same looking frame as when the game would be running at that resolution but gives either close to or sometimes better end result.
Some people can quickly pick up some of DLSS effects when the quality of end result starts to fall and don't really like it so your experiences may vary.
WoW Shadowlands as of now does not support DLSS.
Enabling ray tracing will lower the FPS to even like 60% or less of the original value. DLSS can bring the FPS back up but that’s not always desired or available (like in WoW). So if you want to play with DXR on you have to have a GPU capable of running the game way faster than your desired FPS - display refresh rate.
Cheapest card that supports hardware accelerated ray tracing is RTX 2060 that will be superseded in Q1 2021 by RTX 3060 and 3050, not to mention RTX 2060 Super and RTX 2070 seeing competition from RTX 3060 Ti in December of 2020. Due to limited performance (and age) going with RTX 2060 is not recommended if you really want to enjoy ray tracing.
Somewhat minimal-optimal level of GPU and DRX performance could be the RTX 2070 Super level. RTX 2070/2060 Super would be a bare minimum for 1080p DXR in less demanding games. We don't have any benchmarks yet but the level of RTX 2070 Super (or bit better) of performance could be brought to the RTX 3060 Ti that should be priced really well.
Top end cards like AMD RX 6800 XT, and RX 6800 or Nvidia RTX 2080 Ti, 3070 and 3080 allow to play with ray tracing at higher framerates or higher resolutions, especially with DLSS/upscaling. We still don't know what type of ray tracing performance AMD will offer on lower tier cards.
To enable ray tracing in World of Warcraft you will have to have Windows 10 updated to the
May version 2004 or newer with latest Nvidia drivers. DXR will not be enabled for non-RTX cards (even when some can run the DXR API without hardware acceleration at a very low performance level).
In Maldraxxus, in the Theater of Pain world quest location we can see some moving parts around a light source. Without DXR we just have some
shadow coming from the global light source. With DXR on we do get shadows dynamically casted by the moving parts from the local light source:
In the Maw, in a
Lava furnace spot we do get some shadows from the light source when DXR is enabled:
Dalaran is often showcased in DXR comparisons and it does show some shadow interaction with the city structures:
DXR shadows can show up on your character cloak or some head pieces:
Widefield Ardenweald shows very little difference:
Similarly the Satyr shadows also barely change:
Orgrimmar or old Stonard also sees little difference:
Thundertotem can see large FPS drops with DXR, yet the differences aren't that noticeable:
Ray traced shadows were added as a sort of an experiment. They implemented it mostly for objects in Shadowlands while also using it to some extent for the global illumination present all across the game. The problem is that WoW lighting is quite simple - we usually have some light source above you at an angle (even if you are in some buildings/caves) and majority of other light sources do not cast shadows.
This limits the intensity and presence of ray traced shadows in the game. We loose a lot of FPS for very little effect. For WoW to have ray traced reflections, transparent reflections and ray traced lighting the devs would have to update every
material in the game, just like what happened in Minecraft. If you have a grass or rocky surface you have to implement information on how it interacts with light - how much and how does it reflect. If you have a glass window - how much light reflects, how much passes through and so on. This could be done alongside world revamp (a massive undertaking) and that was rumored already for some time (maybe we get it after Shadowlands?) but no official information have been given.
For now DXR Shadows could be a small addition when you are in Shadowlands zones, but not some visual make or break feature. On 10th of November AMD is releasing a showcase video which may shed some more light on this though.
For the benchmarks I used Intel Core i5-9400F, 2x8GB DDR4 3200MHz CL15 RAM and RTX 2070 (457.09 drivers) on Shadowlands beta (22.214.171.124532) and pre-patch retail versions of the game.
The RTX 2070 was an old Gigabyte model that turned out to be somewhat damaged which limited my testing due to GPU crashing due to bad VRAM chip or related malfunction (be careful when you buy old used Turing cards from unproven sources). I'll do a follow-up testing with AMD RX 6800 XT when I get it... which may take a while.
Lets start with a summary of relative results - radar charts showcasing how much % of FPS do you get when enabling DXR in Shadowlands at 1080p:
As you can see on mode 10 settings with ray traced shadows set to high you end up with around 56% of original FPS. On mode 7 (and limited result set) the FPS is reaching 75% of the original framerate.
At 3440x1440 resolution the results are as follow:
In The Maw the FPS drop is much higher - and there are ray traced shadows in that scene. Oribos, with some player activity has a smaller penalty.
For 1080p the results are as follow:
Moving the field of view to a local pack of
satyrs that all cast their shadow from the global illuminations gave such results:
Dalaran was showcased in multiple DXR On/Off comparisons already and it does have shadows affecting look of some of the city structure:
In Maldraxxus I checked some moving objects casting shadows with DXR - the Theater of Pain world quest location area:
Lava furnace in the Maw does actually have some shadows when DXR is enabled:
Going back to Legion dungeons, a scene with Rokmora (and dungeon that seems to have no shadows whats so ever):
Orgrimmar has some player activity. Looking down on the city gave such results:
Old zones like Stonard are easy to run in terms of GPU compute power. With DXR there is barely any difference in visuals, while the FPS do change:
River of Souls in The Maw has more unique visuals (and kind of no shadows) which results in very low DXR impact:
Thundertotem, a city up in the open does have quite substantial performance impact with DXR on. If you walk around the city you can get really low FPS in some places:
I left combat benchmark for last. It's based on Karazan TBC raid with multiple mobs pulled in-combat. The scenario is heavily CPU bound, but enabling DRX did impact the FPS in this case which is kind of surprising and sad:
WoW developers do play with bleeding edge technologies. The DX12 implementation of WoW engine is really modern and although the performance is usually limited by the
world state of the game (a MMORPG with multiple players, NPCs with multiple spells, procs, effects, corruptions and whatnot) it shows that they do have the money and man hours to do a very low level development on the game engine and then game assets. We were promised VRS support too (variable rate shading) but that seems to be missing as of the time I'm writing this article.
Ray traced shadows in Shadowlands patch 9.0 are a tech preview, something that may be greatly improved upon next expansion or wherever they revamp their lighting and assets in general to bring visuals to the next level. Ray traced cards (Turing, Ampere, RDNA2) aren't widespread but we do see a big demand for new GPUs which should give a nice big DXR playerbase in ~2 years when next expansion should launch. Consoles are also bringing ray tracing support not to mention that even indie single person games are starting to leverage this technology.
If you don't want to spend now for a new GPU as the current one is just fine - wait for third generation of DXR cards as the DXR revolution is just starting – and yes, DXR will some day supersede existing technologies.
- World of Warcraft Shadowlands performance analysis
- World of Warcraft Shadowlands Beta CPU benchmarks
- World of Warcraft Shadowlands Beta GPU benchmarks
- World of Warcraft Shadowlands Beta iGPU benchmarks
- World of Warcraft Shadowlands Beta - SSD versus HDD
- Testing Radeon Adrenalin 20.10.1 Shadowlands pre-patch support