Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
//-------------------------------------------------------------------------------------
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);
}
Exemplo n.º 4
0
    // 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);


//
// -------------------------------------------------------------------------------------------------------------------------------
//


    }