Metropolis Light Transport, stratification, ray tracing, rendering, caustics, global illumination, Photon Mapping, Progressive Photon Mapping, Importance Sampling, Unbiased raytracing.
Friday, March 4, 2011
TLRcam goes haskell
I'd like to rewrite the ray-tracer using Haskell. I'm currently taking a graphics course where I'll have to write a ray-tracer in c++, but thats not different enough. Due to the fact that a Haskell raytracer will be useless, this will be most definitely open source.
The basic idea is: every object is represented as a function from a vector to a number, the number being the smallest distance to the nearest object. To combine objects for a scene, you just compute the minimum!
If you haven't seen it already, this guy has an interesting pure approach to writing a raytracer in haskell:
ReplyDeletehttp://sebastiansylvan.wordpress.com/2009/07/04/ray-tracing-signed-distance-functions/
The basic idea is: every object is represented as a function from a vector to a number, the number being the smallest distance to the nearest object. To combine objects for a scene, you just compute the minimum!
Also, since you like language stuff, you should check out pages 278-280 of this book:
ReplyDeletehttp://www.itu.dk/~sestoft/pebook/pebook.html
which outlines how partial evaluation can be used to speed up a raytracer. I can't find the Mogensen paper, but Anderson did a similar paper:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.119.227
Dude, wow, I can't believe you actually found my other blog. I haven't checked this in ages.
ReplyDelete