This is my Code:
Code: Select all
void BasicTutorial2::createCamera(void)
{
// create the camera
mCamera = mSceneMgr->createCamera("PlayerCam");
// set its position, direction
mCamera->setPosition(Ogre::Vector3(0,100,500));
mCamera->lookAt(Ogre::Vector3(0,0,0));
// set the near clip distance
mCamera->setNearClipDistance(5);
mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller
}
//-------------------------------------------------------------------------------------
void BasicTutorial2::createViewports(void)
{
// Create one viewport, entire window
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(Ogre::ColourValue(0,0,0));
// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
}
//-------------------------------------------------------------------------------------
void BasicTutorial2::createScene(void)
{
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));
mSceneMgr->setShadowTechnique(Ogre::SHADOWTYPE_TEXTURE_ADDITIVE);
//mSceneMgr->setShowDebugShadows(true);
Ogre::Entity* entNinja = mSceneMgr->createEntity("Ninja", "ninja.mesh");
Ogre::SceneNode* ninjaNode= mSceneMgr->getRootSceneNode()->createChildSceneNode("NinjaNode");
entNinja->setCastShadows(true);
ninjaNode->attachObject(entNinja);
ninjaNode->yaw(Ogre::Degree(-90));
Ogre::Plane plane(Ogre::Vector3::UNIT_Y, 0);
Ogre::MeshManager::getSingleton().createPlane("ground", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
plane, 1500, 1500, 20, 20, true, 1, 5, 5, Ogre::Vector3::UNIT_Z);
Ogre::Entity* entGround = mSceneMgr->createEntity("GroundEntity", "ground");
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(entGround);
entGround->setCastShadows(false);
Ogre::Light* pointLight = mSceneMgr->createLight("pointLight"); //vorderer Schatten
pointLight->setType(Ogre::Light::LT_POINT);
pointLight->setPosition(Ogre::Vector3(0, 150, 250));
pointLight->setDiffuseColour(1.0, 0.0, 0.0);
pointLight->setSpecularColour(1.0, 0.0, 0.0);
pointLight->setCastShadows(true);
Ogre::Light* directionalLight = mSceneMgr->createLight("directionalLight"); //hinterer Schatten
directionalLight->setType(Ogre::Light::LT_DIRECTIONAL);
directionalLight->setDiffuseColour(Ogre::ColourValue(.25, .25, 0));
directionalLight->setSpecularColour(Ogre::ColourValue(.25, .25, 0));
directionalLight->setDirection(Ogre::Vector3( 0, -1, 1 ));
directionalLight->setCastShadows(true);
Ogre::Light* spotLight = mSceneMgr->createLight("spotLight"); //seitlicher Schatten
spotLight->setType(Ogre::Light::LT_SPOTLIGHT);
spotLight->setDiffuseColour(0, 0, 1.0);
spotLight->setSpecularColour(0, 0, 1.0);
spotLight->setDirection(-1, -1, 0);
spotLight->setPosition(Ogre::Vector3(300, 300, 0));
spotLight->setSpotlightRange(Ogre::Degree(35), Ogre::Degree(50));
spotLight->setCastShadows(true);
}
Here are pics for the shadowtypes with my results.
You do not have the required permissions to view the files attached to this post.