- Timestamp:
- 03/31/06 10:37:45 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionCullingSceneManager.cpp
r675 r720 1 #include "Ogre VisibilityTerrainSceneManager.h"1 #include "OgreOcclusionCullingSceneManager.h" 2 2 #include "OgreVisibilityOptionsManager.h" 3 3 #include <OgreMath.h> … … 14 14 15 15 //----------------------------------------------------------------------- 16 VisibilityTerrainSceneManager::VisibilityTerrainSceneManager(16 OcclusionCullingSceneManager::OcclusionCullingSceneManager( 17 17 GtpVisibility::VisibilityManager *visManager): 18 18 mVisibilityManager(visManager), … … 40 40 //mShowBoundingBoxes = true; 41 41 //mShowBoxes = true; 42 //std::stringstream d; d << "here555"; 43 //mDummyLog.open(""); 42 44 43 45 // TODO: set maxdepth to reasonable value … … 45 47 } 46 48 //----------------------------------------------------------------------- 47 void VisibilityTerrainSceneManager::InitDepthPass()49 void OcclusionCullingSceneManager::InitDepthPass() 48 50 { 49 51 MaterialPtr depthMat = MaterialManager::getSingleton().getByName("Visibility/DepthPass"); … … 66 68 } 67 69 //----------------------------------------------------------------------- 68 VisibilityTerrainSceneManager::~VisibilityTerrainSceneManager()70 OcclusionCullingSceneManager::~OcclusionCullingSceneManager() 69 71 { 70 72 OGRE_DELETE(mHierarchyInterface); 71 73 } 72 74 //----------------------------------------------------------------------- 73 void VisibilityTerrainSceneManager::InitItemBufferPass()75 void OcclusionCullingSceneManager::InitItemBufferPass() 74 76 { 75 77 MaterialPtr itemBufferMat = MaterialManager::getSingleton(). … … 95 97 } 96 98 //------------------------------------------------------------------------- 97 void VisibilityTerrainSceneManager::setWorldGeometry( const String& filename )99 void OcclusionCullingSceneManager::setWorldGeometry( const String& filename ) 98 100 { 99 101 // Clear out any existing world resources (if not default) … … 124 126 125 127 //----------------------------------------------------------------------- 126 void VisibilityTerrainSceneManager::PrepareVisualization(Camera *cam)128 void OcclusionCullingSceneManager::PrepareVisualization(Camera *cam) 127 129 { 128 130 // add player camera for visualization purpose … … 173 175 } 174 176 //----------------------------------------------------------------------- 175 Pass * VisibilityTerrainSceneManager::setPass(Pass* pass)177 Pass *OcclusionCullingSceneManager::setPass(Pass* pass) 176 178 { 177 179 // TODO: setting vertex program is not efficient … … 236 238 } 237 239 //----------------------------------------------------------------------- 238 void VisibilityTerrainSceneManager::_findVisibleObjects(Camera* cam,240 void OcclusionCullingSceneManager::_findVisibleObjects(Camera* cam, 239 241 bool onlyShadowCasters) 240 242 { … … 266 268 } 267 269 //----------------------------------------------------------------------- 268 void VisibilityTerrainSceneManager::_renderVisibleObjects()270 void OcclusionCullingSceneManager::_renderVisibleObjects() 269 271 { 270 272 … … 329 331 // hierarchical visibility culling and rendering 330 332 InitVisibilityCulling(mCameraInProgress); 333 334 std::stringstream d; d << "here34\n"; 335 LogManager::getSingleton().logMessage(d.str()); 331 336 332 337 /** … … 376 381 getRenderQueue()->clear(); // finally clear render queue 377 382 OGRE_DELETE(mRenderQueue); // HACK: should be cleared before... 378 //WriteLog(); // write out stats379 380 } 381 382 //----------------------------------------------------------------------- 383 void VisibilityTerrainSceneManager::_updateSceneGraph(Camera* cam)383 WriteLog(); // write out stats 384 385 } 386 387 //----------------------------------------------------------------------- 388 void OcclusionCullingSceneManager::_updateSceneGraph(Camera* cam) 384 389 { 385 390 mVisibilityManager->GetCullingManager()->SetHierarchyInterface(mHierarchyInterface); … … 389 394 } 390 395 //----------------------------------------------------------------------- 391 bool VisibilityTerrainSceneManager::setOption(const String & key, const void * val)396 bool OcclusionCullingSceneManager::setOption(const String & key, const void * val) 392 397 { 393 398 if (key == "UseDepthPass") … … 482 487 } 483 488 //----------------------------------------------------------------------- 484 bool VisibilityTerrainSceneManager::getOption(const String & key, void *val)489 bool OcclusionCullingSceneManager::getOption(const String & key, void *val) 485 490 { 486 491 if (key == "NumHierarchyNodes") … … 494 499 } 495 500 //----------------------------------------------------------------------- 496 bool VisibilityTerrainSceneManager::getOptionValues(const String & key,501 bool OcclusionCullingSceneManager::getOptionValues(const String & key, 497 502 StringVector &refValueList) 498 503 { … … 500 505 } 501 506 //----------------------------------------------------------------------- 502 bool VisibilityTerrainSceneManager::getOptionKeys(StringVector & refKeys)507 bool OcclusionCullingSceneManager::getOptionKeys(StringVector & refKeys) 503 508 { 504 509 return VisibilityOptionsManager(mVisibilityManager, mHierarchyInterface). … … 506 511 } 507 512 //----------------------------------------------------------------------- 508 void VisibilityTerrainSceneManager::setVisibilityManager(GtpVisibility::513 void OcclusionCullingSceneManager::setVisibilityManager(GtpVisibility:: 509 514 VisibilityManager *visManager) 510 515 { … … 512 517 } 513 518 //----------------------------------------------------------------------- 514 GtpVisibility::VisibilityManager * VisibilityTerrainSceneManager::getVisibilityManager( void )519 GtpVisibility::VisibilityManager *OcclusionCullingSceneManager::getVisibilityManager( void ) 515 520 { 516 521 return mVisibilityManager; 517 522 } 518 523 //----------------------------------------------------------------------- 519 void VisibilityTerrainSceneManager::WriteLog()524 void OcclusionCullingSceneManager::WriteLog() 520 525 { 521 526 std::stringstream d; … … 535 540 } 536 541 //----------------------------------------------------------------------- 537 void VisibilityTerrainSceneManager::renderObjects(542 void OcclusionCullingSceneManager::renderObjects( 538 543 const RenderPriorityGroup::TransparentRenderablePassList& objs, 539 544 bool doLightIteration, const LightList* manualLightList) … … 546 551 } 547 552 //----------------------------------------------------------------------- 548 bool VisibilityTerrainSceneManager::validatePassForRendering(Pass* pass)553 bool OcclusionCullingSceneManager::validatePassForRendering(Pass* pass) 549 554 { 550 555 // skip all but first pass if we are doing the depth pass … … 557 562 } 558 563 //----------------------------------------------------------------------- 559 void VisibilityTerrainSceneManager::renderQueueGroupObjects(RenderQueueGroup* pGroup)564 void OcclusionCullingSceneManager::renderQueueGroupObjects(RenderQueueGroup* pGroup) 560 565 { 561 566 if (!mIsItemBufferPhase) … … 576 581 } 577 582 //----------------------------------------------------------------------- 578 void VisibilityTerrainSceneManager::RenderItemBuffer(RenderPriorityGroup* pGroup)583 void OcclusionCullingSceneManager::RenderItemBuffer(RenderPriorityGroup* pGroup) 579 584 { 580 585 // Do solids … … 602 607 for (irend = rendList->begin(); irend != irendend; ++irend) 603 608 { 604 std::stringstream d; d << "itembuffer, pass name: " << 605 ipass->first->getParent()->getParent()->getName(); 606 607 LogManager::getSingleton().logMessage(d.str()); 609 //std::stringstream d; d << "itembuffer, pass name: " << 610 // ipass->first->getParent()->getParent()->getName(); 611 // LogManager::getSingleton().logMessage(d.str()); 608 612 609 613 RenderSingleObjectForItemBuffer(*irend, ipass->first); … … 633 637 } 634 638 //----------------------------------------------------------------------- 635 void VisibilityTerrainSceneManager::RenderSingleObjectForItemBuffer(Renderable *rend, Pass *pass)639 void OcclusionCullingSceneManager::RenderSingleObjectForItemBuffer(Renderable *rend, Pass *pass) 636 640 { 637 641 static LightList nullLightList; … … 678 682 } 679 683 //----------------------------------------------------------------------- 680 GtpVisibility::VisibilityManager * VisibilityTerrainSceneManager::GetVisibilityManager()684 GtpVisibility::VisibilityManager *OcclusionCullingSceneManager::GetVisibilityManager() 681 685 { 682 686 return mVisibilityManager; 683 687 } 684 688 //----------------------------------------------------------------------- 685 void VisibilityTerrainSceneManager::InitVisibilityCulling(Camera *cam)689 void OcclusionCullingSceneManager::InitVisibilityCulling(Camera *cam) 686 690 { 687 691 // reset culling manager stats … … 704 708 mLeavePassesInQueue = 0; 705 709 706 if (!mUseDepthPass && !mUseItemBuffer) 710 // if we have the depth pass or use an item buffer, no passes are left in the queue 711 if (0 && !mUseDepthPass && !mUseItemBuffer) 707 712 { 708 713 if (mShadowTechnique == SHADOWTYPE_STENCIL_ADDITIVE) … … 746 751 mLeavePassesInQueue); 747 752 748 //std::stringstream d; d << "leave passes in queue: " << mLeavePassesInQueue;LogManager::getSingleton().logMessage(d.str()); 749 } 750 //----------------------------------------------------------------------- 751 OctreeHierarchyInterface *VisibilityTerrainSceneManager::GetHierarchyInterface() 753 std::stringstream d; d << "leave passes in queue: " << mLeavePassesInQueue; 754 LogManager::getSingleton().logMessage(d.str()); 755 } 756 //----------------------------------------------------------------------- 757 OctreeHierarchyInterface *OcclusionCullingSceneManager::GetHierarchyInterface() 752 758 { 753 759 return mHierarchyInterface; 754 760 } 755 761 //----------------------------------------------------------------------- 756 void VisibilityTerrainSceneManager::endFrame()762 void OcclusionCullingSceneManager::endFrame() 757 763 { 758 764 TerrainRenderable::ResetRenderLevelIndex(); 759 765 } 760 766 //----------------------------------------------------------------------- 761 Entity* VisibilityTerrainSceneManager::createEntity(const String& entityName,767 Entity* OcclusionCullingSceneManager::createEntity(const String& entityName, 762 768 const String& meshName) 763 769 { … … 775 781 } 776 782 //----------------------------------------------------------------------- 777 void VisibilityTerrainSceneManager::renderAdditiveStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup)783 void OcclusionCullingSceneManager::renderAdditiveStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup) 778 784 { 779 785 // only render solid passes during hierarchical culling … … 807 813 } 808 814 //----------------------------------------------------------------------- 809 void VisibilityTerrainSceneManager::renderModulativeStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup)815 void OcclusionCullingSceneManager::renderModulativeStencilShadowedQueueGroupObjects(RenderQueueGroup* pGroup) 810 816 { 811 817 if (mIsHierarchicalCulling)
Note: See TracChangeset
for help on using the changeset viewer.