Advertisement

Volume shadows work! Some artifacts, though...

Started by February 05, 2004 02:37 PM
0 comments, last by Marty666 21 years, 1 month ago
Hi all, My volume shadows work. Because opengl uses gouraund shading (interpolation of vertexcolors through faces) some faces that are not facing the light get lit a bit by a vertex facing the light. These faces get entirely dark because of the shadows. This gives an incontinuity between the colors of a face facing the light and a face next to it that''s not facing the light. This can get very ugly. To prevent this each backfacing face has to be in 3 shadow volumes (it''s own and the lightfacing face behind it don''t count anymore). This works fine, but I still get artifacts...

                           ___
                       ___/ (this is the lightdirection pointing
                   ___/      to the left and downward)
           o     |/_
          / \
       2 /   \ 3
        /     \
o------o       o------o
   1             4
                               --- = face
                                o  = vertex

* Face 1 gets shadowed, since it''s in it''s own shadow volume,
  that of face 2 and of face 3.
* Face 2 doesn''t, because it''s only in face 3 its shadow and
  its own.
* So the gouraund interpolation (from the lit vertex (between
  face 2 and 3) still works over face 2).
 
There are some artifacts (in some cases face 1 is entirely lit aswell) And sometimes a shadow is cast from another object closer to the lightsource. This shadowvolume penetrates face2 so casts a shadow on it. This shadow becomes visible, because face 2 is gouraund interpolated. If opengl knew phong shading this problem wouldn''t exist at all, since the normals are interpolated over a face. Is there a way to do fast phong shading (i''m not talking about specular light, just interpolation of normals instead of colors)? Would be nice, cause i could integrate normalmapping aswell this way. Thanx, Marty
_____ /____ /|| | || MtY | ||_____|/Marty
what I explained the last time you posted this problem assumed that only the faces facing the light cast shadows. Having the back faces also cast shadows is unessecary.



| - My project website - | - email me - |

This topic is closed to new replies.

Advertisement