Hi.
this is a question more for the experts here, basically I want to find out if I can help anyone.
I know that sounds odd, but I'll explain the situation:
first, the backstory.
Nearly 3 years ago I was struggling terribly with getting shadow volumes to work in a quake3 map renderer. To cut a long story short, I was using the 'classical' algorithm that you will find in many papers/articles (such as those on developer.nvidia.com). Triangles with 3 edge pointers, 3 vertices, Edge with 2 triangle pointers, 2 vertices, etc.
I spent a long time, never managing to get it to work. Too many problems with non-2-manifold geometry, generating from triangle sub-sets (space partitioning), etc. Trying to get a robust completly optimal SV seemed to be impossible the way I was going.
So, I spent a few months going quite insane, until one day, in the middle of a lecture I had an idea just hit me, absolutly out of nowhere. To which I immediatly got up and ran out, back to my room and PC, where I had *optimal* SSVs working perfectly in about 10 minutes, and much less code.
I eventually wrote a small paper for a even smaller conference. I'm not all that proud of it, since I was unsupervised and I was younger. So I don't recommend that.
I've thought it over a lot, had others give advice, etc... The conclusion I've come to is I'm thinking of making a small flash-based tutorial on the subject. Stepping through a visualisation of why classic SSVs break, and how to go about solving it all.
The idea being implant the algorithm in peoples heads, and why it works, not just shove code at them.
The reason for this all, was because when I read the cro-team interview on this site, he includes the very problem I had as one of his reasons for not liking SSVs ("closed meshes only"). Since he also meantioned cpu skinning, that made me pretty sure he doesn't know about this way (or any other way that is similar?)
So the question is,
am I wasting my time if I do this? ie was the paper also a waste of time. Can anyone honestly say they are interested - or would even use it?
I was always very worried I had missed something blindingly obvious somewhere else that solved the same problems.? Because when it comes down to it, it's actually a bloody simple algorithm.
I would assume that there is something else out there. I'd be very intereseted to know the algorithms used in doom3/fear for example.
I can pretty much guarentee that the algorithm works perfectly, I've never seen a dodgy shadow using it in nearly 3 years.
It can't be done 100% on the gpu (except xenos/dx10 should be possible), but it can be done with just generating an index buffer on the cpu for it (if vertices are duplicated with w=0, and you use a v-shader). So it's very appropriate for static lights.
For an example, using the ultra-detailed quake3 map 'NV15 bunker', my current little test app (for testing HDR), which I didn't even try to optimise, generates SSVs for the 1000+ lights in the map in about 5 seconds.
I would greatly appreciate feedback.
Thanks for your time.
It's a hard thing to ask because I feel like I'm either going to be patronising or feel like I'm showing off... I don't know.. :/ while I do sometimes like to show off, this isn't one of those times
this is a question more for the experts here, basically I want to find out if I can help anyone.
I know that sounds odd, but I'll explain the situation:
first, the backstory.
Nearly 3 years ago I was struggling terribly with getting shadow volumes to work in a quake3 map renderer. To cut a long story short, I was using the 'classical' algorithm that you will find in many papers/articles (such as those on developer.nvidia.com). Triangles with 3 edge pointers, 3 vertices, Edge with 2 triangle pointers, 2 vertices, etc.
I spent a long time, never managing to get it to work. Too many problems with non-2-manifold geometry, generating from triangle sub-sets (space partitioning), etc. Trying to get a robust completly optimal SV seemed to be impossible the way I was going.
So, I spent a few months going quite insane, until one day, in the middle of a lecture I had an idea just hit me, absolutly out of nowhere. To which I immediatly got up and ran out, back to my room and PC, where I had *optimal* SSVs working perfectly in about 10 minutes, and much less code.
I eventually wrote a small paper for a even smaller conference. I'm not all that proud of it, since I was unsupervised and I was younger. So I don't recommend that.
I've thought it over a lot, had others give advice, etc... The conclusion I've come to is I'm thinking of making a small flash-based tutorial on the subject. Stepping through a visualisation of why classic SSVs break, and how to go about solving it all.
The idea being implant the algorithm in peoples heads, and why it works, not just shove code at them.
The reason for this all, was because when I read the cro-team interview on this site, he includes the very problem I had as one of his reasons for not liking SSVs ("closed meshes only"). Since he also meantioned cpu skinning, that made me pretty sure he doesn't know about this way (or any other way that is similar?)
So the question is,
am I wasting my time if I do this? ie was the paper also a waste of time. Can anyone honestly say they are interested - or would even use it?
I was always very worried I had missed something blindingly obvious somewhere else that solved the same problems.? Because when it comes down to it, it's actually a bloody simple algorithm.
I would assume that there is something else out there. I'd be very intereseted to know the algorithms used in doom3/fear for example.
I can pretty much guarentee that the algorithm works perfectly, I've never seen a dodgy shadow using it in nearly 3 years.
It can't be done 100% on the gpu (except xenos/dx10 should be possible), but it can be done with just generating an index buffer on the cpu for it (if vertices are duplicated with w=0, and you use a v-shader). So it's very appropriate for static lights.
For an example, using the ultra-detailed quake3 map 'NV15 bunker', my current little test app (for testing HDR), which I didn't even try to optimise, generates SSVs for the 1000+ lights in the map in about 5 seconds.
I would greatly appreciate feedback.
Thanks for your time.
It's a hard thing to ask because I feel like I'm either going to be patronising or feel like I'm showing off... I don't know.. :/ while I do sometimes like to show off, this isn't one of those times