Engineer’s Workshop: Enabling Ray-Traced Shadows in Shadowlands
We are excited to announce that in the Shadowlands beta, you can enhance your game’s visual fidelity with our newly added ray-traced shadows.
Ray tracing can provide heightened visual quality by rendering shadows more realistically. This visual improvement is a great fit for World of Warcraft’s distinct stylized art direction, and helps create a more immersive world.
World of Warcraft has historically used a single directional light (e.g. a skybox containing a sun, a glittering galaxy, or a chaotic cluster of lightning) to illuminate a scene. At times, we’d insert a light inside a space even when it didn’t necessarily have a source—for gameplay purposes, we can’t have you scouring a dungeon in complete darkness, even if the area has no obvious objects to act as a light source. With the addition of ray-traced shadows, World of Warcraft can now support additional shadow-casting lights (e.g. fire).
You can see these improvements handily with the before and after images of this campfire scene.
In the first image, you can see a scene from the game under normal lighting effects, which in this case are provided by the campfire.
As you can see in the second image, with ray-tracing enabled, the light now more accurately casts shadows. You can now see the shadows created by the rope inside the tent, the rocks around the campfire, and the tauren on the hide in front of him.
Stepping up Shadows
Aliasing can also cause shadows to not render into a scene if the shadow-casting geometry (e.g. a character’s head) is close to the shadow-receiving geometry (e.g. a character’s neck).
Here, we can see how aliasing issues can be resolved with ray traced shadows. In the first picture, the character is lit by sunlight overhead, but with little shadowing that accurately reflects the direction of the light source; her face does not cast a shadow onto her neck as it would in the real world. The lack of shadows also flattens the appearance of the character model since shadows also indicate the curvature and textures of the shapes light bounces from. The second picture with ray tracing enabled generates the shadowing seen on her neck and eyes that are missing from the first picture, and includes shadows cast by the hair, nose, and even the lips. An astute observer might even notice more accurate shadowing in the edges and corners of the building behind the character.
Another issue common to rendering shadows in-game is producing shadows whose edges are too rigidly defined.
In the first image, the player stands in the shadow of a tree, both with fairly hard edges despite the variance of lighting. Additionally, the character’s shadow cannot be differentiated from the tree’s shadow where they overlap; the shadows appear merged together into a single shape. Ray tracing creates the variance in shadows you’d expect to see generated by ambient outdoor lighting.
In some places, shadows disappear altogether when the directional light is occluded.
In the first image, the player is standing in a shadow cast by the wall, but casts no shadow themselves. The blue flames coming from the brazier adds light to the scene but don’t create the shadows you’d expect from the character or potted plants below. In the second picture with ray tracing enabled, the character and plants cast distinct shadows.
Before ray tracing, we couldn’t render more than one shadow at a time. Now, it is possible to have multiple shadows.
The first picture once again has a single directional light casting shadows, yet only the shadow from the architecture out of frame casts a shadow—and no shadow from the character can be seen. The second picture retains the shadow cast from the first directional light, but the scene has two additional lights which together create three shadows (one of which is very close to the directional light with quite a bit of overlap). A closer look will also reveal improved shadowing in the character’s face, and shadows cast by the armor onto the player’s arm.
We hope you enjoy the additional visual depth that ray tracing brings to Shadowlands!