Operating System: :Windows 10
Render System:: Direct3D11
Hi, we're updating from Ogre 1.9 to Ogre 1.12.1 and I'm having a problem with the texture shadows I just don't know how to solve it....
We are using terrains defined with a heightmap and our own TerrainMaterial generator class, everything works fine in OpenGL but in direct3d11 shadows doesn't work (see the video).
TerrainMaterial generator, code creating
Code: Select all
TerrainMaterial::Profile::generate(const Ogre::Terrain* terrain)
{
// delete previous material definition and create a new one using updated texture names
mat = Ogre::MaterialManager::getSingleton().getByName( TERRAIN_MATERIAL_NAME );
if (!mat.isNull())
{
Ogre::MaterialManager::getSingleton().remove(matName);
}
// get parent to resolve image files
TerrainMaterial* parent = static_cast<TerrainMaterial*>(getParent());
mat = Ogre::MaterialManager::getSingleton().create(
TERRAIN_MATERIAL_NAME, parent->mResourceGroup);
mat->setCullingMode( Ogre::CULL_CLOCKWISE );
mat->getTechnique(0)->setAmbient( 1.0, 1.0, 1.0 );
mat->getTechnique(0)->setDiffuse( 1.0, 1.0, 1.0, 1.0 );
mat->getTechnique(0)->setSpecular( 0.2, 0.2, 0.2, 0.2 );
mat->getTechnique(0)->setLightingEnabled( false );
mat->setReceiveShadows( true );
****** more code related to detail and skid marks here, not relevant ****
tu = mat->getTechnique(0)->getPass(0)->createTextureUnitState();
tu->setContentType( Ogre::TextureUnitState::CONTENT_SHADOW );
tu->setTextureAddressingMode(Ogre::TextureUnitState::TAM_BORDER);
tu->setTextureBorderColour(Ogre::ColourValue::White);
return mat;
};
Code: Select all
mSceneMgr->setShadowTechnique( Ogre::SHADOWTYPE_TEXTURE_MODULATIVE_INTEGRATED );
mSceneMgr->setShadowTextureSelfShadow(true);
mSceneMgr->setShadowCasterRenderBackFaces(true);
mSceneMgr->setShadowColour( ColourValue(0.45,0.45,0.45) );
mShadowCameraSetup = new Ogre::LiSPSMShadowCameraSetup();
Ogre::ShadowCameraSetupPtr currentShadowCameraSetup = Ogre::ShadowCameraSetupPtr(mShadowCameraSetup);
mSceneMgr->setShadowCameraSetup( currentShadowCameraSetup );
mShadowCameraSetup->setOptimalAdjustFactor( GBGlobals::CAMERA_SHADOW_ADJUST_FAR );
mSceneMgr->setShadowTextureSize( 2048 );
mSceneMgr->setShadowFarDistance( 300.0f );
mCamera->setNearClipDistance( 0.25 );
mCamera->setFOVy( Degree( 50.0 ) );
Any ideas ? thank you