Changeset 33 for trunk/VUT/OcclusionCullingSceneManager/src
- Timestamp:
- 03/30/05 11:36:07 (20 years ago)
- Location:
- trunk/VUT/OcclusionCullingSceneManager/src
- Files:
-
- 2 added
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManager.cpp
r32 r33 15 15 OcclusionCullingSceneManager::OcclusionCullingSceneManager() 16 16 { 17 mOcclusionCullingSceneTraverser = new OcclusionCullingSceneTraverser(this, mDestRenderSystem); 18 } 19 //----------------------------------------------------------------------- 20 OcclusionCullingSceneManager::~OcclusionCullingSceneManager() 21 { 22 delete mOcclusionCullingSceneTraverser; 17 23 } 18 24 //----------------------------------------------------------------------- … … 24 30 void OcclusionCullingSceneManager::_renderVisibleObjects( void ) 25 31 { 26 m SceneTraverser.renderScene(mCameraInProgress, mSceneRoot);32 mOcclusionCullingSceneTraverser->renderScene(mCameraInProgress, mSceneRoot); 27 33 } 28 34 //----------------------------------------------------------------------- … … 34 40 void OcclusionCullingSceneManager::_updateSceneGraph( Camera* cam ) 35 41 { 36 mSceneTraverser.preprocess(); 42 mOcclusionCullingSceneTraverser->setNumSceneNodes(mSceneNodes.size()); 43 mOcclusionCullingSceneTraverser->preprocess(); 37 44 38 45 SceneManager::_updateSceneGraph(cam); … … 41 48 bool OcclusionCullingSceneManager::setOption( const String & key, const void * val ) 42 49 { 43 m SceneTraverser.setOption(key, val);50 mOcclusionCullingSceneTraverser->setOption(key, val); 44 51 45 52 return SceneManager::setOption( key, val ); … … 48 55 bool OcclusionCullingSceneManager::getOption( const String & key, void *val ) 49 56 { 50 m SceneTraverser.getOption(key, val);57 mOcclusionCullingSceneTraverser->getOption(key, val); 51 58 52 59 return SceneManager::getOption( key, val ); … … 62 69 SceneManager::getOptionKeys( refKeys ); 63 70 64 refKeys.push_back( "Algorithm" ); 65 refKeys.push_back( "Threshold" ); 66 refKeys.push_back( "NumSceneNodes" ); 67 refKeys.push_back( "NumTraversedNodes" ); 68 refKeys.push_back( "NumQueryCulledNodes" ); 69 refKeys.push_back( "NumFrustumCulledNodes" ); 70 //refKeys.push_back( "mNumRenderedGeometry" ); 71 mOcclusionCullingSceneTraverser->getOptionKeys( refKeys ); 72 71 73 return true; 72 74 } -
trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManagerDll.cpp
r32 r33 24 24 */ 25 25 26 //#include "OgreOcclusionCullingSceneManager.h" 27 //#include "OgreTerrainOcclusionCullingSceneManager.h" 28 #include <OgreOctreeSceneManager.h> 29 #include <OgreTerrainSceneManager.h> 26 #include "OgreOcclusionCullingTerrainSceneManager.h" 27 #include "OgreOcclusionCullingSceneManager.h" 28 #include "OgreOcclusionCullingDotSceneManager.h" 30 29 #include <OgreRoot.h> 31 #include "OgreHeightmapTerrainPageSource.h" 30 31 //#include "OgreHeightmapTerrainPageSource.h" 32 32 //#include <windows.h> 33 33 34 34 namespace Ogre { 35 35 36 //OcclusionCullingSceneManager *occlusionPlugin; 37 //TerrainOcclusionCullingSceneManager *terrainOcclusionPlugin; 38 OctreeSceneManager *ocPlugin; 39 36 OcclusionCullingSceneManager *occlusionPlugin; 37 OcclusionCullingTerrainSceneManager *occlusionTerrainPlugin; 38 40 39 //----------------------------------------------------------------------- 41 40 extern "C" void dllStartPlugin(void) 42 41 { 43 42 // Create new scene manager 44 //occlusionPlugin = new OcclusionCullingSceneManager();45 oc Plugin = new OctreeSceneManager();43 occlusionPlugin = new OcclusionCullingSceneManager(); 44 occlusionTerrainPlugin = new OcclusionCullingTerrainSceneManager(); 46 45 47 46 // Register 48 //Root::getSingleton().setSceneManager( ST_GENERIC, occlusionPlugin ); 49 // Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, terrainOcclusionPlugin ); 50 Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, ocPlugin ); 51 52 //MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 47 Root::getSingleton().setSceneManager( ST_GENERIC, occlusionPlugin ); 48 Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, occlusionTerrainPlugin ); 49 50 // MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 53 51 } 54 52 extern "C" void dllStopPlugin(void) 55 53 { 56 // delete occlusionPlugin; 57 delete ocPlugin; 58 //delete terrainOcclusionPlugin; 54 delete occlusionPlugin; 55 delete occlusionTerrainPlugin; 59 56 } 60 57 } -
trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneTraverser.cpp
r32 r33 7 7 #include "OgreSolidHalfBoundingBox.h" 8 8 9 9 10 #include <windows.h> 10 11 … … 12 13 13 14 //----------------------------------------------------------------------- 14 OcclusionCullingSceneTraverser::OcclusionCullingSceneTraverser( ):15 OcclusionCullingSceneTraverser::OcclusionCullingSceneTraverser(SceneManager *sm, RenderSystem *rsys): 15 16 mFrameId(1), mDistanceQueue(NULL), mVisibilityThreshold(0), mCurrentTestIdx(0), 16 17 mQueryMode(MODE_RENDER), mNumSceneNodes(0), mCurrentAlgorithm(RENDER_COHERENT), 17 18 mNumTraversedNodes(0), mNumQueryCulledNodes(0), mNumFrustumCulledNodes(0), 18 mNumRenderedGeometry(0), mSceneManager( 0), mRenderSystem(0)19 mNumRenderedGeometry(0), mSceneManager(sm), mRenderSystem(rsys) 19 20 { 20 21 mHalfBoundingBox[0] = mHalfBoundingBox[1] = 0; … … 257 258 //-- initialise occlusion queries. 258 259 deleteQueries(); 259 260 260 261 for(unsigned int i=0; i < mNumSceneNodes; i++) 261 262 { … … 389 390 return false; 390 391 } 392 //----------------------------------------------------------------------- 393 bool OcclusionCullingSceneTraverser::getOptionKeys( StringVector & refKeys ) 394 { 395 refKeys.push_back( "Algorithm" ); 396 refKeys.push_back( "Threshold" ); 397 refKeys.push_back( "NumSceneNodes" ); 398 refKeys.push_back( "NumTraversedNodes" ); 399 refKeys.push_back( "NumQueryCulledNodes" ); 400 refKeys.push_back( "NumFrustumCulledNodes" ); 401 //refKeys.push_back( "mNumRenderedGeometry" ); 402 403 return true; 404 } 405 //----------------------------------------------------------------------- 406 void OcclusionCullingSceneTraverser::setNumSceneNodes(int num) 407 { 408 mNumSceneNodes = num; 409 } 391 410 }
Note: See TracChangeset
for help on using the changeset viewer.