a C++ path tracer