In an interview with German website PC Games Hardware, CD Projekt RED Lighting & FX Art Director Jakub Knapik and Lead Graphics Programmer Marcin Gollent spoke about some technical aspects of Cyberpunk 2077.
The major topic that was discussed was ray tracing. Knapik explained the game’s usage while adding that the implementation proved to be quite a challenge in the context of a massive open world game like that featured in Cyberpunk 2077.
In its native mode, so with DXR features disabled, our engine is equipped with global illumination, hence it supports bounced lighting in a platform-agnostic way. Our goal was to create a rendering platform that would use PBR (physically-based rendering) rules and a realistic approach to lighting on all platforms. That paradigm made ray tracing a natural extension of the idea, the next step in its evolution. We worked on a hybrid solution that is added on top of our already existing setup, replacing some of our lighting subsystems with ray-traced equivalents. That gave us basic parity, meaning we don’t have to make a separate lighting variant, and at the same time — a huge quality boost in some areas we found the most useful for Cyberpunk 2077, ones we can further tweak to our needs.
Currently, we use sun soft shadows, a solution that gives us incredibly detailed results, capable of picking up any objects visible to the eye and simulating the natural phenomenon of softening shadows based on distance. We use a ray-traced skylight that works with our proprietary global illumination system, producing a super realistic ambiance coming from the sky and clouds. We also use emissive surfaces like screens, neons to emit realistic soft lighting with perfect shadows during the night. Additionally, and also quite obviously, we take advantage of all the benefits of ray-traced ambient occlusion and we are currently working on ray-traced reflections. As for the biggest benefits, I think they chiefly come from the precision of 3D space ray tracing versus more traditional screen space solutions.
Overall, the implementation of ray tracing into the game engine on a practical level, with all the needed parity and care for our in-engine systems, proved to be quite a challenge. That said, I think the difficulty is something that’s very case-dependent. Every engine is molded to serve specific needs. Our own was set up to enable us to depict the incredible complexity of Night City, with its vast verticality and enormous amounts of assets across the city. All that with dynamic global illumination working in real-time with all local lights, a dynamic day and night cycle, as well as changing weather states.
The Cyberpunk 2077 preview build reportedly had to stick to 1080p resolution with NVIDIA’s DLSS 2.0 enabled on a PC equipped with the RTX 2080Ti graphics card with three ray tracing effects enabled. We’re definitely hoping to see a much more optimized game when it’s released in November 19th.