A very nice person by the name of ɅƲṨƘɅ in the Cyberpunk 2077 Modding Discord asked me: "Give a definitive answer on what to use — PT20 or PT21"
My answer was: Use PT20 or PTNext. Don't use PT21.
I thought this probably requires some explanation, since I think many people might be surprised by my answer. Isn't PT21 the newest path tracing (introduced in Cyberpunk 2.1), and therefore "the best"? No, and no.
I think I'd better back that statement up a bit.
Let's start with first principles, and I'll come back to why I think PT20 and PTNext are the clear options. I will use some technical names, but you don't need to know a lot about them — it will all make sense by the end.
What is PT20?
PT20 was introduced in CP 2.0 and is, in simplistic terms, "naive" path tracing. Here's a bit about it:
- It uses some clever importance sampling (IS) and very likely resampled importance sampling (RIS)
- It selects lights and shadows it thinks might be important to you, and pre-denoises them using "ReLAX" and "RTXDI" denoisers
- Then finally denoises the whole image with either ray reconstruction or NRD (Nvidia raytracing denoiser)
- PT20 uses rays and bounces for indirect (diffuse) lighting — "rays" and "bounces" are what we call "naive" PT
- And it uses samples and an environment map (kind of a lighting cache) for direct lighting
Again, you don't need to know these terms in any detail right now.
To PT20, I have also added the SHaRC bounce cache (added in CP 2.1) which should help the denoisers a lot, although it doesn't appear CDPR have implemented it completely.
So SHaRC accelerates bounce lighting, but doesn't really help the denoisers. We do get some additional bounce information from it, though, so it adds more lighting/shadow detail to PT20.
What is PT21?
PT21 (again simplistically) adds ReSTIR, which is "Reservoir of SpatioTemporal Importance Resampling". ReSTIR is actually very similar, in that it uses IS and RIS, ReLAX and RTXDI, just like PT20. (DI stands for direct lights.)
However instead of naive path tracing (rays/bounces), it builds up a reservoir of rays about the scene, which it can refer to as you move around. Compared to PT20, PT21 has more ray and bounce information it's captured over time and world space — at least, "kind of" (see below). There are practical limits to this, however (VRAM is one) and after some number of rays "correlation" increases, meaning new rays don't add any any useful information — it's a diminishing return.
Comparing PT20 to PT21
So, is ReSTIR better than naive?... Well, let's compare:
- Both PT20 and PT21 use RTXDI plus SHaRC for direct lighting, so that's the exact same in both. It's only indirect (diffuse) lighting that's different
- You can argue ReSTIR has "infinite bounces", however in practical terms bounces become meaningless after around 3. PT20 can also have 3 bounces too
- Ray reconstruction and ReLAX are also caching spatiotemporal rays, so it's not quite as straightforward as "ReSTIR caches rays and PT20 doesn't"
Also all of these methods aren't perfectly implemented in CP. CDPR have met some challenges, tried some pathways, taken other pathways etc. It hasn't been a perfect story
Thinking about all these, especially that no method has been perfectly implemented, i would then look at a few questions:
- Which one looks best?
- Which is more performant?
- Which can be made to look better (improved past vanilla)
Question 2 is more important than it might seem, because path tracing quality depends on a) reasonably high real FPS, and b) reasonably high primary resolution (before DLSS/FSR/XeSS upscaling). So performance is very important.
Why PT20 is an excellent choice
Based on these questions, I think PT20 is absolutely great if you have a lower-end card — probably up to a 2060S / 3060 in a PC or 3070 Ti in a laptop. Also, if you're also sensitive to smearing, i would stay with PT20 (or even RT+PT if you're really sensitive to PT noise).
I also don't agree with several of the settings CDPR selected for PT20 (and have changed them). Combined with adding SHaRC to PT20, it now looks substantially better than Cyberpunk 2.0's vanilla path tracing. There is absolutely no reason not to use it, and many reasons to use it.
What is PTNext?
If you have more GPU power, I would absolutely use PTNext, which is ReGIRDI + ReGIRGI. Note, there is no RTXDI here at all any more — PTNext still uses ReSTIR and ReLAX, but adds ReGIR. PTNext is the next generation of PT21.
How is ReGIR different from PT21?
If you'll remember, PT21 is ReSTIRGI + RTXDI... ReSTIR samples a few path traced pixels on the screen to see what's important (importance sampling, or IS), and then does this again (resampled importance sampling, or RIS), then sends more rays there.
You could liken this to "screenspace" path tracing — in that the smaller something is on screen, the less path tracing will be applied to it, because it's considered less important. Objects in the distance – especially faces, foliage, shadows, etc. – can end up with not much detail. RTXDI is similar, it tries to work out which shadows and lights are important and only focuses on those.
ReGIR is different: It divides the world space into a 3D grid. It then sends some rays to each grid sector to determine what's important in each 3D sector. It then sends more rays to those sectors. It is still doing IS and RIS — only in 3D. In this way it's an advancement of ReSTIR.
The major advantage here is it's more detailed and accurate, especially with objects farther away from the camera, but it's also a performance improvement, so has similar performance to PT21, possibly even better.
Comparing all
Comparing the tech, the four options in Ultra+ are (I'll add RT+PT so you can see where it fits in, and why it's still important):
- RT+PT == Ray traced direct lighting + path traced naive indirect --> ReLAX --> ( RR or NRD )
- PT20 == IS --> RIS --> RTXDI + naive indirect --> ReLAX --> ( RR or NRD )
- PT21 == IS --> RIS --> RTXDI + ReSTIRGI --> ReLAX --> ( RR or NRD )
- PTNext == ReGIR --> IS --> RIS --> ReSTIRDI + ReSTIRGI --> ReLAX --> ( RR or NRD ) (...note: no RTXDI)
PTNext is in v4.0 (the beta) of Ultra+. we've worked out how to fully activate the ReGIRDI + ReGIRGI code pathway, which is in the engine, but not enabled (idk why!) On the other hand, we have been unable to fix the smearing noise in PT21.
If it doesn't bother you then that's 100% fine, and you probably have a high enough primary resolution and frame rate that it's less of an issue, or are less sensitive to it. However my observations are PT21 is not only the slowest of the PT options, it's also the lowest visual quality — and it can't be fixed (at least I haven't worked out how to).
Which to choose?
My answer is RT+PT, PT20, or PTNext. In my opinion there is no good argument to use PT21. I have only included it in Ultra+ it because I think people will expect it.
Interestingly with tuned settings, PT20 can get impressively close to PTNext with minimal noise. It's really PT21 that is a kind of an "in-between technology" with some obvious downsides.
Why did CDPR release PT21, then?
Why would CDPR release ReSTIR in v2.1+ as "improved path tracing"... Unfortunately part of my answer is the denoiser settings in CP 2.0 were not ideal. The vanilla settings introduced noise. So, yes vanilla CP 2.1 was an improvement, however with adjusted settings PT20 can actually look cleaner, and is generally faster.
Why didn't CDPR enable ReGIR themselves?
These are the realities of software development. Perhaps they plan to in a future release. Perhaps their developers got pulled from it when they were much closer than they thought? There is some trickery FireKahuna had to wrap around the engine as a save game loads, to get the ReGIR grid to build.
However the game loads, PTNext is very stable, and just about noiseless. It is also the closest to "ground truth" path tracing — if you were to spend a few minutes rendering the image in Blender, for example.
What mode do I run?
Right now I'm running PTNext at Medium, on a 3070 Ti (laptop), 1440p balanced, ~55-60 fps with FSR3 frame gen. If I'm heading into a very demanding area (Dogtown) I might switch to PT20, which runs at 60 fps. Almost all of my screenshots are taken with PT20 Fast/Performance or Medium/Balanced.
...Or, i could run PT21 at 45 fps with some smearing (no thank you).
So I would wholeheartedly recommend using use RT+PT, PT20, or PTNext. Forget about PT21.
14 comments
ingame settings: path tracing + ray tracing on with dlss balanced.
mod settings: PTNext with High lighting
Are these settings as they are supposed to be? Could i put dlss to quality or would it affect the look negatively? Im asking because of the tooltip it shows in the modmenu when hovering over PTNext. Thank you
does that stabilise fps for you?
I can't quite put my finger on it, but somewhere in this fascinating document lies the answer as to why my olde VCR clock always flashed 12:00pm.
Great stuff!
or 11:11
I was unaware of PTNext; I'm eager to try it out.