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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org