[osg-submissions] ShadowMap update

Mihai Radu radu at cm-labs.com
Tue Oct 2 17:26:02 PDT 2007


Thank you Robert,

After some more tweaking I found the error I made in dealing with
spot-lights, and it's working properly now. The _texGen was not being
updated for that case.

I also changed the clamp parameters for _texture, so that if objects
fall outside of the map, they are not shadowed.

This means that now ShadowMap can use any kind of light, directional,
point or spotLight.

For future developments I could work on some more sophisticated shaders,
like per-pixel illumination, I wonder if there is a demand for that, or
if the shaders used in ShadowTechniques are meant to be very simple
implementations for illustration purposes.

Cheers
Mihai

Robert Osfield wrote:
> Thanks Mihai,
>
> The changes fixes things at my end so the changes are now checked in.
>
> On 10/2/07, Mihai Radu <radu at cm-labs.com> wrote:
>   
>> Hello Robert,
>>
>> I have fixed the issues you mentioned, for the shader the renaming of
>> the Uniform variables was not complete, and for the texture size, I
>> changed to osg::Vec2s to avoid conversion warnings (they were not
>> showing at all in VisualStudio 2005).
>>
>> Using osgshadow example the flag "--debugHUD" will enable the debug
>> display, even though right now it only displays white.
>> Using spotlights it's still not giving the right results, I am looking
>> into the reasons for that.
>>
>> Cheers
>> Mihai Radu
>>
>> Robert Osfield wrote:
>>     
>>> Hi Mahai,
>>>
>>> I've applied your change but get the follow errors when I run
>>>
>>> osgshadow  cow.osg --base -sm
>>>
>>> FRAGMENT glCompileShader "" FAILED
>>> FRAGMENT Shader "" infolog:
>>> (8) : error C1008: undefined variable "ambientBias"
>>> (8) : error C1008: undefined variable "ambientBias"
>>>
>>> glLinkProgram "" FAILED
>>> Program "" infolog:
>>> Fragment info
>>> -------------
>>> (8) : error C1008: undefined variable "ambientBias"
>>> (8) : error C1008: undefined variable "ambientBias"
>>>
>>> There is also a white rectangle overlayed on the window, I presume
>>> this is your debug camera.  This should not be there by default.
>>>
>>> On compile I also got the following warnings:
>>>
>>> /home/robert/OpenSceneGraph/src/osgShadow/ShadowMap.cpp: In member
>>> function 'virtual void osgShadow::ShadowMap::init()':
>>> /home/robert/OpenSceneGraph/src/osgShadow/ShadowMap.cpp:141: warning:
>>> converting to 'unsigned int' from 'float'
>>> /home/robert/OpenSceneGraph/src/osgShadow/ShadowMap.cpp:142: warning:
>>> converting to 'unsigned int' from 'float'
>>>
>>> Could you please fix these problems and resubmit as the changes aren't
>>> suitable for integration with 2.2 as they are.
>>>
>>> Robert.
>>>
>>> On 10/1/07, Mihai Radu <radu at cm-labs.com> wrote:
>>>
>>>       
>>>> Hi Robert,
>>>>
>>>> I hope it's not to late to have some additions to ShadowMap included in
>>>> the 2.2 release.
>>>> CM-Labs will be using this as the basis for shadows in the osg 2.2 based
>>>> simulator, and it would help a lot to have some of these additions into
>>>> the main osg.
>>>> If the there is no quick fix for using spot-lights I can chop-out that
>>>> part of the code and re-post the files asap.
>>>>
>>>> Most of the additions are small utility methods:
>>>> - set the resolution of the shadow map; it calls dirty() to
>>>> re-initialize at next update
>>>> - keep a list of Shader objects to use instead of the default ones, if
>>>> the list is empty, the default shaders are used
>>>> - explicitly create the Uniform variables, so that subsequent additions
>>>> that require more Uniforms can put them in a central place
>>>> - set a Light or LightSource to use explicitly for shadow casting,
>>>> allows multiple lights in the scene, with one casting shadows
>>>>
>>>> There are two additions that do not ( yet ) function correctly, but in
>>>> the present usage they do not interfere with the regular usage of the
>>>> techique:
>>>> - support for using spotlights, it's using Light.spotCutoff to determine
>>>> if it's a spot-light and not point-light,
>>>>     there is an error in the setup of either the shadow camera or the
>>>> texgen, most likely due to the direction of the spotlight, since the
>>>> position is being used just like in point or directional lights.
>>>> - creation of a debugHUD
>>>>     the hud is created properly, ( the example included shows it ), but
>>>> it displays only white, there has been some discussion of displaying the
>>>> shadow map, but I could not find it, the addition of a simple fragment
>>>> shader with the appropriate color transform should get this going.
>>>>
>>>> Thank you for your patience
>>>> Mihai Radu
>>>>
>>>> _______________________________________________
>>>> osg-submissions mailing list
>>>> osg-submissions at lists.openscenegraph.org
>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>>>>
>>>>
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> osg-submissions mailing list
>>> osg-submissions at lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>>>
>>>       
>> _______________________________________________
>> osg-submissions mailing list
>> osg-submissions at lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>>
>>
>>
>>     
> _______________________________________________
> osg-submissions mailing list
> osg-submissions at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>   
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ShadowMap.zip
Type: application/octet-stream
Size: 13631 bytes
Desc: not available
Url : http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph.org/attachments/20071002/e6a2a9cb/attachment-0001.obj 


More information about the osg-submissions mailing list