Ignore:
Timestamp:
07/05/05 18:35:47 (19 years ago)
Author:
mattausch
Message:

added node traversal interface

Location:
trunk/VUT/work/TestCullingTerrain
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/work/TestCullingTerrain/TerrainFrameListener.cpp

    r154 r155  
    8989mShowOctree(false), 
    9090mUseDepthPass(false), 
    91 mUseOptimization(true), 
     91mTestGeometryForVisibleLeaves(true), 
    9292mShowVisualization(false), 
    9393mCullCamera(false), 
     
    101101mShowQueryStats(false), 
    102102mQueryManager(NULL), 
    103 mVisibilityManager(NULL) 
     103mVisibilityManager(NULL), 
     104mDelayedQueriesIssued(0.0), 
     105mDelayedTraversedNodes(0.0) 
    104106{ 
    105107        //mInputDevice = PlatformManager::getSingleton().createInputReader(); 
     
    129131        mAlgorithmInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/AlgorithmInfo"); 
    130132        mThresholdInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/ThresholdInfo"); 
    131         mUseOptimizationInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/UseOptimizationInfo"); 
     133        mTestGeometryForVisibleLeavesInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/TestGeometryForVisibleLeavesInfo"); 
    132134        mUseDepthPassInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/UseDepthPassInfo"); 
    133135        mAssumedVisibilityInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/AssumedVisibilityInfo"); 
     
    140142        mObjectsInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/ObjectsInfo"); 
    141143        mQueriesIssuedInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/QueriesIssuedInfo"); 
    142          
     144        mDelayedQueriesIssuedInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/DelayedQueriesIssuedInfo"); 
     145        mDelayedTraversedNodesInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/DelayedTraversedNodesInfo"); 
     146 
    143147        mAlgorithmInfo->setCaption(": " + currentAlgorithmCaptions[mCurrentAlgorithm]); 
    144148        mThresholdInfo->setCaption(": 0"); 
     
    149153        mRenderedNodesInfo->setCaption(": 0"); 
    150154        mObjectsInfo->setCaption(": 0"); 
    151         mUseOptimizationInfo->setCaption(": true"); 
     155        mTestGeometryForVisibleLeavesInfo->setCaption(": true"); 
    152156        mUseDepthPassInfo->setCaption(": false"); 
    153157        mQueriesIssuedInfo->setCaption(": 0"); 
    154158        mAssumedVisibilityInfo->setCaption(": 0"); 
    155  
     159        mDelayedQueriesIssuedInfo->setCaption(": 0"); 
     160        mDelayedTraversedNodesInfo->setCaption(": 0"); 
    156161 
    157162        //-- visibility query stats overlay 
     
    170175 
    171176        // set scene manager options 
    172         mSceneMgr->setOption("UseOptimization", &mUseOptimization); 
     177        mSceneMgr->setOption("TestGeometryForVisibleLeaves", &mTestGeometryForVisibleLeaves); 
    173178 
    174179        // apply delayed rendering (i.e., transparents after hierarchical culling pass) 
    175180        // only if optimization is not used  
    176         bool delayRenderTransparents = !mUseOptimization; 
     181        bool delayRenderTransparents = !mTestGeometryForVisibleLeaves; 
    177182 
    178183        mSceneMgr->setOption("DelayRenderTransparents", &delayRenderTransparents); 
     
    736741                mSceneMgr->getOption("NumFrustumCulledNodes", &opt); sprintf(str,": %d", opt);  
    737742                mFrustumCulledNodesInfo->setCaption(str); 
    738          
    739                 mSceneMgr->getOption("NumQueriesIssued", &opt); sprintf(str,": %d", opt);  
     743 
     744                // delay so there is no jump 
     745                mSceneMgr->getOption("NumQueriesIssued", &opt);  
     746                sprintf(str,": %d", (int)opt);  
    740747                mQueriesIssuedInfo->setCaption(str); 
    741748 
     
    754761                sprintf(str,": %d", mTerrainContentGenerator->GetObjectCount());  
    755762                mObjectsInfo->setCaption(str); 
     763 
     764                // delay so there is no jump 
     765                mSceneMgr->getOption("NumQueriesIssued", &opt);  
     766                mDelayedQueriesIssued = mDelayedQueriesIssued * 0.8 + (float)opt * 0.2; 
     767                sprintf(str,": %d", (int)mDelayedQueriesIssued);  
     768                mDelayedQueriesIssuedInfo->setCaption(str); 
     769 
     770                mSceneMgr->getOption("NumTraversedNodes", &opt);  
     771                mDelayedTraversedNodes = mDelayedTraversedNodes * 0.8 + (float)opt * 0.2; 
     772                sprintf(str,": %d", (int)mDelayedTraversedNodes);  
     773                mDelayedTraversedNodesInfo->setCaption(str); 
     774 
    756775        } 
    757776        catch (...) 
     
    761780} 
    762781//----------------------------------------------------------------------- 
    763 void TerrainFrameListener::toggleUseOptimization() 
    764 { 
    765         mUseOptimization = !mUseOptimization; 
    766         mSceneMgr->setOption("UseOptimization", &mUseOptimization); 
     782void TerrainFrameListener::toggleTestGeometryForVisibleLeaves() 
     783{ 
     784        mTestGeometryForVisibleLeaves = !mTestGeometryForVisibleLeaves; 
     785        mSceneMgr->setOption("TestGeometryForVisibleLeaves", &mTestGeometryForVisibleLeaves); 
    767786         
    768787        // disable optimization which tests geometry instead of aabb 
    769788        // for delayed rendering (i.e., render transparents after all the solids) 
    770789        // because otherwise visible transparents could be skipped 
    771         bool delayedRendering = !mUseOptimization; 
     790        bool delayedRendering = !mTestGeometryForVisibleLeaves; 
     791 
    772792        mSceneMgr->setOption("DelayRenderTransparents", &delayedRendering); 
    773793 
    774         if (mUseOptimization) 
    775         { 
    776                 mUseOptimizationInfo->setCaption(": true"); 
     794        if (mTestGeometryForVisibleLeaves) 
     795        { 
     796                mTestGeometryForVisibleLeavesInfo->setCaption(": true"); 
    777797        } 
    778798        else 
    779799        { 
    780                 mUseOptimizationInfo->setCaption(": false"); 
     800                mTestGeometryForVisibleLeavesInfo->setCaption(": false"); 
    781801        } 
    782802} 
     
    898918                toggleDisplayCameraDetails(); 
    899919                break; 
    900         case KC_O: 
    901                 toggleUseOptimization(); 
     920        case KC_G: 
     921                toggleTestGeometryForVisibleLeaves(); 
    902922                break; 
    903923        case KC_T: 
  • trunk/VUT/work/TestCullingTerrain/TerrainFrameListener.h

    r154 r155  
    109109    void changeThreshold(int incr); 
    110110        void changeAssumedVisibility(int incr); 
    111         void toggleUseOptimization(); 
     111        void toggleTestGeometryForVisibleLeaves(); 
    112112        void toggleShowOctree(); 
    113113        void toggleUseDepthPass(); 
     
    159159    OverlayElement *mTraversedNodesInfo; 
    160160        OverlayElement *mHierarchyNodesInfo; 
    161         OverlayElement *mUseOptimizationInfo; 
     161        OverlayElement *mTestGeometryForVisibleLeavesInfo; 
    162162        OverlayElement *mUseDepthPassInfo; 
    163163        OverlayElement *mRenderedNodesInfo; 
    164164        OverlayElement *mObjectsInfo; 
    165165        OverlayElement *mQueriesIssuedInfo; 
     166        OverlayElement *mDelayedQueriesIssuedInfo; 
     167        OverlayElement *mDelayedTraversedNodesInfo; 
    166168 
    167169        OverlayElement *mQueryTypeInfo; 
     
    175177        TerrainContentGenerator *mTerrainContentGenerator; 
    176178 
    177         bool mUseOptimization; 
     179        bool mTestGeometryForVisibleLeaves; 
    178180        bool mShowOctree; 
    179181        bool mUseDepthPass; 
     
    236238        //bool mUseBufferedInputKeys, mUseBufferedInputMouse, mInputTypeSwitchingOn; 
    237239        PlatformQueryManager *mQueryManager; 
     240 
     241        float mDelayedQueriesIssued; 
     242        float mDelayedTraversedNodes; 
    238243}; 
    239244 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r150 r155  
    162162 
    163163                // the objects are generated on the whole terrain 
    164                 //mTerrainContentGenerator->GenerateScene(1500, "robot"); 
    165                 mTerrainContentGenerator->GenerateScene(1500, "athene"); 
     164                mTerrainContentGenerator->GenerateScene(1500, "robot"); 
     165                //mTerrainContentGenerator->GenerateScene(1500, "athene"); 
    166166                //mTerrainContentGenerator->GenerateScene(500, "ninja"); 
    167167        } 
Note: See TracChangeset for help on using the changeset viewer.