Ignore:
Timestamp:
06/21/05 12:00:22 (20 years ago)
Author:
mattausch
Message:

added some assumed visibility

Location:
trunk/VUT/GtpVisibility
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibility/include/CoherentHierarchicalCullingManager.h

    r130 r142  
    1414{ 
    1515public: 
     16        CoherentHierarchicalCullingManager(); 
    1617        void RenderScene(); 
     18        /** Sets assumed visibility which is a decition variable  
     19                wether an occlusion query should be issued or not. 
     20                @param assumedVisibility indicates that same visibility should be assumed 
     21                 for approximately assumedVisibility frames.  
     22                 if 0, no assumedVisibility will be tested. 
     23        */ 
     24        void SetAssumedVisibility(int assumedVisibility); 
     25protected: 
     26        /** Decides wether occlusion query should be issued depending on some  
     27                assumed visibility factor. 
     28                @returns if occlusion query should be issued 
     29        */ 
     30        bool DecideQueryTest(HierarchyNode *node) const; 
     31        int mAssumedVisibility; 
    1732}; 
    1833 
  • trunk/VUT/GtpVisibility/src/CoherentHierarchicalCullingManager.cpp

    r139 r142  
    44namespace GtpVisibility { 
    55 
     6//----------------------------------------------------------------------- 
     7CoherentHierarchicalCullingManager:: CoherentHierarchicalCullingManager(): 
     8mAssumedVisibility(0) 
     9{ 
     10        // initialise random generator because of assumed visibility 
     11        srand(time(NULL)); 
     12} 
    613//----------------------------------------------------------------------- 
    714void CoherentHierarchicalCullingManager::RenderScene() 
     
    2835                        } 
    2936                        else 
    30                         {       //if (mHierarchyInterface->mIsShadowPass) 
     37                        {        
    3138                                mNumQueryCulledNodes ++; 
    3239                                 
     
    7582                                // identify nodes that we cannot skip queries for 
    7683                                // geometry not only in leaves => test for renderable geometry 
    77                                 bool issueQuery = !wasVisible || mHierarchyInterface->HasGeometry(node); 
     84                                bool issueQuery = !wasVisible ||  
     85                                        (mHierarchyInterface->HasGeometry(node) &&  
     86                                        (!mAssumedVisibility || DecideQueryTest(node))); 
    7887                                 
    7988                                // reset node's visibility classification  
     
    8796                                { 
    8897                                        mNumQueriesIssued ++; 
    89  
     98                                         
    9099                                        queryQueue.push(QueryPair(node, mHierarchyInterface-> 
    91100                                                IssueOcclusionQuery(node, wasVisible))); 
     
    101110        } 
    102111} 
    103  
     112//----------------------------------------------------------------------- 
     113void CoherentHierarchicalCullingManager::SetAssumedVisibility(int assumedVisibility) 
     114{ 
     115        mAssumedVisibility = assumedVisibility; 
     116} 
     117//----------------------------------------------------------------------- 
     118bool CoherentHierarchicalCullingManager::DecideQueryTest(HierarchyNode *node) const 
     119{ 
     120        bool result = false; 
     121        rand(); 
     122        return result; 
     123} 
    104124} // namespace GtpVisibility 
Note: See TracChangeset for help on using the changeset viewer.