Changeset 346


Ignore:
Timestamp:
10/21/05 20:28:11 (19 years ago)
Author:
mattausch
Message:

updated terrain removed debug messages from chc

Location:
trunk/VUT
Files:
7 edited

Legend:

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

    r345 r346  
    2525        unsigned int visiblePixels = 0; 
    2626        bool isAvailable = false; 
    27         Ogre::LogManager::getSingleton().logMessage("Coherent Hierarchical Culling\n"); 
     27        //Ogre::LogManager::getSingleton().logMessage("Coherent Hierarchical Culling"); 
    2828 
    2929        //-- PART 1: process finished occlusion queries 
     
    3737                         
    3838                        queryQueue.pop(); 
    39  
    40                         std::stringstream d2; d2 << "fetch node from query queue " << node; 
    41                         Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    4239 
    4340                        if (visiblePixels > mVisibilityThreshold) 
     
    6360                        mHierarchyInterface->GetQueue()->pop(); 
    6461                                 
    65                         std::stringstream d2; d2 << "fetch node from hierarchy queue " << node; 
    66                         Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    67  
    6862                        bool intersects = false; 
    6963 
     
    8781                                bool wasVisible = mHierarchyInterface->IsNodeVisible(node) &&  
    8882                                        (mHierarchyInterface->LastVisited(node) == mHierarchyInterface->GetFrameId() - 1); 
    89                                 if (mHierarchyInterface->LastVisited(node) == mHierarchyInterface->GetFrameId()) 
    90                                 { 
    91                                 std::stringstream d2; d2 << "!!!!lastVisited: " << mHierarchyInterface->LastVisited(node) << " " << node; 
    92                                 Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    93                                 std::stringstream d; d << "!!!!!frameid: " << mHierarchyInterface->GetFrameId() << " " << node << "\n"; 
    94                                 Ogre::LogManager::getSingleton().logMessage(d.str()); 
    95                                 } 
     83                                 
    9684                                // if we assume node to be visible in this frame => skip query  
    9785                                // TODO: check this (not the expected speed up) 
     
    10593                // identify nodes that we cannot skip queries for 
    10694                                // geometry not only in leaves => test for renderable geometry 
     95                                // we also need to test if node was processed in current frame, otherwise 
     96                                // node is tested several times because of priority queue 
    10797                                bool issueQuery = (mHierarchyInterface->LastVisited(node) != mHierarchyInterface->GetFrameId()) 
    10898                                                && (!wasVisible || mHierarchyInterface->HasGeometry(node)); 
     
    113103                                // update node's visited flag 
    114104                                mHierarchyInterface->SetLastVisited(node, mHierarchyInterface->GetFrameId()); 
    115  
    116                                 std::stringstream d2; d2 << "lastVisited: " << mHierarchyInterface->LastVisited(node) << " " << node; 
    117                                 Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    118105 
    119106                                // skip testing previously visible nodes without geometry 
     
    129116                                if (wasVisible) 
    130117                                { 
    131                                                 std::stringstream d2; d2 << "traversing node " << node; 
    132                                         Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    133118                                        mHierarchyInterface->TraverseNode(node); 
    134119                                } 
     
    162147{ 
    163148        // -- set node to be visible in this frame, then traverse it 
    164         std::stringstream d2; d2 << "skipping node " << node; 
    165                                         Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    166149        mHierarchyInterface->SetLastVisited(node, mHierarchyInterface->GetFrameId()); 
    167150         
    168         mHierarchyInterface->SetNodeVisible(node, true); 
    169151        mHierarchyInterface->PullUpVisibility(node);                     
    170152        mHierarchyInterface->TraverseNode(node); 
  • trunk/VUT/GtpVisibility/src/StopAndWaitCullingManager.cpp

    r345 r346  
    1919                bool intersects = false; 
    2020         
    21                 //if (mHierarchyInterface->HasGeometry(node) && (!mHierarchyInterface->IsLeaf(node))) ++ mNumFrustumCulledNodes; 
    22                                 //      Ogre::LogManager::getSingleton().logMessage("no geometry"); 
    23                         //else if (!mHierarchyInterface->IsLeaf(node)) ++ mNumQueriesIssued;//  Ogre::LogManager::getSingleton().logMessage("has geometry"); 
    24 /*if (!mHierarchyInterface->HasGeometry(node)) 
    25                                         Ogre::LogManager::getSingleton().logMessage("no geometry"); 
    26                                 else    Ogre::LogManager::getSingleton().logMessage("has geometry");*/ 
    2721                if (!mHierarchyInterface->CheckFrustumVisible(node, intersects)) 
    2822                { 
  • trunk/VUT/Ogre/resources/terrain.cfg

    r192 r346  
    2626 
    2727# How large is each tile? Must be (2^n)+1 and be smaller than PageSize 
    28 TileSize=65 
     28TileSize=129 
    2929 
    3030# The maximum error allowed when determining which LOD to use 
     
    3232 
    3333# The size of a terrain page, in world units 
    34 PageWorldX=3000 
    35 PageWorldZ=3000 
     34PageWorldX=5000 
     35PageWorldZ=5000 
    3636# Maximum height of the terrain  
    37 MaxHeight=300 
     37MaxHeight=500 
    3838 
    3939# Upper LOD limit 
  • trunk/VUT/Ogre/src/OgreOctreeHierarchyInterface.cpp

    r345 r346  
    3636                        if (nextChild) 
    3737                        { 
    38                                         std::stringstream d2; d2 << "pushing node " << nextChild; 
    39                                         Ogre::LogManager::getSingleton().logMessage(d2.str()); 
    4038                                mDistanceQueue->push(nextChild); 
    4139                        } 
  • trunk/VUT/chcdemo/RenderTraverser.cpp

    r345 r346  
    182182                                        // update node's visited flag 
    183183                                        node->SetLastVisited(mFrameID); 
    184  
     184                                        node->SetVisible(true); 
    185185                                        PullUpVisibility(node); 
    186186                                        TraverseNode(node); 
     
    192192                                         
    193193                                        // identify nodes that we cannot skip queries for 
    194                                         bool leafOrWasInvisible = !wasVisible || node->IsLeaf(); 
     194                                        bool leafOrWasInvisible = (node->LastVisited() != mFrameID) && (!wasVisible || node->IsLeaf()); 
    195195 
    196196                                        // reset node's visibility classification  
     
    199199                                        // update node's visited flag 
    200200                                        node->SetLastVisited(mFrameID); 
    201                                         //if (mFrameID == node->LastVisited()) mNumFrustumCulledNodes ++; 
     201                                         
    202202                                        // skip testing previously visible interior nodes 
    203203                                        if(leafOrWasInvisible) 
     
    215215                        { 
    216216                                // for stats 
    217                                 //mNumFrustumCulledNodes ++; 
     217                                mNumFrustumCulledNodes ++; 
    218218                        } 
    219219                } 
     
    331331        // get next available test id 
    332332        unsigned int occlusionQuery = mOcclusionQueries[mCurrentTestIdx++]; 
    333         mNumFrustumCulledNodes ++; 
     333         
    334334        node->SetOcclusionQuery(occlusionQuery); 
    335335        // do the actual occlusion query for this node 
  • trunk/VUT/work/TestCullingTerrain/TerrainFrameListener.cpp

    r345 r346  
    5252        0.03, 
    5353        //0.1, 
    54         0.04 
     54        0.03 
    5555}; 
    5656 
     
    423423 
    424424                // clamp camera so we always walk along the terrain 
    425                 mApplication->Clamp2Terrain(mCamNode, 10); 
     425                mApplication->Clamp2Terrain(mCamNode, 5); 
    426426                break; 
    427427 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r345 r346  
    297297 
    298298        mTerrainMinPos = EntityState::msMinPos = Vector3(0, 0, 0); 
    299         mTerrainMaxPos = EntityState::msMaxPos = Vector3(3000, 5000, 3000); 
     299        mTerrainMaxPos = EntityState::msMaxPos = Vector3(5000, 5000, 5000); 
    300300 
    301301        mTerrainContentGenerator = new TerrainContentGenerator(mSceneMgr); 
    302302         
    303303        // if no objects in file, we generate new objects 
    304         //if (!mTerrainContentGenerator->LoadObjects("objects.out")) 
    305         //{ 
     304        if (!mTerrainContentGenerator->LoadObjects("objects.out")) 
     305        { 
    306306                // the objects are generated randomly distributed over the terrain 
    307                 generateScene(900, 0); // create soldiers, trees, ninjas 
    308                 generateScene(500, 1); 
    309                 generateScene(100, 2); 
    310         //} 
     307                generateScene(1000, 0); // create soldiers, trees, ninjas 
     308                generateScene(1000, 1); 
     309                generateScene(200, 2); 
     310        } 
    311311 
    312312        // no limitations on height => it is possible for the user to put single  
     
    319319        float val = TerrainFrameListener::msObjectScales[objectType]; 
    320320        Vector3 scale(val, val, val);  
    321  
     321        const float maxHeight = 100; 
    322322        // to provide much occlusion, 
    323323        // height is restricted to 50 => no objects are created on peaks 
    324324        mTerrainContentGenerator->SetMinPos(Vector3(mTerrainMinPos)); 
    325         mTerrainContentGenerator->SetMaxPos(Vector3(mTerrainMaxPos.x, 75.0f, mTerrainMaxPos.z)); 
     325        mTerrainContentGenerator->SetMaxPos(Vector3(mTerrainMaxPos.x, maxHeight, mTerrainMaxPos.z)); 
    326326        std::stringstream d; d << "objscale: " << scale[0]; 
    327327        Ogre::LogManager::getSingleton().logMessage(d.str()); 
Note: See TracChangeset for help on using the changeset viewer.