Camera *Main::createCamera(SceneNode *shipSceneNode) { Camera *camera = sceneMgr->createCamera("mainCam"); shipSceneNode->attachObject(camera); camera->setPosition(Vector3(0,0,0)); camera->lookAt(Vector3(0,0,-1)); //camera->setFOVy(Radian(2.0943951)); camera->setNearClipDistance(0.1); camera->setFarClipDistance(1500); // Lighting //sceneMgr->setShadowColour(ColourValue(0.5,0.5,0.5)); // Add some sexy fog ColourValue fadeColour(0.0,0.0,0.0); sceneMgr->setFog(FOG_LINEAR, fadeColour, 0.01,80,550); // Bottom ship light Light *sp = sceneMgr->createLight("bLight"); sp->setType(Light::LT_POINT); sp->setDiffuseColour(0.3,0.3,0.3); sp->setSpecularColour(1.0,1.0,1.0); sp->setDirection(Vector3(0,0,1)); sp->setAttenuation( 600, 1.0, 0.007, 0.0002); // Bottom ship light Light *sp1 = sceneMgr->createLight("tLight"); sp1->setType(Light::LT_POINT); sp1->setDiffuseColour(0.3,0.3,0.3); sp1->setSpecularColour(1.0,1.0,1.0); sp1->setDirection(Vector3(0,0,1)); sp1->setAttenuation( 600, 1.0, 0.007, 0.0002); // Josh if you are looking for the spot light, // they have been moved into the class "spotLight.h" SceneNode *bLight = shipSceneNode->createChildSceneNode(); bLight->setPosition(Vector3(0,-8,0)); //bLight->attachObject(sp); SceneNode *tLight = shipSceneNode->createChildSceneNode(); tLight->setPosition(Vector3(0,8,0)); //tLight->attachObject(sp1); return camera; }
void App::createScene(void) { //change the gui m_pQuit->setPosition( CEGUI::UVector2( CEGUI::UDim(0.75f,0), CEGUI::UDim(0.05f,0) ) ); // m_pHostServer->setVisible(false); m_pFindServer->setVisible(false); m_pTitle->setVisible(false); m_pDisconnect->setVisible(true); // Set the scene's lighting Ogre::Vector3 lightdir(0.55f, -0.3f, 0.75f); lightdir.normalise(); m_pMainlight = mSceneMgr->createLight("MainLight"); m_pMainlight->setType(Ogre::Light::LT_DIRECTIONAL); m_pMainlight->setDirection(lightdir); m_pMainlight->setDiffuseColour(Ogre::ColourValue::White); m_pMainlight->setSpecularColour(Ogre::ColourValue(0.4f, 0.4f, 0.4f)); mSceneMgr->setAmbientLight(Ogre::ColourValue(0.2f, 0.2f, 0.2f)); // World geometry mSceneMgr->setWorldGeometry("terrain.cfg"); //create a player entity m_pPlayerEntity = new PlayerEntity("Player", m_NetworkManager.GetNodeUID(), *mSceneMgr, mCamera); Ogre::ColourValue fadeColour(0.9f, 0.9f, 0.9f); mSceneMgr->setFog(Ogre::FOG_LINEAR, fadeColour, 0.0f, 10, 1200); mWindow->getViewport(0)->setBackgroundColour(fadeColour); Ogre::Plane plane; plane.d = 100; plane.normal = Ogre::Vector3::NEGATIVE_UNIT_Y; //mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8, 500); mSceneMgr->setSkyPlane(true, plane, "Examples/CloudySky", 500, 20, true, 0.5, 150, 150); m_SceneSetup = true; }
//------------------------------------------------------------------------------------- void BasicTutorial3::createScene(void) { mCamera->setPosition(Ogre::Vector3(1683, 50, 2116)); mCamera->lookAt(Ogre::Vector3(1963, 50, 1660)); mCamera->setNearClipDistance(0.1); mCamera->setFarClipDistance(50000); if (mRoot->getRenderSystem()->getCapabilities()->hasCapability(Ogre::RSC_INFINITE_FAR_PLANE)) { mCamera->setFarClipDistance(0); // enable infinite far clip distance if we can } Ogre::MaterialManager::getSingleton().setDefaultTextureFiltering(Ogre::TFO_ANISOTROPIC); Ogre::MaterialManager::getSingleton().setDefaultAnisotropy(7); Ogre::Vector3 lightdir(0.55, -0.3, 0.75); lightdir.normalise(); Ogre::Light* light = mSceneMgr->createLight("tstLight"); light->setType(Ogre::Light::LT_DIRECTIONAL); light->setDirection(lightdir); light->setDiffuseColour(Ogre::ColourValue::White); light->setSpecularColour(Ogre::ColourValue(0.4, 0.4, 0.4)); mSceneMgr->setAmbientLight(Ogre::ColourValue(0.2, 0.2, 0.2)); mTerrainGlobals = OGRE_NEW Ogre::TerrainGlobalOptions(); mTerrainGroup = OGRE_NEW Ogre::TerrainGroup(mSceneMgr, Ogre::Terrain::ALIGN_X_Z, 513, 12000.0f); mTerrainGroup->setFilenameConvention(Ogre::String("BasicTutorial3Terrain"), Ogre::String("dat")); mTerrainGroup->setOrigin(Ogre::Vector3::ZERO); configureTerrainDefaults(light); for (long x = 0; x <= 0; ++x) for (long y = 0; y <= 0; ++y) defineTerrain(x, y); // sync load since we want everything in place when we start mTerrainGroup->loadAllTerrains(true); if (mTerrainsImported) { Ogre::TerrainGroup::TerrainIterator ti = mTerrainGroup->getTerrainIterator(); while(ti.hasMoreElements()) { Ogre::Terrain* t = ti.getNext()->instance; initBlendMaps(t); } } mTerrainGroup->freeTemporaryResources(); Ogre::ColourValue fadeColour(0.9, 0.9, 0.9); mSceneMgr->setFog(Ogre::FOG_LINEAR, fadeColour, 0.0, 10, 1200); mWindow->getViewport(0)->setBackgroundColour(fadeColour); Ogre::Plane plane; plane.d = 100; plane.normal = Ogre::Vector3::NEGATIVE_UNIT_Y; //mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8, 500); mSceneMgr->setSkyPlane(true, plane, "Examples/CloudySky", 500, 20, true, 0.5, 150, 150); }
// Just override the mandatory create scene method void createScene(void) { // questi sono definiti come meteriali ( script che descrivono cosa deve fare il materiale ) // Create the SkyBox //mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox"); EarlyMorningSkyBox Ogre::ColourValue fadeColour(0.9, 0.9, 0.9); mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox"); //mSceneMgr->setFog( Ogre::FOG_LINEAR, fadeColour, 0.0, 1000, 1500 ); // put an ogre head in the middle of the field Entity* head = mSceneMgr->createEntity("Head", "ogrehead.mesh"); Entity* head2 = mSceneMgr->createEntity("Head2", "ogrehead.mesh"); Entity* house = mSceneMgr->createEntity("house", "tudorhouse.mesh"); ParticleSystem* smoke = mSceneMgr->createParticleSystem("Smoke2", "Examples/Smoke"); // --------------------------------------------------------------------------------- rotating_head = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(0, 0, 0)); // xyz rotating_head->attachObject(head); rotating_head2 = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(100, 0, 0)); rotating_head2->attachObject(head2); house_node = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(500, 500, 700)); house_node->attachObject(house); mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(100, 100, 0))->attachObject(smoke); mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(0,100,0))->attachObject(mSceneMgr->createParticleSystem("Smoke", "Examples/Smoke")); // turn off ambient light mSceneMgr->setAmbientLight(ColourValue::Black); ColourValue lightColour(1, 1, 0.3); // create a light Light* light = mSceneMgr->createLight(); light->setDiffuseColour(lightColour); light->setSpecularColour(1, 1, 0.3); light->setAttenuation(1500, 1, 0.0005, 0); light->setPosition(20, 80, 50); // // questo dovrebbe impostare l'oceano // ------------------------------------------------------------------------------------------ // ??? this->cleanupContent(); Ogre::Plane oceanSurface; oceanSurface.normal = Ogre::Vector3::UNIT_Y; oceanSurface.d = 20; Ogre::MeshManager::getSingleton().createPlane("OceanSurface", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, oceanSurface, 1000, 1000, 1, 1, true, 1, 1, 1, Ogre::Vector3::UNIT_Z ); mOceanSurfaceEnt = mSceneMgr->createEntity( "OceanSurface", "OceanSurface" ); mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(mOceanSurfaceEnt); // // ------------------------------------------------------------------------------------------------------------------------------- // }