Ignore:
Timestamp:
05/06/05 01:39:32 (19 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT/GtpVisibility/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibility/src/CoherentHierarchicalCullingManager.cpp

    r85 r86  
    11#include "CoherentHierarchicalCullingManager.h" 
    2 //#include <windows.h> 
     2#include <windows.h> 
    33 
    44namespace GtpVisibility { 
     
    88{ 
    99        mNumFrustumCulledNodes = mNumQueryCulledNodes = 0; 
    10         //OutputDebugString("Coherent Culling\n"); 
     10//      OutputDebugString("Coherent Culling\n"); 
    1111 
    1212        QueryQueue queryQueue; 
    13          
     13        unsigned int visiblePixels = 0; 
     14        bool isAvailable = false; 
     15 
    1416        //-- PART 1: process finished occlusion queries 
    1517        while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 
    1618        { 
    1719                while (!queryQueue.empty() &&  
    18                            (queryQueue.front().second->ResultAvailable() || mHierarchyInterface->GetQueue()->empty())) 
     20                           queryQueue.front().second->GetQueryResult(visiblePixels,  
     21                                                                        mHierarchyInterface->GetQueue()->empty())) 
    1922                { 
    2023                        HierarchyNode *node = queryQueue.front().first; 
    21                                          
    22                         // wait until result available 
    23                         unsigned int visiblePixels = queryQueue.front().second->GetQueryResult(); 
    24                          
     24                                                 
    2525                        queryQueue.pop(); 
    2626 
     
    6767                                 
    6868                                // identify nodes that we cannot skip queries for 
    69                                 bool mustQuery = !wasVisible || mHierarchyInterface->HasGeometry(node) || mHierarchyInterface->IsLeaf(node); 
     69                                bool mustQuery = !wasVisible || mHierarchyInterface->HasGeometry(node) ||  
     70                                        mHierarchyInterface->IsLeaf(node); 
    7071 
    7172                                // reset node's visibility classification  
     
    7879                                if (mustQuery) 
    7980                                { 
    80                                         queryQueue.push(QueryPair(node, mHierarchyInterface->IssueOcclusionQuery(node))); 
     81                                        queryQueue.push(QueryPair(node,  
     82                                                mHierarchyInterface->IssueOcclusionQuery(node, wasVisible))); 
    8183                                } 
    8284                                         
  • trunk/VUT/GtpVisibility/src/FrustumCullingManager.cpp

    r85 r86  
    11#include "FrustumCullingManager.h" 
    2 //#include <windows.h> 
     2#include <windows.h> 
    33 
    44namespace GtpVisibility { 
  • trunk/VUT/GtpVisibility/src/HierarchyInterface.cpp

    r85 r86  
    88HierarchyInterface::HierarchyInterface():  
    99mFrameId(0), mNumTraversedNodes(0), mNumRenderedNodes(0),  
    10 mSceneRoot(0), mPreviousNode(0), mCurrentTestIdx(0) 
     10mSceneRoot(0), mPreviousNode(0), mCurrentTestIdx(0), mUseOptimization(true) 
    1111{        
    1212        mDistanceQueue = new DistanceQueue(GreaterDistance<HierarchyNode *>(this)); 
     
    6464        return mNumRenderedNodes; 
    6565} 
     66 
     67void HierarchyInterface::SetUseOptimization(bool useOptimization) 
     68{ 
     69        mUseOptimization = useOptimization; 
     70} 
     71 
    6672} // namespace GtpVisibility 
  • trunk/VUT/GtpVisibility/src/StopAndWaitCullingManager.cpp

    r85 r86  
    11#include "StopAndWaitCullingManager.h" 
    2 //#include <windows.h> 
     2#include <windows.h> 
    33 
    44namespace GtpVisibility { 
     
    3535                        } 
    3636 
     37                        unsigned int visiblePixels = 0; 
     38 
     39                        mHierarchyInterface->IssueOcclusionQuery(node)->GetQueryResult(visiblePixels, true); 
     40 
    3741                        // node visible 
    38                         if (mHierarchyInterface->IssueOcclusionQuery(node)->GetQueryResult() >  
    39                                 mVisibilityThreshold) 
     42                        if (visiblePixels > mVisibilityThreshold) 
    4043                        { 
    4144                                mHierarchyInterface->TraverseNode(node); 
Note: See TracChangeset for help on using the changeset viewer.