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

Revision 103, 1.3 KB checked in by mattausch, 19 years ago (diff)

fixed bug with shadow maps

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