Ignore:
Timestamp:
06/18/08 23:32:43 (17 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/App/Demos/Vis/CHC_revisited
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/CHC_revisited/Bvh.cpp

    r2773 r2774  
    765765 
    766766        for (int i = node->mFirst; i <= node->mLast; ++ i) 
     767        { 
    767768                numTriangles += mGeometry[i]->GetGeometry()->GetNumTriangles(); 
    768          
     769        } 
     770 
    769771        return numTriangles; 
    770772} 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/CHCPlusPlusTraverser.cpp

    r2773 r2774  
    9797                                         
    9898                                        // identify nodes that we cannot skip queries for 
    99                                         const bool testFeasible = (!wasVisible || (node->IsVirtualLeaf() && (node->GetAssumedVisibleFrameId() <= mFrameId))); 
     99                                        const bool testFeasible = (!wasVisible || (node->IsVirtualLeaf() &&  
     100                                                (node->GetAssumedVisibleFrameId() <= mFrameId))); 
    100101 
    101102                                        // node was not recently tested => reset flag  
     
    200201 
    201202                if (query->GetNodes().empty()) 
     203                { 
    202204                        newBatchVal = 1.0f; 
     205                } 
    203206                else 
    204207                { 
     
    237240                BvhNode *node = mIQueue.front(); 
    238241                mIQueue.pop(); 
     242 
    239243                OcclusionQuery *query = GetNextMultiQuery(mIQueue); 
    240244                //OcclusionQuery *query = IssueOcclusionQuery(node); 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/RenderTraverser.cpp

    r2773 r2774  
    167167 
    168168 
    169  
    170  
    171169void RenderTraverser::SetVisibilityThreshold(int threshold) 
    172170{ 
     
    181179 
    182180 
    183  
    184  
     181#if 0 
    185182OcclusionQuery *RenderTraverser::IssueOcclusionQuery(BvhNode *node, bool wasVisible) 
    186183{ 
     
    193190} 
    194191 
    195  
    196 void RenderTraverser::IssueOcclusionQuery(const OcclusionQuery &query, bool wasVisible) 
     192#else 
     193 
     194 
     195OcclusionQuery *RenderTraverser::IssueOcclusionQuery(BvhNode *node, bool wasVisible) 
    197196{ 
    198197        ++ mStats.mNumIssuedQueries; 
     
    204203        } 
    205204 
    206         query.BeginQuery(); 
     205        OcclusionQuery *query = mQueryHandler.RequestQuery(); 
     206 
     207        query->Reset(); 
     208        query->AddNode(node); 
     209 
     210        query->BeginQuery(); 
    207211 
    208212        if (wasVisible) 
     
    213217        if (wasVisible && mUseOptimization) 
    214218        { 
    215                 for (size_t i = 0; i < query.GetNodes().size(); ++ i) 
    216                         RenderNode(query.GetNodes()[i]); 
     219                RenderNode(node); 
    217220        } 
    218221        else 
     
    222225                        ++ mStats.mNumStateChanges; 
    223226 
     227                mBvh->RenderBoundingBox(node, mRenderState); 
     228        } 
     229 
     230        query->EndQuery(); 
     231 
     232        return query; 
     233} 
     234 
     235#endif 
     236void RenderTraverser::IssueOcclusionQuery(const OcclusionQuery &query, bool wasVisible) 
     237{ 
     238        ++ mStats.mNumIssuedQueries; 
     239 
     240        if (mUseRenderQueue && (mRenderState->GetMode() == RenderState::RENDER)) 
     241        { 
     242                mRenderQueue.Render(); 
     243                mRenderQueue.Clear(); 
     244        } 
     245 
     246        query.BeginQuery(); 
     247 
     248        if (wasVisible) 
     249                ++ mStats.mNumPreviouslyVisibleNodeQueries; 
     250 
     251        // if this node is a previous visible leaf: 
     252        // leaves will be rendered anyway => we can also test with the real geometry  
     253        if (wasVisible && mUseOptimization) 
     254        { 
     255                for (size_t i = 0; i < query.GetSize(); ++ i) 
     256                        RenderNode(query.GetNodes()[i]); 
     257        } 
     258        else 
     259        { 
     260                // change to query mode and render box 
     261                if (mRenderState->SetState(RenderState::QUERY)) 
     262                        ++ mStats.mNumStateChanges; 
     263 
    224264                mBvh->RenderBoundingBoxes(query.GetNodes(), mRenderState); 
    225265        } 
  • GTP/trunk/App/Demos/Vis/CHC_revisited/chcdemo.cpp

    r2773 r2774  
    897897 
    898898        sprintf_s(msg5, "fps: %6.1f", fps); 
    899  
    900899        //cout << "previously visible node queries: " << traverser->GetStats().mNumPreviouslyVisibleNodeQueries << endl; 
    901900 
     
    909908        { 
    910909                glColor3f(1.0f, 1.0f, 1.0f); 
    911                  
    912910                Output(850, 30, msg[renderMode]); 
    913911 
Note: See TracChangeset for help on using the changeset viewer.