As the above images show I fixed the shadow aliasing/noise issue I mentioned in my previous journal entry. Yay.
The shadow tracing starts at the current texel and early-out's if it intersects with the surface. The code doesn't pay any attention to where it intersects, just that it does or does not. In the process of debugging I output the length of the intersection offset and found that the aliased pixels were all very close intersections. A bit more checking and the assumption became that it was either intersecting with the source(possibly courtesy of filtering rules) or it's immediate neighbours (more likely).
I'm using a traditional 8bit height-field for this source data, therefore we are working on a 4e-3f granularity. Offsetting the initial height of the shadow ray by this quantity generates the "clean" pictures above [grin]
Next time I'll see about posting a summary of the performance complexities for the various effects. If I can work out how to post a table of figures in this journal that is...