Tests List

This is a list of automated tests that are run so far. There are four kinds of users that are used in the testing

Automated Testing and Requirements Testing

Thanks to Kiam who posted a bug at http://drupal.org/node/292242 I learned a way to properly do requirements testing to make sure the core Blog module is disabled before EveryBlog is installed.

Automated testing looks like its the way to go to help reduce the number of bugs that show up in releases. Drupal's SimpleTest module looks like it should be pretty straight forward, and it has plenty of helper functions to make my life easier as I code up the tests.

EveryBlog 2.0 Announced

The new version of the module promises lots of changes.

Development Goals:

  • Add another node-type for Blog, make two node types, Blog and Blog Entry.
    • Helps with keeping taxonomy per blog
    • Allows CCK fields per blog
  • Rework categorization to use taxonomies properly
  • Automated testing to reduce the number of bugs that make it into releases

And much more. Check back here for more details and development updates. There is a forum for talking about EveryBlog at http://drupal.org/node/288813

High-Res Picture

Nothing new, just a high-res picture.

Caustics

I'm having a bit of trouble getting caustics to look right, I'm not sure what the problem is.

Search Radius and Irradiance Estimation

Up until now I have just been using the original search radius from the kd-tree searching to use in the irradiance estimation steps. But someone mentioned and flaw in the images, the dark edges along boxes, and I thought that perhaps the radius was wrong. For reference here is an image with that uses the search radius in the irradiance estimation.

Global Illumination Irradiance Estimation and Photon Prunning

Photon irradiance is estimated using a spherical area. However this alone will produce incorrect results. Check out this image, notice banding along all the surfaces that meet at 90 degrees. This is because just grabbing all the photons within a sphere gets photons from both surfaces, when really the photons from surfaces that are orthogonal to each other should not contribute to the lighting.

Multi-Threading and Storing Photon Maps

Well, since I'm running with a Core Duo I decided to implement multi-threading for the photon scattering step since thats where 90% of the time is spent. It works great and was very simple to do, required very little restructuring of my code.

And to add another speed book I made the photon map serializable so that I can save and load them to disk. It saves some time, but the deserializing process is

slow

and I mean slow. But it helps.

More to come later, this was just a quick note between renders.

Adaptive Super-Sampling: More Rays Where We Need Them

A few posts ago I added super-sampling to the ray tracer to help take care of jaggies. If you remember, this consisted of sending more rays into the scene. There is a cost of sending in all of these added rays. Thinking back on the picture of the circle and the super-imposed grid we really only needed to fix the edges, the center of the circle didn't change at all. So we really wouldn't need to do anything to fix the non-existant jaggies in the center of the circle. So, in order to save on processing by not tracing any more rays than we absolutely have to while still looking good.