Ignore:
Timestamp:
05/08/06 06:55:17 (18 years ago)
Author:
mattausch
Message:

update for ogre 1.2
OcclusionCullingSceneManager? is the only scenemanager in the solution now

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionCullingSceneManager.cpp

    r903 r925  
    1111#include <OgreMaterialManager.h> 
    1212#include <OgreIteratorWrappers.h> 
     13#include <OgreHeightmapTerrainPageSource.h> 
    1314#include "VspBspTree.h" 
    1415#include "Containers.h" 
     
    4445mSkipTransparents(false), 
    4546mRenderTransparentsForItemBuffer(true), 
    46 mExecuteVertexProgramForAllPasses(true), 
     47//mExecuteVertexProgramForAllPasses(true), 
     48mExecuteVertexProgramForAllPasses(false), 
    4749mIsHierarchicalCulling(false), 
    4850mViewCellsLoaded(false), 
     
    5658        if (0) 
    5759        { 
    58         mDisplayNodes = true; 
    59         mShowBoundingBoxes = true; 
    60         mShowBoxes = true; 
     60                mDisplayNodes = true; 
     61                mShowBoundingBoxes = true; 
     62                mShowBoxes = true; 
    6163        } 
    6264 
    6365        // TODO: set maxdepth to reasonable value 
    6466        mMaxDepth = 50; 
     67 
     68        //loadVisibilityConfig("GtpVisibility.cfg"); 
     69        //LoadViewCells(""); 
     70        //mViewCellsLoaded = true; 
    6571} 
    6672//----------------------------------------------------------------------- 
     
    117123} 
    118124//------------------------------------------------------------------------- 
     125#if 1 
    119126void OcclusionCullingSceneManager::setWorldGeometry( DataStreamPtr& stream, const String& typeName ) 
    120127{ 
     
    146153 
    147154 } 
    148  
     155#endif 
    149156//----------------------------------------------------------------------- 
    150157void OcclusionCullingSceneManager::PrepareVisualization(Camera *cam) 
     
    183190                        { 
    184191                                // render the leaf nodes 
    185                                 if (((*it)->numAttachedObjects() > 0) && ((*it)->numChildren() == 0) &&  
    186                                          (*it)->getAttachedObject(0)->getMovableType() == "Entity") 
     192                                if ((*it)->numAttachedObjects() &&  
     193                                        !(*it)->numChildren() &&  
     194                                        ((*it)->getAttachedObject(0)->getMovableType() == "Entity") && 
     195                                        (*it)->getAttachedObject(0)->isVisible()) 
    187196                                { 
    188197                                        getRenderQueue()->addRenderable((*it)); 
     
    217226        Pass *usedPass = useDepthPass ? mDepthPass : pass; 
    218227                 
    219         IlluminationRenderStage savedStage = mIlluminationStage;  
     228 
     229        const IlluminationRenderStage savedStage = mIlluminationStage;  
    220230         
    221231        // set illumination stage to NONE so no shadow material is used  
     
    583593                return true; 
    584594        } 
    585          
     595        if (key == "VisibilityManager") 
     596        { 
     597                * static_cast<GtpVisibility::VisibilityManager **>(val) =  
     598                        (GtpVisibility::VisibilityManager *)mVisibilityManager; 
     599                return true; 
     600        } 
     601        if (key == "HierarchInterface") 
     602        { 
     603                * static_cast<GtpVisibility::HierarchyInterface **>(val) =  
     604                        (GtpVisibility::HierarchyInterface *)mHierarchyInterface; 
     605                return true; 
     606        } 
     607 
    586608        return VisibilityOptionsManager(mVisibilityManager, mHierarchyInterface). 
    587609                getOption(key, val) && TerrainSceneManager::getOption(key, val); 
     
    630652} 
    631653//----------------------------------------------------------------------- 
    632 void OcclusionCullingSceneManager::renderObjects( 
    633         const QueuedRenderableCollection& objs, 
    634         QueuedRenderableCollection::OrganisationMode om, 
    635     bool doLightIteration, const LightList* manualLightList) 
    636 { 
    637         // for correct rendering, transparents must be rendered after hierarchical culling 
    638         // => do nothing 
    639         if (NORMAL_RENDER_HACK || !mSkipTransparents) 
    640         { 
    641                 OctreeSceneManager::renderObjects(objs, om, doLightIteration, manualLightList); 
    642         } 
    643 } 
     654void OcclusionCullingSceneManager::renderBasicQueueGroupObjects(RenderQueueGroup* pGroup,  
     655                                                                                                                                QueuedRenderableCollection::OrganisationMode om) 
     656{ 
     657    // Basic render loop 
     658    // Iterate through priorities 
     659    RenderQueueGroup::PriorityMapIterator groupIt = pGroup->getIterator(); 
     660 
     661    while (groupIt.hasMoreElements()) 
     662    { 
     663        RenderPriorityGroup* pPriorityGrp = groupIt.getNext(); 
     664 
     665        // Sort the queue first 
     666        pPriorityGrp->sort(mCameraInProgress); 
     667 
     668        // Do solids 
     669        renderObjects(pPriorityGrp->getSolidsBasic(), om, true); 
     670 
     671                // for correct rendering, transparents must be rendered after hierarchical culling 
     672                // => do nothing 
     673 
     674        // Do transparents (always descending) 
     675                if (NORMAL_RENDER_HACK || !mSkipTransparents) 
     676                { 
     677                        renderObjects(pPriorityGrp->getTransparents(),  
     678                        QueuedRenderableCollection::OM_SORT_DESCENDING, true); 
     679                } 
     680 
     681 
     682    }// for each priority 
     683} 
     684 
    644685//----------------------------------------------------------------------- 
    645686bool OcclusionCullingSceneManager::validatePassForRendering(Pass* pass) 
     
    836877                        /*** msz: no more IRS_AMBIENT, see OgreSceneManager.h ***/ 
    837878                        // mIlluminationStage = IRS_AMBIENT;  
    838                         getRenderQueue()->setSplitPassesByLightingType(true); 
     879                        //getRenderQueue()->setSplitPassesByLightingType(true); 
    839880                } 
    840881         
     
    11731214                        //-- compute new filtered cell 
    11741215                        GtpVisibilityPreprocessor::PrVs prvs; 
    1175                         mViewCellsManager->GetPrVS(viewPoint, prvs); 
     1216                        mViewCellsManager->GetPrVS(viewPoint, prvs, 5); 
    11761217                        viewCell = prvs.mViewCell; 
    11771218                } 
     
    12061247} 
    12071248//----------------------------------------------------------------------- 
    1208 SceneManager* OcclusionCullingSceneManagerFactory::createInstance( 
    1209         const String& instanceName) 
    1210 { 
    1211         return new OcclusionCullingSceneManager(instanceName, visManager); 
     1249SceneManager *OcclusionCullingSceneManagerFactory::createInstance( 
     1250                const String& instanceName) 
     1251{ 
     1252        OcclusionCullingSceneManager* tsm = new OcclusionCullingSceneManager(instanceName, visManager); 
     1253         
     1254        // Create & register default sources (one per manager) 
     1255        HeightmapTerrainPageSource* ps = new HeightmapTerrainPageSource(); 
     1256        mTerrainPageSources.push_back(ps); 
     1257        tsm->registerPageSource("Heightmap", ps); 
     1258 
     1259        return tsm; 
    12121260} 
    12131261//----------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.