Hello adrian,

 

my database is a terrain, that’s right. And I use a simple point light.

My problem is, I think the PSSM need more performance than the static shadow
map (texture)? Or it is a wrong thought?

 

And what is a frustum base shadow map?

 

Thanks,

 

Martin

 

  _____  

Von: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Im Auftrag von Adrian
Egli OpenSceneGraph (3D)
Gesendet: Freitag, 20. Juni 2008 17:38
An: OpenSceneGraph Users
Betreff: Re: [osg-users] static ShadowMap

 

Hi martin, 

what kind of 3d database do you like to visualize with shadow? and what kind
of light are you using. if your scene is a terrain like database, you can
have a look at parallel split shadow map. if you have a small scene, than
you can visualise with static shadow. but it the scene is too big for high
quality shadow, it would be better to use a PSSM or frustum base shadow map,
otherwise it's not sure that you don't have enough resolution. 

regards 
adrian 

2008/6/19 "Martin Großer" <[EMAIL PROTECTED]>:

Hello,

first, I have a general question. If you want to use shadows in you scene,
would you use the shadow volumes or the shadow maps?
I use the shadow maps from the osgShadow nodekit. But the normal ShadowMap
is unaesthetic and when I use the softShadowMap, my application runs very
slowly. And my idea is a static ShadowMap, which create once at the
beginning and save this as ImageFile.

Here is my source code, but it doesn't work.

// ShadowTexture erstellt (leer)
   _texture = new osg::Texture2D;
   _texture->setTextureSize(TEXTURE_SIZE_X, TEXTURE_SIZE_Y);
   _texture->setInternalFormat(GL_DEPTH_COMPONENT);
   _texture->setShadowComparison(true);
   _texture->setShadowTextureMode(osg::Texture2D::LUMINANCE);
   _texture->setFilter(osg::Texture2D::MIN_FILTER,osg::Texture2D::LINEAR);
   _texture->setFilter(osg::Texture2D::MAG_FILTER,osg::Texture2D::LINEAR);
 
_texture->setWrap(osg::Texture2D::WRAP_S,osg::Texture2D::CLAMP_TO_BORDER);
 
_texture->setWrap(osg::Texture2D::WRAP_T,osg::Texture2D::CLAMP_TO_BORDER);
   _texture->setBorderColor(osg::Vec4(1.0f,1.0f,1.0f,1.0f));

     // Kamera für das PreRendering einstellen
    {
       // Kamera erstellen
       osg::ref_ptr<osg::Camera> _camera = new osg::Camera;

                               // Kamera konfigurieren
 
_camera->setReferenceFrame(osg::Camera::ABSOLUTE_RF_INHERIT_VIEWPOINT);
       //_camera->setCullCallback(new CameraCullCallback(this));
       _camera->setClearMask(GL_DEPTH_BUFFER_BIT);
       _camera->setClearColor(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
       _camera->setComputeNearFarMode(osg::Camera::DO_NOT_COMPUTE_NEAR_FAR);

       // Viewport in Texturegröße erstellen
       _camera->setViewport(0,0,TEXTURE_SIZE_X,TEXTURE_SIZE_Y);

       // PreRendering einstellen
       _camera->setRenderOrder(osg::Camera::PRE_RENDER);

       // Kamera soll OpenGL Frame Buffer Object nutzen
 
_camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);

       // hänge die Texture als Buffer an die Kamera
       _camera->attach(osg::Camera::DEPTH_BUFFER, _texture.get());

                               _camera->addChild(_scene.get());

 
osgDB::writeImageFile(*(_texture->getImage()),"test.bmp");
       }


What is my mistake? Or have anyone a idea, whether I can create a static
shadow with the osgShadow nodekit?

Cheers,

Martin
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
********************************************
Adrian Egli 

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to