Shadow Volumes optimizations

Started by
3 comments, last by godmodder 18 years ago
Hello, I've successfully implemented ZPass/ZFail shadow volumes in my engine. I now want to optimize them, so they allow for higher framerates. I wanted to render my volumes using GL_QUAD_STRIP rather then standalone quads, but I don't really know how to do this. Some online papers mention that I'm required to calculate possible silhouette loop connectivity. Well, I think I've already calculated this, but I'm not sure. The NeHe tutorial on shadow volumes talked about finding the "neighbouring indices" and the "face connectivity". My question: is this the same? and how do I render the quad strip when I have the right data? PS: If anyone knows how to render shadow volumes with external triangles, please explain this too if you want.
Advertisement
Anyone?
The presentation at the link below has some images, which explain rather nicely how to do stencil shadows completely on the GPU with proper vertex shader. Check pages 21-23.

Link
Quote:
silhouette loop connectivity


i think that means a closed loop of all edges of the silhouette. If you have that you can just duplicate every vertex on that edgeloop,shift it away from the light and construct the trianglestrips like that:

vertex1,shiftedVertex1,vertex2,shiftedVertex2,vertex3,shiftedVertex3,etc.

the link by Krzysiek K surely helps to improve performance even more but it requires you to add degenerated triangles on your mesh.

regards,
m4gnus
"There are 10 types of people in the world... those who understand binary and those who don't."
Thanx for the info. Does anyone have any info about using external triangles to improve performance?
I'll look at using a vertex shader to improve performance, but does anyone have a link to info about the semi-automatic method. I'd like to let the CPU calculate the silhouette and let the GPU extrude the vertices. That way I won't have to insert redundant data into the vertex array.

This topic is closed to new replies.

Advertisement