After the relatively good results from yesterday's ray traced shadows implementation I thought to throw everything at the wall and see what sticks by implementing a full path traced pipeline based on HlmsPbsDatablock. Armed with about $100 of token credits I've managed to get something working for the PbsMaterials sample (now called Sample_PathTracer). Codex needed a bit of hand-holding as it was going into weird rabbit holes and investigating issues in the wrong place thus wasting time/money, but, in the end, I am pretty sure I couldn't have done this overnight all by myself.
You can find the git repo here
Caveat emptor:
This is just WIP with a lot of debugging scaffolding so play with this at your own risk.
The performance is terrible I get about 13fps on a MacBook Pro with M5 Apple Silicon.
The code needs to go through cleanup and restructuring as probably this HlmsPathTraced should be separate from HlmsPbs but it was just easier starting out to just reuse HlmsPbsDatablock and other things.
Many things are wrong as we've tried to get it running as fast as possible so some constants were altered without too much thought just to get the scene looking right-ish. It is a biased path tracer after all.
Now I need some sleep and start an in depth review with a fresh mind. But not before a couple of Lagers
)
EDIT: The implementation is currently only for the Metal render system and has only been tested on MacOS.

