I am writing a path tracer in Go. The Go gopher below was rendered using it, and here's the code that was used to do it. It's 2560x1440px... so you can make it your wallpaper! The gopher 3D model was found here.
Disclaimer: This is my first time using Go.
go run examples/gopher.go
Here are things that I'm planning, or at least hoping, to do.
- material properties (partially done)
- OBJ / STL models (partially done)
- textured objects (partially done)
- light attenuation
- depth of field
- constructive solid geometry
- input files to define scene
- animation support
Here are some resources that I have found useful.
- http://madebyevan.com/webgl-path-tracing/
- http://www.thepolygoners.com/tutorials/GIIntro/GIIntro.htm
- http://www.iquilezles.org/www/articles/simplepathtracing/simplepathtracing.htm
- http://web.cs.wpi.edu/~emmanuel/courses/cs563/write_ups/zackw/realistic_raytracing.html
- http://graphics.stanford.edu/courses/cs148-10-summer/docs/2006--degreve--reflection_refraction.pdf
- http://www.rorydriscoll.com/2009/01/07/better-sampling/
- https://www.youtube.com/playlist?list=PLslgisHe5tBPckSYyKoU3jEA4bqiFmNBJ
- http://www.amazon.com/Physically-Based-Rendering-Second-Edition/dp/0123750792