Changeset 2287


Ignore:
Timestamp:
03/23/07 18:10:25 (17 years ago)
Author:
mattausch
Message:

update culling manager first working version

Location:
GTP/trunk/Lib/Vis/OnlineCullingCHC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOctreeHierarchyInterface.cpp

    r2283 r2287  
    109109 
    110110        // if we come across some renderable geometry => render it 
    111         if (!octree->mNodes.empty()) 
    112         { 
     111        //if (!octree->mNodes.empty()) 
     112        //{ 
    113113                RenderNodeRecursive(node); 
    114         } 
     114        //} 
    115115 
    116116/* 
     
    264264        Octree *octant = static_cast<Octree *>(node); 
    265265 
    266         if (octant->lastRendered() != mFrameId) 
     266        if (1)//octant->lastRendered() != mFrameId) 
    267267        { 
    268268                octant->setLastRendered(mFrameId); 
     269 
    269270                OctreeSceneManager *ocm =  
    270271                        static_cast<OctreeSceneManager *>(mSceneManager); 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/CoherentHierarchicalCullingManager.cpp

    r2280 r2287  
    11#include "CoherentHierarchicalCullingManager.h" 
     2#include "CullingLogManager.h" 
     3 
    24#include <time.h> 
    35 
     
    2224void CoherentHierarchicalCullingManager::RenderScene() 
    2325{ 
     26        //CullingLogManager::GetSingleton()->LogMessage("chc"); 
    2427        QueryQueue queryQueue; 
    2528        unsigned int visiblePixels = 0; 
     
    3740                                mHierarchyInterface->GetQueue()->empty())) 
    3841                { 
    39                 HierarchyNode *node = queryQueue.front().first; 
     42                        HierarchyNode *node = queryQueue.front().first; 
    4043                         
    4144                        queryQueue.pop(); 
     
    7477                        if (!mHierarchyInterface->CheckFrustumVisible(node, intersects)) 
    7578                        { 
    76                                 ++ mNumFrustumCulledNodes;       
     79                                ++ mNumFrustumCulledNodes; 
     80 
    7781                                if (mVisualizeCulledNodes) 
    7882                                { 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/CullingManager.cpp

    r2280 r2287  
    1616{ 
    1717} 
    18  
    19  
    2018//----------------------------------------------------------------------- 
    2119void CullingManager::SetHierarchyInterface(HierarchyInterface *hierarchyInterface) 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/RandomUpdateCullingManager.cpp

    r2283 r2287  
    66namespace GtpVisibility { 
    77 
     8const static int R_CANDIDATES = 1; 
    89//----------------------------------------------------------------------- 
    910RandomUpdateCullingManager::RandomUpdateCullingManager() 
     
    1314        srand(time(NULL)); 
    1415 
    15         mRandomCandidates = 1; 
     16        mRandomCandidates = R_CANDIDATES; 
    1617} 
    1718//----------------------------------------------------------------------- 
     
    2324        srand(time(NULL)); 
    2425 
    25         mRandomCandidates = 1; 
     26        mRandomCandidates = R_CANDIDATES; 
    2627} 
    2728//----------------------------------------------------------------------- 
    2829void RandomUpdateCullingManager::RenderScene() 
    2930{ 
     31        //CullingLogManager::GetSingleton()->LogMessage("random"); 
     32 
    3033        QueryQueue queryQueue; 
    3134        unsigned int visiblePixels = 0; 
     
    3336        ///////////// 
    3437        //-- PART 1: process finished occlusion queries 
     38 
     39        // update the fully visible classifications 
     40        mHierarchyInterface->DetermineFullVisibility(mHierarchyInterface->GetHierarchyRoot()); 
     41 
    3542        //mHierarchyInterface->TraverseNode2(mHierarchyInterface->GetHierarchyRoot()); 
    36         //return; 
    37  
     43         
     44#if 1 
    3845        while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 
    3946        { 
     
    8491                        if (!mHierarchyInterface->CheckFrustumVisible(node, intersects)) 
    8592                        { 
    86                                 ++ mNumFrustumCulledNodes;       
     93                                ++ mNumFrustumCulledNodes; 
     94 
    8795                                if (mVisualizeCulledNodes) 
    8896                                { 
     
    127135                                                                                                                        mHierarchyInterface->GetFrameId()); 
    128136 
    129                                                 queryQueue.push(QueryPair(node,  
     137                                                queryQueue.push(QueryPair(randomLeaf,  
    130138                                                        mHierarchyInterface->IssueNodeOcclusionQuery(node))); 
    131139                                        } 
     
    165173                } 
    166174        } 
    167  
    168         // update the fully visible classifications 
    169         mHierarchyInterface->DetermineFullVisibility(mHierarchyInterface->GetHierarchyRoot()); 
     175#endif 
     176        //while (!mHierarchyInterface->GetQueue()->empty()) 
     177        //      mHierarchyInterface->GetQueue()->pop(); 
     178         
    170179} 
    171180//----------------------------------------------------------------------- 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/VisibilityManager.cpp

    r2280 r2287  
    5353                switch (ocmType) 
    5454                { 
    55                 case VisibilityEnvironment::STOP_AND_WAIT_CULLING: 
    56                         mCullingManager = new StopAndWaitCullingManager(); 
    57                         break; 
    58  
    5955                case VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING: 
    6056                        mCullingManager = new CoherentHierarchicalCullingManager(mAssumedVisibilityForChc); 
     
    6359                case VisibilityEnvironment::FRUSTUM_CULLING: 
    6460                        //mCullingManager = new FrustumCullingManager(); 
    65                         mCullingManager = new RandomUpdateCullingManager(); 
     61                        mCullingManager = new RandomUpdateCullingManager();      
     62                        break; 
     63 
     64                case VisibilityEnvironment::STOP_AND_WAIT_CULLING: 
     65                        mCullingManager = new StopAndWaitCullingManager(); 
     66                        //mCullingManager = new RandomUpdateCullingManager(); 
    6667                        break; 
    6768 
Note: See TracChangeset for help on using the changeset viewer.