A path tracer written in Go.
This is a CPU-only, unidirectional path tracing engine written in Go. It has lots of features and a simple API.
go get -u github.com/fogleman/pt/ptThe are lots of examples to learn from! To try them, just run, e.g.
cd go/src/github.com/fogleman/pt
go run examples/gopher.goYou can optionally utilize Intel's Embree ray tracing kernels to accelerate triangle mesh intersections. First, install embree on your system: http://embree.github.io/ Then get the go-embree wrapper and checkout the embree branch of pt.
git checkout embree
go get -u github.com/fogleman/go-embreeThe following code demonstrates the basics of the API.
…There are several sampling options that can reduce the amount of time needed to converge to an acceptable noise level. Both images below were rendered in 60 seconds. On the left, no advanced features were enabled. On the right, the features listed below were used.
Here are some of the options that are utilized to achieve this improvement:
Combining these features results in cleaner, faster renders. The specific parameters that should be used depend greatly on the scene being rendered.
Here are some resources that I have found useful.
No open issues yet, or sync has not completed.