[Algorithms] Re: GDAlgorithms-list digest, Vol 1 #1277 - 6 msgs
Brought to you by:
vexxed72
From: Rob J. <poc...@nt...> - 2002-11-04 20:04:21
|
Nicholas Francis Wrote "Has anyone played with this?" Yes, see my last post and image :) I'm holding fragment depth (for depth peeling), shadow count and in-scatter values in a standard 8bit pbuffer (not floating point) and the 8 bit depth isn't so much of a problem. The pbuffer is low res and when it's blended back over the final scene to add light and shadows, any dodgy Z errors blend away. I'm not using floating point buffers because you can't dest blend into them (I need the blend for the shadow count). My demo is all in Cg but thinking about it, it should be feasible in standard OpenGL. Depth peeling can be done using depth textures (GF3+) Use stencil to maintain shadow in/out count - **need to read back stencil on each depth peel pass to determine if the previous layers pixel was in shadow or not (or perhaps do two passes, one stencil==0 , one stencil>0 and only add in-scatter on stencil ==0) Blending into in-scatter can be done by binding back the fpbuffer as input on each depth peel pass... hmmm... The bottleneck is probably (shadow volume) fill rate. With a simple scene 4 or 5 depth-peel passes is OK but with complex models you'd need to construct an optimum silhouette. Rob j. |