Plenty of time on my hands at the moment so I've reworked some areas of my real time path tracer, and started working on a few new features too.
I started by adding a couple more tone mappers - which are responsible for taking the rendered HDR image and transforming them into LDR for display on regular display devices (and for output to non-HDR file formats such as regular JPG and PNG). I had a naïve [0,1] clamp and a Reinhard luminance in place, but decided to add something better - ACES and AgX.
Not the best 3D scene to show the differences... but they are noticeable!
I also decided to rework my post-process bloom effect as I wasn't happy with my old version. It's a lot quicker now, and produces much better results. It is not physically based (far too expensive for a real time renderer) but it does the job and is user-controllable. Works well with the new tone mappers.
I also added a reworked "sheen". It's based on "Practical Multiple-Scattering Sheen Using Linearly Transformed Cosines" (Zeltner, Burley, and Chiang, SIGGRAPH 2022) that introduces a method for real-time, physically-based rendering of fuzzy or dusty materials. It models sheen as a volumetric layer containing fibre-like particles (using the SGGX distribution) and approximates the resulting multiple scattering using an LTC fit, replacing expensive simulation. Good for clothing and things like velvet.
In addition, I reworked my transmission code that models light passing through a surface for things like curtains, or strong sunlight shining through leaves. Good for backlighting! Here is an example of a bright light under a piece of fabric.
And bright lights shining through stained glass:
Another area to update was the coat (clearcoat); this is good for adding a gloss/lacquer layer on top of an existing surface/material. For example, the lacquer layer over car paint, or even moisture/wetness on skin. Or varnish on wood. That sort of thing. I gave the McLaren in the image below a dull Papaya Orange paint layer with high roughness - which meant it appeared diffuse with no highlights - matte orange if you like. I then applied the coat on top which simulates the lacquer clear coat, and suddenly the paintwork has reflections and gloss as you would expect to find in the real world.
A woman:
A slightly sweaty woman:
Bored yet?
