source: trunk/VUT/GtpVisibility/src/StopAndWaitCullingManager.cpp @ 74

Revision 74, 1.2 KB checked in by mattausch, 19 years ago (diff)

added support for release mode

Line 
1#include "StopAndWaitCullingManager.h"
2
3namespace GtpVisibility {
4
5//-----------------------------------------------------------------------
6void StopAndWaitCullingManager::RenderScene()
7{
8        mNumFrustumCulledNodes = mNumQueryCulledNodes = 0;
9
10        while (!mHierarchyInterface->GetQueue()->empty())
11        {
12                HierarchyNode *node = mHierarchyInterface->GetQueue()->top();
13                mHierarchyInterface->GetQueue()->pop();
14               
15                // interesting for visualization purpose
16                mHierarchyInterface->SetNodeVisible(node, false);
17                mHierarchyInterface->SetLastVisited(node, mHierarchyInterface->GetFrameId());
18
19                bool intersects = false;
20
21                if (!mHierarchyInterface->CheckFrustumVisible(node, intersects))
22                {
23                        mNumFrustumCulledNodes ++;
24                }
25                else
26                {
27                        //if intersects near plane => skip occlusion query because wrong results possible
28                        if (intersects)
29                        {
30                    mHierarchyInterface->SetNodeVisible(node, true);
31                                mHierarchyInterface->TraverseNode(node);
32                                continue;
33                        }
34
35                        // node visible
36                        if (mHierarchyInterface->IssueOcclusionQuery(node)->GetQueryResult() >
37                                mVisibilityThreshold)
38                        {
39                                mHierarchyInterface->TraverseNode(node);
40                        }
41                        else
42                        {
43                                mNumQueryCulledNodes ++;
44                        }
45                }
46        }
47}
48} // namespace GtpVisibility
Note: See TracBrowser for help on using the repository browser.