Changeset 2532 for GTP/trunk/Lib/Vis


Ignore:
Timestamp:
07/06/07 03:19:45 (17 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/OnlineCullingCHC
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/IVReader/src/IVReader.vcproj

    r2353 r2532  
    8181                                OptimizeForWindowsApplication="TRUE" 
    8282                                AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include" 
    83                                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IVREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 
     83                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;IVREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE1" 
    8484                                RuntimeLibrary="2" 
    8585                                UsePrecompiledHeader="0" 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionQueriesQueryManager.cpp

    r2513 r2532  
    217217        GtpVisibility::QueryList::iterator projQueryIt = queryList[1].begin(); 
    218218         
    219         if (1) 
    220         {        
    221                 // collect occlusion queries for hierarchy nodes 
    222                 CollectNodeVisibility(visQueryIt,  
     219        // collect occlusion queries for hierarchy nodes 
     220        CollectNodeVisibility(visQueryIt,  
    223221                        projQueryIt,  
    224222                        &nodeList,  
    225223                        visibleNodes,  
    226224                        relativeVisibility); 
    227         } 
    228  
    229         if (1) 
    230         {        
    231                 CollectGeometryVisibility(visQueryIt,  
     225         
     226        CollectGeometryVisibility(visQueryIt,  
    232227                        projQueryIt,  
    233228                        &geometryList,  
    234229                        visibleGeometry,  
    235230                        relativeVisibility); 
    236         } 
    237  
    238         if (1) 
    239         { 
    240                 // collect occlusion queries for patches 
    241                 CollectPatchVisibility(visQueryIt,  
     231 
     232        // collect occlusion queries for patches 
     233        CollectPatchVisibility(visQueryIt,  
    242234                        projQueryIt,  
    243235                        &patchList,  
    244236                        visiblePatches,  
    245237                        relativeVisibility); 
    246         } 
    247238 
    248239 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreSolidBoundingBox.cpp

    r2455 r2532  
    129129 
    130130                Pass *queryPass = m_pMaterial->getTechnique(0)->getPass(0); 
     131 
    131132                queryPass->setColourWriteEnabled(false); 
    132133                queryPass->setDepthWriteEnabled(false); 
     
    137138} 
    138139 
    139 // Override this method to prevent parent transforms (rotation,translation,scale) 
     140// Override this method to prevent parent transforms (rotation, translation, scale) 
    140141void SolidBoundingBox::getWorldTransforms(Matrix4* xform) const 
    141142{ 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreSolidHalfBoundingBox.cpp

    r1146 r2532  
    101101} 
    102102 
     103 
    103104} // namespace Ogre 
    104  
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/Plugin_VisibilitySceneManager.vcproj

    r2513 r2532  
    9292                                OptimizeForWindowsApplication="TRUE" 
    9393                                AdditionalIncludeDirectories=""$(OGRE_PATH)\PlugIns\OctreeSceneManager\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";..\include;..\..\..\OnlineCullingCHC\include;..\..\..\Preprocessing\src;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\IVReader\include;..\..\..\..\..\Lib\Vis\OnlineCullingCHC\ObjReader\include" 
    94                                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PLUGIN_KD_TERRAIN_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 
     94                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PLUGIN_KD_TERRAIN_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE1" 
    9595                                StringPooling="TRUE" 
    9696                                RuntimeLibrary="2" 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj

    r2353 r2532  
    8181                                OptimizeForWindowsApplication="TRUE" 
    8282                                AdditionalIncludeDirectories=""$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\Samples\Common\include";..\include;..\..\..\Preprocessing\src" 
    83                                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 
     83                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OBJREADER_EXPORTS;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE1" 
    8484                                RuntimeLibrary="2" 
    8585                                UsePrecompiledHeader="0" 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/GtpVisibility.vcproj

    r2455 r2532  
    7272                                OptimizeForWindowsApplication="TRUE" 
    7373                                AdditionalIncludeDirectories="..\include;"$(OGRE_PATH)\OgreMain\include"" 
    74                                 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE" 
     74                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_VISIBILITY_MODIFIED_OGRE;GAMETOOLS_ILLUMINATION_MODULE1" 
    7575                                StringPooling="TRUE" 
    7676                                RuntimeLibrary="2" 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/RandomUpdateCullingManager.cpp

    r2502 r2532  
    104104                                if (mHierarchyInterface->IsNodeFullyVisible(node)) 
    105105                                { 
     106                                        int nodesTested = 0; 
     107 
    106108                                        // use different algorithm for finding random candidates 
     109#if 1 
    107110                                        HierarchyNodeContainer mynodes; 
    108111                                        mHierarchyInterface->CollectLeaves(node, mynodes); 
     
    112115                                        HierarchyNodeContainer::const_iterator nit, nit_end = mynodes.end(); 
    113116 
    114                                         int nodesTested = 0; 
    115117                                        for (nit = mynodes.begin(); nit != nit_end; ++ nit) 
    116118                                        { 
     
    120122                                                        continue; 
    121123 
     124                                                bool intersects = false; 
     125                                                const bool frustumCulled = !mHierarchyInterface->CheckFrustumVisible(leaf, intersects); 
     126 
     127                                                // don't test in these cases ... 
     128                                                if (frustumCulled || intersects) 
     129                                                        continue; 
     130                 
    122131                                                ++ nodesTested; 
    123  
     132                                                 
    124133                                                mHierarchyInterface->SetNodeVisible(leaf, false); 
    125134 
     
    130139                                                mHierarchyInterface->IssueNodeOcclusionQuery(node, mTestGeometryForVisibleLeaves); 
    131140                                        } 
    132                  
     141 
    133142                                        //std::stringstream d; d << "rc: " << mRandomCandidates << " tested: " << nodesTested << " of " << (int)mynodes.size(); 
    134143                                        //CullingLogManager::GetSingleton()->LogMessage(d.str()); 
    135144 
     145#else 
     146                                         
     147                                        HierarchyNode *leaf = mHierarchyInterface->GetRandomLeaf(node); 
     148                                         
     149                                        bool intersects = false; 
     150                                        const bool frustumCulled = !mHierarchyInterface->CheckFrustumVisible(leaf, intersects); 
     151 
     152                                        if (frustumCulled || intersects) // don't test in these cases ... 
     153                                                continue; 
     154 
     155                                        ++ nodesTested; 
     156 
     157                                        mHierarchyInterface->SetNodeVisible(leaf, false); 
     158 
     159                                        // update node's visited flag: this is important as we are not testing 
     160                                        // all nodes in the hierarchy in this mode 
     161                                        mHierarchyInterface->PullUpLastVisited(leaf, mHierarchyInterface->GetFrameId()); 
     162                                        // issue the query 
     163                                        mHierarchyInterface->IssueNodeOcclusionQuery(leaf, mTestGeometryForVisibleLeaves); 
     164 
     165#endif 
     166                                         
    136167                                        mHierarchyInterface->RenderNodeRecursive(node); 
     168 
     169                                        // bail out here, recursion has finished 
    137170                                        continue; 
    138171                                } 
     
    171204                                        const bool testGeometry = wasVisible && mHierarchyInterface->IsLeaf(node) && mTestGeometryForVisibleLeaves; 
    172205 
    173                                         // previously invisible node 
    174 #if TODO         
    175                                         if (!mHierarchyInterface->IsNodeVisible(node)) 
    176                                         { 
    177                                                 // batch queries so we can test invisible nodes 
    178                                         } 
    179 #endif 
    180206                                        queryQueue.push(QueryPair(node, mHierarchyInterface-> 
    181207                                                IssueNodeOcclusionQuery(node, testGeometry))); 
Note: See TracChangeset for help on using the changeset viewer.