RSS Feeds

Previous entries

Massive Dart speed up

Posted 2005-01-11-2337

Big thanks to Olie for pointing out a very interesting PhD thesis on Real Time Ray Tracing. There are many ideas in the paper that can speed up any ray tracer, not necessarily a real time one.

It did, however, point out a mistake in Dart. It's a mistake that is so obvious when looking back at it. When checking shadow rays, I was using the traceRay method that checks all objects and finds the closest intersection. But it only takes one valid intersection to show that the shadow ray doesn't make it to the light....

So I fixed it by writing traceShadowRay. This make a 20% speed improvement to Dart: for 1024x768 of my povray reflect test scene, the total running time dropped by 12sec from 54sec to 42sec (cpu user time). The new method also allows easily adding some other optimisations (which I might do in future).

I currently have three branches of Dart: trunk/stable, new/0.0.6pre1 (cosc422 assign4, partly broken), and CSG (not yet working). Since my new computer is (going to be) a dual Opteron, I think I'll create another branch to play with mutli-threading. I'm also thinking of another branch for AFF so I can play with the BART animation benchmarks. I might try to finish the CSG branch first...

I hope to upload a new Dart version soon.