Faster Shadow Volume Found - Prove Me Wrong...

Started by
25 comments, last by baskuenen 20 years, 5 months ago
If you don''t want to offer concrete evidence of your method''s power, then offer us theoretical evidence. If you really want to talk in terms of theory, then talk in terms of theory - let''s see the formula that proves you will have more than a marginal drop in faces rendered.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Advertisement
Repeat concrete evidence...

quote:Original post by baskuenen
I''ve checked the sources of the NVidia demo (http://developer.nvidia.com/object/fast_shadow_volumes.html)

Only thing that needs to be changed in the sources is:
BasicModel.cpp, line 574 & 575, replace with:


if(!m_isBackfaceArray[g]) { // take lighted faces instead of dark
for (int w = 2; w >= 0; w--) { // flip face



You probably wont get a huge incease in fps, because the demo suffers from slow fillrate (like all shadowvolume demos, with current hardware).
In any case, what you should be able to notice, is the effect described above, when a light is inside a shadowcasting object.


If I would setup a formula describing the lighted area on a sphere, I''d be waisting time, on something fairly obvious
I could even write a pages long formula for lighted areas on triangles meshes, but those formulas have been around for years, and are missing the point. The point is; setting the link between the average lighted surface...etc... and the shadow volume... ...and the vertexrate.
I think you''re the one missing the point. None of us cares to test your pet theory to prove you right, and none of us cares to take the trouble to definitively prove you wrong. If you want a discussion, implement it yourself and give us something worth discussing.

Ideas are worth nothing. The ability to act on ideas is worth everything. That''s a very important part of the programming industry to learn, and you need to learn it.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Speak for yourself. We''re not speaking of a game idea here, but an algorithm. I welcome any idea for new algorithms (or to improve others).

Bas, in order to test the performance improvement, i''d suggest disabling rendering of the shadow volumes, or testing with a very small window. That way you will no longer be fillrate limited.

Y.
Sigh. Why am I still posting on this forum
I guess its the respect there was a few years ago.
Some tough-ass moderators are urgently needed here.
I''ll try and ignore the kiddies for now

So thx Ysaneya. Atleast you noticed this IS the Graphics Programming and Theory forum

I''ve counted the faces rendered, and it''s less.
I''ve chosen to drop performance testing, because its marginal anyway. On another forum someone proposed to count the light/dark faces, and project the set with least amount. This is even faster. But then we lose the extra we get from projecting lighted faces only.

The extra is:
when a light is inside a shadowcasting object,
and we project lighted faces inverted to infinity,
the world doesnt fall into complete darkness,
but the shadowcasting object casts none or only a partial shadow,
and the rest of the world remains in the light.

This is because when a light is inside the shadowcasting object,
there are no (or almost no) lighted faces. Just like there are no (or almost no) silhouette edges.
Its true that you submit a wee bit of fewer triangles using your method, but it appears to be a very subtle enhancement.

The thing is, the total area of the rendered faces in screenspace will be the same, no matter how you close your volumes, so you wont save any fillrate.

you save submissions of some vertices, but it should not be much as i imagine it - unless your light is really really close to an object.

In fact, the closer it are, the uglier the shadow will be, so you tend to avoid this situation.

So, yeah, it should work, as I see it, but it won''t do any real changes, as the limiting factor is fillrate.

Jonas Meyer Rasmussenmeyer@diku.dk
quote:Original post by baskuenen
On another forum someone proposed to count the light/dark faces, and project the set with least amount. This is even faster. But then we lose the extra we get from projecting lighted faces only.



Actually, I suggested that in one of my posts In fact I think an adaptive solution of some kind could possibly be used to great effect, and although I do not personally have time to implement it (as I''m going R&D in a lot of other areas at the moment) I''d be interested to see someone else work with it.

Its certainly interesting to discuss potential enhancements to your algorithms, but if you really want a good discussion, you need more than just theoretical speculation. You went out and did your homework, and for that I congratulate you. My whole point was that it doesn''t seem that any of us was going to do your homework for you.

Perhaps I have an overly idealistic view of this type of discussion, but I think the burden of proof is on you, not me. I don''t see any reason why I should be the one working to prove your theory; I have plenty of other theories which I am getting paid to prove. In this kind of a situation I expect the theorist (that''d be you) to provide something more than just the basic sketch of an idea.

Again, perhaps I''m spoiled by the methods used in academia, but in general I come into a discussion about new ideas expecting that, at the very least, the person with the ideas would have devised some support for his theory, or at least worked out a few different test cases by hand instead of just claiming that it always works. I think the real source of contention here is the "I dare you to try and prove me wrong" attitude in the OP, which I usually expect with someone who has a solid, definitive case - not someone with the beginnings of a good idea. In my typical unrefined and blunt way, I went about saying: give me something to prove wrong. And that is the core issue.

Yes, I know I''m a bit rough on people, but that''s me. I hate beating around the bush and sugar-coating my criticism. I stand by my point, however: if you want people to discuss an idea, say something along the lines of "I have this idea, I''d like input on how to make it better, help implementing it, and perhaps some ideas for test cases and possible ehancements" not "I have an idea, prove me wrong."

Yes, I''m anal about that kind of thing. You''ll live



btw, I''d be glad to discuss something if you get around to providing something to discuss.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This topic is closed to new replies.

Advertisement