Hello adrian,
my database is a terrain, thats 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