   GPU Volume Rendering
  I have a GPU volume rendering working.  I am using the algorithm were I render view aligned proxy polygons that cut through the volume with blending.  We are using pretty large datasets 512x512x256.  However, even on high ends we are barely making 50 frames per second, and we need to support weaker cards.  I think the problem is one or two things: the quads rendered in back-to-front order and blended are taxing the fill rate.  The GPU maybe has problems with the large dataset (it fits in video memory, but still).  Any advice?I heard volume rendering on GPU can also be done with a ray tracing algorithm.  Would this likely be faster than the algorithm I'm doing?  Can it be implemented on VS/PS 2.0?   
  How many proxy planes are you drawing?  I mean, if you're drawing 256 of them, then you're asking for 256 times overdraw at 50 Hz, which isn't shabby IMO.What blending function are you using?  Standard SRC,1-SRC?  You might be doing a lot of wasted compositing when the source alpha is 1.0f.  If your proxy polygons are likely to have large chunks of fully opaque geometry then you might be better off restructuring things to be like this:1. set alpha test to reject any pixels with alpha < 1.0f2. draw all proxy geometry front to back3. set alpha test to reject any pixels with alpha = 1.0f4. draw all proxy geometry back to front;Quote:How many proxy planes are you drawing? I mean, if you're drawing 256 of them, then you're asking for 256 times overdraw at 50 Hz, which isn't shabby IMO.Yeah it runs fine on my geforce 8800.  It even runs in real time on my other computer 6800 GTS.  But getting weaker than that, it runs under 30 frames per second.I still have some optimizations I can do.  I guess I was really just wondering if the GPU ray tracing method would be significantly faster or not.Quote:What blending function are you using? I'm using:SrcBlend = One;DestBlend = InvSrcAlpha;   ;Quote:Quote:What blending function are you using? I'm using:SrcBlend = One;DestBlend = InvSrcAlpha;OK, then you might be able to benefit from the rendering method I suggested in the previous post.  Basically the idea behind that is to prepare the Z buffer for quick pixel reject and deal with the opaque parts and the partially transparent parts separately.  If all your geometry is partially transparent, then this won't help, but if you have solid bits surrounded by partially transparent bits, then it should help.   