(L) [2006/09/02] [Phantom] [Faster shadows] Wayback!A little idea I had:
Suppose, I just casted a 4x4 packet to probe for shadows. Now, for the next packet, I pick one of the primitives that was found for the right column of 4 pixels. Then, I first try to intersect the new packet with this primitive. Any ray in the new packet that also intersects this primitive is thus 'free', and if all rays intersect this primitive, the entire packet is for free. If none of the rays hit the primitive, or there is no primitive found in the previous packet, I get a small penalty (just the intersection).
I believe this is not new (it's called shadow caching I believe), but it might work, especially for scenes with relatively large primitives, right?
Anyway it's easy to try, so I'll report on the results soon.
_________________
--------------------------------------------------------------
Whatever
(L) [2006/09/02] [olliej] [Faster shadows] Wayback!I believe i tried that some time ago (though for single ray, not packet) and it had a slight improvement, but that's difficult to qualify as my raytracers are all abysmally slow overall... :-/
(L) [2006/09/02] [Phantom] [Faster shadows] Wayback!I tried it with a quick hack but it's giving me bogus results (tons of missed shadows, clearly in 4x4 patterns). Need to investigate further. To get at least some result today I turned Schlick & friends in SIMD. Got a nice 3% speedup. Dude. Anyway, I added camera control to the app, and now I can stroll the dungeons of Sponza at 15 fps on my laptop. [SMILEY Smile]
_________________
--------------------------------------------------------------
Whatever