BVH is love, BVH is life 📦
Ramped up samples, bounces, and resolution and the rendering time is still less than the first attemts with the linear traversal of all objects in the world.
Converting interaction event into a single-constructor with additive, multiplicative, and scatter components helped a little too.
Also, skipped ray bouncing when attenuation drops below 10-bit range.
The limit practically remains to prevent infinite bounces between perfect mirrors.
Ramped up samples, bounces, and resolution and the rendering time is still less than the first attemts with the linear traversal of all objects in the world.
Converting interaction event into a single-constructor with additive, multiplicative, and scatter components helped a little too.
Also, skipped ray bouncing when attenuation drops below 10-bit range.
The limit practically remains to prevent infinite bounces between perfect mirrors.
The cat is out of the box[Goral84]!
[Goral84]: Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile. 1984. Modeling the interaction of light between diffuse surfaces. SIGGRAPH Comput. Graph. 18, 3 (July 1984), 213–222. https://doi.org/10.1145/964965.808601
[Goral84]: Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile. 1984. Modeling the interaction of light between diffuse surfaces. SIGGRAPH Comput. Graph. 18, 3 (July 1984), 213–222. https://doi.org/10.1145/964965.808601
Spent 2 days trying to figure out a bug. Accidentally fixed something while tidying up the code, don't know what was the problem. I thought I've fixed the real bugs (a few times) and everything should be working, but nooooo....
For some reason C++ code decided to shadow the shit out of its variables and use distance domain where everything but one quantity was in the time domain already. I hate C++ for tutorial code dumps 🚮
For some reason C++ code decided to shadow the shit out of its variables and use distance domain where everything but one quantity was in the time domain already. I hate C++ for tutorial code dumps 🚮
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Sorry for all the numerical instability...
The video illustrates the need for a frame debugger a la RenderDoc.
Bounce depth, hit angles, pixel variance, etc.
The video illustrates the need for a frame debugger a la RenderDoc.
Bounce depth, hit angles, pixel variance, etc.
4844403-objects.png
6.9 MB
130 -> 4844403 objects
7.5s -> 30s rendering time
7.5s -> 30s rendering time
fibs.jpg
979.2 KB
This is a Haskell channel, of course there would be Fibs somewhere
This media is not supported in your browser
VIEW IN TELEGRAM
Dance of victory (and GHC.Clock.getMonotonoicTime problems) on MacOS
"Underwater"
Claude Sonnet 3.5.1, free-form scene description
It's actually pretty capable. The first images were simple, but had a point. Having seen the result it proposed a few tweaks. And after getting the sources for example scenes and elementary functions it picked up more stuff to its satisfaction.
For the final render I've asked for the corals to be more branchy and that was it. I deliberately didn't suggest anything in implementation or composition to avoid contaminating its idea.
I've been iterating to get an unobstructed camera angle, tweaking a few parameters to my liking, but the bulk of the code it made by itself.
Claude Sonnet 3.5.1, free-form scene description
It's actually pretty capable. The first images were simple, but had a point. Having seen the result it proposed a few tweaks. And after getting the sources for example scenes and elementary functions it picked up more stuff to its satisfaction.
For the final render I've asked for the corals to be more branchy and that was it. I deliberately didn't suggest anything in implementation or composition to avoid contaminating its idea.
I've been iterating to get an unobstructed camera angle, tweaking a few parameters to my liking, but the bulk of the code it made by itself.