Devember again
This one snuck up on me faster than anticipated, but here we go.
Last year I wrote a ray tracer in Ruby, following The Raytracer Challenge. While the futility of writing such a performance sensitive thing in something as sluggish as Ruby was entertaining, this time I’ll aim for something actually useful.
I, Calle Englund, will participate to the next Devember. My Devember will be a ray tracer. I promise I will program for my Devember for at least an hour, every day of the next December. I will also write a daily public devlog and will make the produced code publicly available on the internet. No matter what, I will keep my promise.
Next related
Basic data types
Alright, the first push to the [github repo] is complete. Starting out small with just the basic data types that will be at the core of everything, and some tolerance equality operators for comparisons.
Previous related
Light and Magic
Made some refinements to lighting. Originially there was only a point light without distance falloff, which is not an accurate light model in any case. The light inside the room lights the entire world, all the way to the horizon.
Cache is King
Cut teapot rendering time in half with some clever caching.
Day 36, Constructive Solid Geometry
The final pre-defined feature of the project is done, Constructive Solid Geometry, implementing the boolean set operations union, intersection, and difference for solid geometries. This way we can use the basic geometric surface shapes to create more advanced shapes, without resorting to approximating by thousands of triangles.