This demo written in OpenGL shows some areas where the use of PS3.0 over PS2.0 is more advantageous.
A while back when I was browsing through NVIDIA SDK, I noticed an interesting soft shadow demo where the penumbra was generated by jittering the sampling position up to 64 times and averaging the results.
That demo however was using a directional light source, and as JC would say (
), 90 % of the lights in nature are omni directional, therefore I extended the concept discussed in the SDK and created this demo.
The advantage of PS3.0 is that we don't have to over sample unless we're on a shadow edge. If we detect that we're on a lit or completely shadowed area, we can skip the 28 x 2* of 32x2* texture fetch necessary to blur the penumbra.
Sometimes the performance gain is up to 50%, however donít expect this demo to run beyond the 100 FPS, my current configuration (read sig) barely manage to maintain a 50FPS.
Please pardon the poor quality of the textures/models: I'm a coder, not an artist :'(
* For every shadow sample, we also fetch a 1D texture element that encodes the new jittered position;
PS: Hey MikeC, could you please upload this demo to nvnews server and let me know about it.
My bw is totally sucked out :/
You really need drivers that support FBO to fully enjoy this one.