Ignore:
Timestamp:
05/24/05 17:55:14 (19 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT/work/TestCullingTerrain
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r110 r111  
    5252        //mCamera->setPosition(707, 5000, 528); 
    5353        mCamNode->setOrientation(Quaternion(-0.3486, 0.0122, 0.9365, 0.0329)); 
    54          
    5554        mCamNode->attachObject(mCamera); 
    5655 
     
    9796 
    9897        //-- create light 
    99         mSunLight = mSceneMgr->createLight("MainLight"); 
    100         mSunLight->setType(Light::LT_POINT); 
    101     mSunLight->setPosition(-707, 4000, -500); 
     98        mSunLight = mSceneMgr->createLight("SunLight"); 
     99        mSunLight->setType(Light::LT_DIRECTIONAL); 
     100        //mSunLight->setType(Light::LT_SPOTLIGHT); 
     101    mSunLight->setPosition(707, 2000, 500); 
     102        mSunLight->setCastShadows(true); 
     103 
    102104        //mSunLight->setSpotlightRange(Degree(30), Degree(50)); 
    103105 
    104     Vector3 dir; 
    105         dir = -mSunLight->getPosition(); 
     106    Vector3 dir(0.5, 0.1, 0.5); 
    106107        dir.normalise(); 
    107         mSunLight->setDirection(dir); 
    108         mSunLight->setDiffuseColour(0.8, 0.8, 0.8); 
    109         mSunLight->setSpecularColour(0.9, 0.9, 1); 
    110  
    111         //mSunLight->setCastShadows(true); 
     108        mSunLight->setDirection(Vector3::NEGATIVE_UNIT_Y); 
     109 
     110        mSunLight->setDiffuseColour(1, 1, 1); 
     111        mSunLight->setSpecularColour(1, 1, 1); 
    112112 
    113113        // --Fog 
     
    130130        setupGui(); 
    131131 
     132        //mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
     133 
     134        // Floor plane 
     135        Plane plane; 
     136        plane.normal = Vector3::UNIT_Y; 
     137        plane.d = -60; 
     138        MeshManager::getSingleton().createPlane("Myplane", 
     139                ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 
     140                5000,5000,100,100,true,1,5,5,Vector3::UNIT_Z); 
     141        Entity* pPlaneEnt = mSceneMgr->createEntity( "plane", "Myplane" ); 
     142        pPlaneEnt->setMaterialName("Examples/Rockwall"); 
     143        pPlaneEnt->setCastShadows(true); 
     144        mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(pPlaneEnt); 
     145 
     146        if (mRoot->getRenderSystem()->getCapabilities()->hasCapability(RSC_HWRENDER_TO_TEXTURE)) 
     147    { 
     148                // In D3D, use a 1024x1024 shadow texture 
     149                mSceneMgr->setShadowTextureSettings(1024, 2); 
     150        } 
     151        else 
     152        { 
     153                // Use 512x512 texture in GL since we can't go higher than the window res 
     154                mSceneMgr->setShadowTextureSettings(512, 2); 
     155        } 
     156        mSceneMgr->setShadowColour(ColourValue(0, 0, 0)); 
     157 // mSceneMgr->setShowDebugShadows(true); 
     158 
     159 
    132160        //-- terrain content setup 
    133161 
     
    144172                // => there is much occlusion 
    145173                mTerrainContentGenerator->SetMaxPos(Vector3(3000.0f, 50.0f, 3000.0f)); 
    146                 mTerrainContentGenerator->SetOffset(50); 
     174                mTerrainContentGenerator->SetOffset(0); 
    147175 
    148176                // the objects are generated on the whole terrain 
    149177                mTerrainContentGenerator->GenerateScene(1500, "athene"); 
     178                //mTerrainContentGenerator->GenerateScene(1500, "robot"); 
    150179                //      mTerrainContentGenerator->GenerateScene(500, "ninja"); 
    151180        } 
     
    215244mCurrentFrame(0), 
    216245mRecord(false), 
    217 mTimeElapsed(0) 
     246mTimeElapsed(0), 
     247mUseShadows(false) 
    218248{ 
    219249        // Reduce move speed 
     
    292322                 // Get results, create a node/entity on the position 
    293323                 mCurrentObject = mTerrainContentGenerator->GenerateSceneObject( 
    294                          mouseRay.getOrigin(), Vector3(0,0,0), "robot.mesh"); 
     324                         mouseRay.getOrigin(), Vector3(0,0,0), "robot"); 
    295325                 
    296326         mLMouseDown = true;  
     
    434464        KEY_PRESSED(KC_F2, 0.3, toggleRecord()); 
    435465        KEY_PRESSED(KC_F3, 0.3, mTerrainContentGenerator->WriteObjects(objects_outfile)); 
     466        KEY_PRESSED(KC_F4, 0.3, toggleUseShadows()); 
    436467        //KEY_PRESSED(KC_F3, 0.3, writeFrames()); 
    437468        //KEY_PRESSED(KC_F4, 0.3, loadFrames()); 
     
    706737} 
    707738//----------------------------------------------------------------------- 
     739void MouseQueryListener::toggleUseShadows() 
     740{ 
     741        mUseShadows = !mUseShadows; 
     742 
     743        //mSunLight->setCastShadows(mUseShadows); 
     744 
     745        if (mUseShadows) 
     746        { 
     747                mSceneMgr->setShadowTechnique(SHADOWTYPE_TEXTURE_MODULATIVE); 
     748        } 
     749        else 
     750        { 
     751                mSceneMgr->setShadowTechnique(SHADOWTYPE_NONE); 
     752        } 
     753 
     754} 
     755//----------------------------------------------------------------------- 
    708756void MouseQueryListener::toggleRenderNodesForViz() 
    709757{ 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.h

    r109 r111  
    113113        void loadFrames(); 
    114114 
     115        void toggleUseShadows(); 
     116 
    115117protected: 
    116118        void Clamp2Terrain(); 
     
    162164        bool mRecord; 
    163165        Real mTimeElapsed; 
     166        bool mUseShadows; 
    164167}; 
    165168 
Note: See TracChangeset for help on using the changeset viewer.