Tuesday, September 30, 2008

GI - Photon Mapping - Day 1 (Diffuse Scene)

Since it seems I will be having a bit free time soon, I decided to have a go at a 'Multi-core Global illumination using photon mapping' project, the goal is to write a photon mapper and then have some fun trying to make it make use of multiple cores on a PC (or Xbox 360 if XNA allows?).

I decided to start off with a ray tracer to use it as a base and go from there.
I used the WitchEngine (the engine I wrote for World of football) as a base.
It has more or less everything needed for math, camera, scene managment, and I will use it's KD-tree for acceleration as well later after I add ray shooting to it.

I started off by rendering to images using the freeimage library, and in the progress also got a tip to use the PixelToaster library from my friend/colleague Volker Arweiler who has been playing around with ray tracing as well.

after half a day's work, I have Super Sampling, diffuse (Lambertian) and hard shadows implemented.

So I am very sorry to have to show you yet another super basic ray tracing screenshot.

Wednesday, September 3, 2008

Good software design nicely summarized in 4 simple (but deep) points

  1. Create crisp and resilient abstractions.
  2. Maintain a good separation of concerns.
  3. Create a balanced distribution of responsibilities.
  4. Focus on simplicity.
taken from: http://www.cio.com/article/373215/_Things_Grady_Booch_Has_Learned_About_Complex_Software_Systems?page=1