[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] shadow demo



On Fri, Mar 14, 2008 at 3:11 PM, Casey Duncan <casey@xxxxxxxxxxx> wrote:
On Mar 13, 2008, at 4:12 PM, René Dudfield wrote:

> Hello,
>
> I found some things to improve the quality of the shadow mapping, and
> written in more comments.
>
> http://rene.f0o.com/~rene/stuff/shadows_rd.zip
>
>
> It also by default uses a polygon as a floor, and a teapot from GLUT.
> There's a constant at the top of demoShadows.py which changes this.
> However the objects you draw are a very simple part of this demo, they
> could be anything really.  The complexity comes from the other code.
>
> I think maybe the glPolygonOffset call may have something to do with
> it... but haven't managed to get the call to do anything.  I tried
> glScale, and glTranslate, but that seems to be wrong - and in one
> paper it says you can't use translate/scale but have to use
> glPolygonOffset.
>
>
> The main thing which improved quality for me was to use
> GL_DEPTH_COMPONENT32 instead of GL_DEPTH_COMPONENT with the
> glTexImage2D call.  GL_DEPTH_COMPONENT lets the driver pick the
> resolution (which for this Imac as only 8 bit).
>
> I haven't managed to increase the resolution of the shadow map
> successfully.

I believe you can use FBOs for that since they can have a higher res
than the screen. Basically you render the shadow as a high-res texture
and apply to the scene.
I think that could work--of course I have no idea how to actually do it.
If you want real-time soft shadows (i.e., blurred) then you best bet
is probably a custom shader, though you might be able to get a decent
approximation by applying a rendered texture multiple times at
different scales and opacities. With a shader you'll have ultimate
control, however.
I imagine so, but actually, all I really want at this point is a working method of getting something.  For example, I can't load my own models without the shadows messing up.  Again, a single quad, 1 unit square, shadowing a larger quad, 1024 units square, would be far more informative than any demo--again, simplicity helps.
-Casey
Ian