Re: [osg-users] static ShadowMap

2008-06-23 Thread Martin Großer
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_ptrosg::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
--
Pt! 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


Re: [osg-users] static ShadowMap

2008-06-20 Thread Adrian Egli OpenSceneGraph (3D)
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_ptrosg::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
 --
 Pt! 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