- Timestamp:
- 07/14/05 20:54:07 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp
r173 r175 228 228 { 229 229 // Set ambient light 230 mAmbientLight = ColourValue(0.5 , 0.5, 0.5);230 mAmbientLight = ColourValue(0.5 , 0.5, 0.5); 231 231 mSceneMgr->setAmbientLight(mAmbientLight); 232 232 … … 256 256 257 257 // Create a skybox 258 mSceneMgr->setSkyBox(true, "Examples/ SpaceSkyBox", 5000, false);258 mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox", 5000, true); 259 259 260 260 std::string terrain_cfg("terrain.cfg"); … … 301 301 if (!mTerrainContentGenerator->LoadObjects("objects.out")) 302 302 { 303 // to provide much occlusion,304 // height is restricted to 50 => no objects are created on peaks305 mTerrainContentGenerator->SetMinPos(Vector3(mTerrainMinPos));306 mTerrainContentGenerator->SetMaxPos(Vector3(mTerrainMaxPos.x, 50.0f, mTerrainMaxPos.z));307 mTerrainContentGenerator->SetOffset(0);308 309 303 // 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 //----------------------------------------------------------------------- 314 void 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))); 311 339 } 312 340 … … 314 342 // objects on peaks of the terrain (only few, not relevant for occlusion) 315 343 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 phases329 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 }339 344 } 340 345 //-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.