Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

pangplast

Avoid Shadow Volume Self Shadowing?

This topic is 5224 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi! I''ve finally decided to use the Shadow Volume method in the DX9 sample. Mostly since I havent found a working shadow mapping or ZFail sample for dx9. Anyhow, It looks good and all but what I really want to do is to use a low-pygon model for the shadow volume and project it only on the ground. Maybe I even want to use a sinple box as a carshadow. Can anyone please give me a hint on what to do to avoid shadow volumes shadowing themselves? Project Website http://buggy.vaultcity.org/ .Pangplast

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Well, you could avoid self-shadowing by rendering your shadow-caster (in your case, the car) after you´ve rendered the shadow-quad. It works for me!

Share this post


Link to post
Share on other sites
I figures so too. I might have distorted the code some... I''m going to try to remove the airplane in the sample but I do believe I''ve tried that before. I have to get back to you on that one.

Anyhow here''s what it looks like when rendering the shadow and not the caster.

http://buggy.vaultcity.org/buggy/bmxkid/shadow.gif

Share this post


Link to post
Share on other sites
Here is the DX9 sample airplane rendering just the shadow.

http://buggy.vaultcity.org/buggy/bmxkid/shadow2.gif

.Pangplast

Share this post


Link to post
Share on other sites
quote:
Original post by pangplast
Hi! I've finally decided to use the Shadow Volume method in the DX9 sample. Mostly since I havent found a working shadow mapping or ZFail sample for dx9.


shadow mapping:
DX9 - http://www.ati.com/developer/samples/dx9/ShadowMap.html
DX8 - http://www.ati.com/developer/samples/shadowmap.html
OpenGL and DirectX - http://developer.nvidia.com/object/hwshadowmap_paper.html
quote:
Original post by pangplast
Anyhow, It looks good and all but what I really want to do is to use a low-pygon model for the shadow volume and project it only on the ground. Maybe I even want to use a sinple box as a carshadow.


Look up "planar shadows" or "projection shadows".
quote:
Original post by pangplast
Can anyone please give me a hint on what to do to avoid shadow volumes shadowing themselves?


Normally, you wouldn't want to do that. Most applications *want* objects to be able to shadow themselves, because that's what happens in the real world. Shadow Maps and Shadow Volumes allow you to do this. If you don't want self-shadowing, there are other less robust (and simpler) shadowing techniques you can use.

neneboricua

[edited by - neneboricua19 on June 6, 2004 3:24:16 PM]

Share this post


Link to post
Share on other sites
The only reason I could see for not having self-shadowing would be for some sort of special effect (a character that cast''s a shadow, even though light doesn''t seem to effect him directly?)

Share this post


Link to post
Share on other sites
Ok. Self shadowing is a good thing and it looks cool and all. However I wish to use a low-polygon moden for the shadow for two reasons.

1. It''s faster
2. I can without too much cpu calculate if camera is inside a volume.

Now if I use a low-polygon model to shadow the real model it will produce side effects such as the low-poly model shadowing itself. (And this is bad).

Why the shadow model shadows itself I can''t understand either since ZWRITE is turned off in the two renderpasses.

The same problem exists in the DX9 sample too. (Basically tha same code that I use).

Now does anyone know if there''s a way to solve this problem?

If anyone could point me to a working shadow mapping sample that works with most cards and DX9 that would kick-ass to.

.Pangplast

Share this post


Link to post
Share on other sites
quote:
Original post by pangplast
Ok. Self shadowing is a good thing and it looks cool and all. However I wish to use a low-polygon moden for the shadow for two reasons.

1. It''s faster
2. I can without too much cpu calculate if camera is inside a volume.

Now if I use a low-polygon model to shadow the real model it will produce side effects such as the low-poly model shadowing itself. (And this is bad).


It''s to be expected that lower quality models will produce lower quality shadows. Especially when using a technique like Shadow Volumes, which is *very* dependent upon the quality of the geometry.
quote:
Original post by pangplast
If anyone could point me to a working shadow mapping sample that works with most cards and DX9 that would kick-ass to.


The links I posted previously apply to pretty much any hardware. The white paper from NVIDIA explains the theory and basic steps in pretty good detail. The only problem is that they assume you''re using NVIDIA hardware which has the ability to use depth buffers as textures.

If you take the ideas from the NVIDIA white paper and then look at the ATI samples, you''ll see that it''s very easy to make the ATI samples run on any hardware. As a matter of fact, the ATI''s DX8 shadow mapping sample will run on any hardware. The main difference between their DX8 and DX9 samples is that the DX9 sample uses floating point textures. Just change the render target type to be some other format and it should run just fine on any DX9 hardware.

neneboricua

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!