Release notes:
CompleteRT 1.4 update changes almost all aspects of the shader for the better. Diffuse Illumination looks better. Reflections look sharper and more accurate than before. And the AO is more customizable. The shader is now more reliable than ever. All these changes, on top of them, performance and stability improvements, make the update worthy of being called a Complete revamp. With all the boring bugs being fixed now, for sure, this update is deserving of a try.
In short, update 1.4 improves several aspects of the shader. The ray tracer is almost rewritten with two new algorithms. Specular ray tracing and Diffuse ray tracing are done in different ways depending on what is the most important need of each effect.
Specular Ray Tracing gets a more accurate representation of the reflections' textures and details. The Diffuse Ray Tracing algorithm now supports per-pixel surface thickness estimation. It helps to conserve the significant effect of large objects on the lighting while avoiding overdone AO from tiny objects. With the help of improved pre-processing (calculating normals, projection matrix, roughness, etc,), the result gets even better.
With the new projection/inverse-projection formulas, the accuracy of everything is now much better. Reflections are more stable. The AO is more detailed. And Diffuse Illumination is more clear. It also helps with the estimation of Normals. Talking about Normals, the smooth normals filter also had improved since the last update. And as a cherry on top, better bump mapping is here as well.
As for Performance, ReSTIR GI has new optimizations in this update, helping the overall performance of the shader along with other optimizations and micro-optimizations.
And finally, we have some changes in the UI. These changes help the user find and adjust what they want easier. Don't forget to check out all these changes in detail below.
1- Improved Ray Tracing:
This update rewrites the ray tracing algorithm, improving everything about CompleteRT, from accuracy to performance, and finally feature-richness. Now the ray tracer is separated for the two effects (GI/AO - Reflections) and tailored specifically for each of them.
Diffuse illumination:
In CompleteRT 1.4, diffuse illumination has an automatic, per-pixel thickness estimation algorithm integrated into the ray tracer. With this feature, large buildings and mountains are considered thick, while tiny grasses, tree leaves, and small objects are thin. So no more hard work is needed to configure the thickness slider; Although it still exists as a multiplier to the estimated thickness.
In addition, the ray tracer got a little faster and more accurate, eliminating haloes in rare scenarios.
Reflection:
The 1.4 update brings a new life to reflections, just like how it does it with the diffuse illumination. CompleteRT 1.4 needs much fewer steps to make an accurate reflection. To be more precise, the new ray tracing algorithm is specifically tailored for reflections and refines the result after a short ray marching stage for the best output. A new little feature is also added to roughness estimation.
Furthermore, the denoiser behaves smarter thanks to the roughness map adjusting the denoising intensity; Resulting in sharper reflections than you've ever seen.
2- Improved Pre-Processing:
This update brings better smooth normals to CompleteRT. Now, when adjusting the smooth normals quality parameter, the radius of the filter does not change. Instead, only the sample count grows for a higher-quality filter.
In addition, bump mapping and roughness estimation got "distance adaptive radius" giving them a more realistic look. Talking about roughness estimation, it got a new feature to help you simulate rainy weather. Activating the new feature gives you shinier ground while keeping other surfaces rough. The feature is expected to behave correctly only when looking at the horizon angle.
Lastly, the projection and inverse projection functions had a bug, causing bent reflections with camera rotation and some inaccuracy in Diffuse Illumination and AO. This is fixed now :).
3- Improved Temporal Upscaling:
Temporal upscaling, a feature introduced recently in CompleteRT 1.3, is now better. Now, on top of the upscaled image is an artifact-free sharpening filter to keep the ray-traced lighting as detailed as possible. More importantly, the jittering of the upscaling is improved and the sample weighting formula is improved. All of the above on one side, and getting rid of the pineapple on pizza on the other! XD. Just fixed a bug casing flickering with temporal upscaling.
4- Improved ReSTIR GI:
After all the improvements of CompleteRT 1.3, I found that "enough is not enough". There is always room for improvement. The performance is much better, and the sampling algorithm has improved a lot.
With the implementation of adaptive sampling, and more cache-friendly sample patterns, the shader got noticeably faster, especially with higher sample counts. But it doesn't end here, as there are a lot of micro-optimizations there as well.
The accuracy of the implementation is now also much better, once again reducing bias in ray tracing. Better sample selection, more accurate sample weighting, and fail-safe fallback to spatial reservoirs (reduces flickering in motion).
5- Improved UI:
This update also touched the UI to make it cleaner, more user-friendly, and more loyal to the code.
1- The Resolution Scale drop-down and the Max Steps slider are now in the "Performance" category instead of "Ray Tracing".
2- The Sample Count option is now in the "Performance" category instead of "Ray Tracing". Due to algorithm changes, it is now limited to 3 sample increments, so instead of 1-2-3-4-..., the options are 1-3-6-9-... and the maximum is 21 instead of the previous 64.
3- Roughness and Specularity Sliders are now in the "Reflection" category instead of "Ray Tracing" and "Blending Options".
4- Ambient Occlusion's Radius and Intensity sliders are now in the "Ambient Occlusion" category instead of "Blending Options".
5- Depth Fade is now in the "Masking" category instead of "Blending Options".
6- The Sky Color Intensity slider is now also available in the easy UI.