Ignore:
Timestamp:
07/14/05 20:54:07 (19 years ago)
Author:
mattausch
Message:

added trees

Location:
trunk/VUT/work/TestCullingTerrain
Files:
2 edited

Legend:

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

    r174 r175  
    1616String TerrainFrameListener::msAlgorithmCaptions[] =  
    1717{ 
     18        "Coherent Hierarchical Culling", 
    1819        "View Frustum Culling",  
    19         "Stop and Wait Culling",  
    20         "Coherent Hierarchical Culling" 
     20        "Stop and Wait Culling" 
    2121}; 
    2222 
     
    4242{ 
    4343        0, 
    44         7, 
     44        0, 
     45        //7, 
    4546        0 
    4647}; 
     
    4950{ 
    5051        0.1, 
    51         0.6, 
    52         0.07 
     52        0.03, 
     53        //0.1, 
     54        0.04 
    5355}; 
    5456 
     
    5658{ 
    5759        "robot", 
    58         "athene", 
     60        //"athene", 
     61        "natFX_Tree1_LOD2", 
    5962        //"tree2", 
    6063        //"HongKong_Tower", 
     
    111114mShowOctree(false), 
    112115mUseDepthPass(false), 
    113 mTestGeometryForVisibleLeaves(true), 
     116mTestGeometryForVisibleLeaves(false), 
    114117mShowVisualization(false), 
    115118mCullCamera(false), 
     
    426429        int itemBufferMode = useItemBuffer ? mItemBufferMode : 0; 
    427430         
    428         int queryModes = GtpVisibility::QueryManager::PATCH_VISIBILITY;  
     431        int queryModes = 0; 
     432        queryModes |= GtpVisibility::QueryManager::PATCH_VISIBILITY;  
    429433        queryModes |= GtpVisibility::QueryManager::GEOMETRY_VISIBILITY; 
    430434        queryModes |= GtpVisibility::QueryManager::NODE_VISIBILITY; 
    431  
     435         
    432436        mQueryManager = new OcclusionQueriesQueryManager(sm->GetHierarchyInterface(), 
    433                         mWindow->getViewport(0), queryModes, useItemBuffer); 
     437                        mWindow->getViewport(0), queryModes, itemBufferMode); 
    434438 
    435439        //mQueryManager = new PlatformQueryManager(sm->GetHierarchyInterface(), mWindow->getViewport(0), false); 
     
    455459                 
    456460        std::stringstream d;  
    457         d << msQueryTypeCaptions[fromPoint ?  1 : 0].c_str() << " " 
     461        d << "Query mode: " << queryModes << ", " 
     462          << msQueryTypeCaptions[fromPoint ?  1 : 0].c_str() << " " 
    458463          << msQueryRelativeVisCaptions[relativeVisibility ? 1 : 0].c_str() << " " 
    459464      << msQueryMethodCaptions[useItemBuffer ? 1 : 0].c_str(); 
     
    744749{ 
    745750        mCurrentAlgorithm = (mCurrentAlgorithm + 1) %  
    746                 GtpVisibility::VisibilityEnvironment::NUM_CULLING_MANAGERS, 
    747  
     751                (GtpVisibility::VisibilityEnvironment::NUM_CULLING_MANAGERS - 1); 
    748752        setAlgorithm(mCurrentAlgorithm); 
    749753} 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r173 r175  
    228228{ 
    229229        // Set ambient light 
    230         mAmbientLight = ColourValue(0.5, 0.5, 0.5); 
     230        mAmbientLight = ColourValue(0.5 , 0.5, 0.5); 
    231231        mSceneMgr->setAmbientLight(mAmbientLight); 
    232232         
     
    256256         
    257257        // Create a skybox 
    258         mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox", 5000, false); 
     258        mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox", 5000, true); 
    259259         
    260260        std::string terrain_cfg("terrain.cfg"); 
     
    301301        if (!mTerrainContentGenerator->LoadObjects("objects.out")) 
    302302        { 
    303                 // to provide much occlusion, 
    304                 // height is restricted to 50 => no objects are created on peaks 
    305                 mTerrainContentGenerator->SetMinPos(Vector3(mTerrainMinPos)); 
    306                 mTerrainContentGenerator->SetMaxPos(Vector3(mTerrainMaxPos.x, 50.0f, mTerrainMaxPos.z)); 
    307                 mTerrainContentGenerator->SetOffset(0); 
    308  
    309303                // the objects are generated randomly distributed over the terrain 
    310                 generateScene(1500, 0); 
     304                generateScene(900, 0); 
     305                generateScene(500, 1); 
     306                generateScene(100, 2); 
     307        } 
     308 
     309        // no limitations on height => it is possible for the user to put single  
     310        // objects on peaks of the terrain (only few, not relevant for occlusion) 
     311        mTerrainContentGenerator->SetMaxPos(mTerrainMaxPos); 
     312} 
     313//----------------------------------------------------------------------- 
     314void  TestCullingTerrainApplication::generateScene(int num, int objectType) 
     315{ 
     316        Vector3 scale(TerrainFrameListener::msObjectScales[objectType],  
     317                                  TerrainFrameListener::msObjectScales[objectType], 
     318                                  TerrainFrameListener::msObjectScales[objectType]); 
     319 
     320        // to provide much occlusion, 
     321        // height is restricted to 50 => no objects are created on peaks 
     322        mTerrainContentGenerator->SetMinPos(Vector3(mTerrainMinPos)); 
     323        mTerrainContentGenerator->SetMaxPos(Vector3(mTerrainMaxPos.x, 75.0f, mTerrainMaxPos.z)); 
     324         
     325        mTerrainContentGenerator->SetScale(scale); 
     326        mTerrainContentGenerator->SetOffset(TerrainFrameListener::msObjectTerrainOffsets[objectType]); 
     327        mTerrainContentGenerator->GenerateScene(num, TerrainFrameListener::msObjectCaptions[objectType]); 
     328 
     329        if (objectType != 0) // from our objects, only robot has animation phases 
     330                return; 
     331 
     332        EntityList *entList = mTerrainContentGenerator->GetGeneratedEntities(); 
     333 
     334        //-- add animation state for new robots (located at the end of the list) 
     335        for (int i = (int)entList->size() - num; i < (int)entList->size(); ++i) 
     336        { 
     337                mEntityStates.push_back(new EntityState((*entList)[i],  
     338                        EntityState::WAITING, Math::RangeRandom(0.5, 1.5))); 
    311339        } 
    312340 
     
    314342        // objects on peaks of the terrain (only few, not relevant for occlusion) 
    315343        mTerrainContentGenerator->SetMaxPos(mTerrainMaxPos); 
    316 } 
    317 //----------------------------------------------------------------------- 
    318 void  TestCullingTerrainApplication::generateScene(int num, int objectType) 
    319 { 
    320         Vector3 scale(TerrainFrameListener::msObjectScales[objectType],  
    321                                   TerrainFrameListener::msObjectScales[objectType], 
    322                                   TerrainFrameListener::msObjectScales[objectType]); 
    323  
    324         mTerrainContentGenerator->SetScale(scale); 
    325         mTerrainContentGenerator->SetOffset(TerrainFrameListener::msObjectTerrainOffsets[objectType]); 
    326         mTerrainContentGenerator->GenerateScene(num, TerrainFrameListener::msObjectCaptions[objectType]); 
    327  
    328         if (objectType != 0) // from our objects, only robot has animation phases 
    329                 return; 
    330  
    331         EntityList *entList = mTerrainContentGenerator->GetGeneratedEntities(); 
    332  
    333         //-- add animation state for new robots (located at the end of the list) 
    334         for (int i = entList->size() - num; i < (int)entList->size(); ++i) 
    335         { 
    336                 mEntityStates.push_back(new EntityState((*entList)[i],  
    337                         EntityState::WAITING, Math::RangeRandom(0.5, 1.5))); 
    338         } 
    339344} 
    340345//----------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.