Monte Carlo path tracer