Changeset 113 for trunk/VUT/Ogre


Ignore:
Timestamp:
05/27/05 11:56:51 (20 years ago)
Author:
mattausch
Message:

fixed problems with visualization

Location:
trunk/VUT/Ogre
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/include/OgreVisibilityOctreeSceneManager.h

    r112 r113  
    6060        bool mUseVisibilityCulling; 
    6161        bool mShowVisualization; 
    62         bool mRenderNodesForViz; 
    6362        bool mVisualizeCulledNodes; 
     63 
     64        int mRenderNodesForViz; 
    6465}; 
    6566 
  • trunk/VUT/Ogre/include/OgreVisibilityTerrainSceneManager.h

    r112 r113  
    5050        */ 
    5151        GtpVisibility::VisibilityManager *getVisibilityManager(); 
    52          
     52 
    5353protected: 
    5454         
     
    6363        bool mShowVisualization; 
    6464        bool mRenderNodesForViz; 
     65        bool mRenderNodesContentForViz; 
    6566        bool mVisualizeCulledNodes; 
    6667}; 
  • trunk/VUT/Ogre/src/OgreOctreeHierarchyInterface.cpp

    r112 r113  
    33#include <OgreOctree.h> 
    44#include <OgreLogManager.h> 
    5  
     5#include <OgreStringConverter.h> 
    66#include <windows.h> 
    77 
     
    156156                box->setMaterial("QueryCulledNodesMaterial"); 
    157157        } 
     158 
    158159        static_cast<OctreeSceneManager *>(mSceneManager)->getBoxes()->push_back(box); 
    159         //LogManager::getSingleton().logMessage("pushing box"); 
    160160} 
    161161} // namespace Ogre 
  • trunk/VUT/Ogre/src/OgrePlatformHierarchyInterface.cpp

    r112 r113  
    1212mCamera(NULL), mCullCamera(NULL), mOnlyShadowCasters(false) 
    1313{ 
    14         CreateCulledNodeMaterials(); 
    15          
    1614} 
    1715//----------------------------------------------------------------------- 
     
    2018        // material for frustum culled nodes 
    2119        MaterialPtr mat = MaterialManager::getSingleton().getByName("FrustumCulledNodesMaterial"); 
    22         MaterialPtr baseWhite = MaterialManager::getSingleton().getByName("BaseWhiteNoLighting"); 
     20         
    2321        if (mat.isNull()) 
    2422        { 
    2523                mat = MaterialManager::getSingleton().create("FrustumCulledNodesMaterial",  
    2624                        ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); 
    27  
    28                 //baseWhite.get()->copyDetailsTo(mat); 
    29                 //mat->setColourWriteEnabled(true); 
    30                 mat->setLightingEnabled(false); 
    31                 //mat->setAmbient(ColourValue(1,0,0)); 
     25                mat->createTechnique()->createPass(); 
     26                 
     27                mat->getTechnique(0)->getPass(0)->setAmbient(1,0,0); 
     28                mat->getTechnique(0)->getPass(0)->setLightingEnabled(true); 
     29                //mat->getTechnique(0)->getPass(0)->setDepthCheckEnabled(false); 
     30                 
     31                mat->load(); 
    3232        } 
    3333 
    3434        // material for query culled nodes 
    35         MaterialPtr mat2 = MaterialManager::getSingleton().getByName("QueryCulledNodesMaterial"); 
    36  
    37         if (mat2.isNull()) 
    38         { 
    39                 mat2 = MaterialManager::getSingleton().create("QueryCulledNodesMaterial",  
     35        mat = MaterialManager::getSingleton().getByName("QueryCulledNodesMaterial"); 
     36 
     37        if (mat.isNull()) 
     38        { 
     39                mat = MaterialManager::getSingleton().create("QueryCulledNodesMaterial",  
    4040                        ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); 
    41                 //baseWhite.get()->copyDetailsTo(mat2); 
    42         //      mat2->setColourWriteEnabled(true); 
    43                 mat2->setLightingEnabled(false); 
    44                 //mat2->setAmbient(ColourValue(0,0,1));          
     41                mat->createTechnique()->createPass(); 
     42                 
     43                mat->getTechnique(0)->getPass(0)->setAmbient(0,0,1); 
     44                mat->getTechnique(0)->getPass(0)->setLightingEnabled(true); 
     45                mat->load(); 
    4546        } 
    4647} 
     
    126127                SetCullCamera(cam); 
    127128        } 
     129 
     130        CreateCulledNodeMaterials(); 
    128131} 
    129132//----------------------------------------------------------------------- 
  • trunk/VUT/Ogre/src/OgreVisibilityOctreeSceneManager.cpp

    r112 r113  
    142142        if (key == "RenderNodesForViz") 
    143143        { 
    144                 mRenderNodesForViz = (*static_cast<const bool *>(val)); 
     144                mRenderNodesForViz = (*static_cast<const int *>(val)); 
    145145                return true; 
    146146        } 
  • trunk/VUT/Ogre/src/OgreVisibilityTerrainSceneManager.cpp

    r112 r113  
    2020mShowVisualization(false), 
    2121mRenderNodesForViz(false), 
     22mRenderNodesContentForViz(false), 
    2223mVisualizeCulledNodes(false) 
    2324{ 
     
    3940void VisibilityTerrainSceneManager::_findVisibleObjects(Camera* cam, bool onlyShadowCasters) 
    4041{ 
     42        // only shadow casters will be rendered in shadow texture pass 
    4143        mHierarchyInterface->SetOnlyShadowCasters(onlyShadowCasters); 
     44 
    4245        // does nothing if hierarchical culling is used => 
    4346        // we interleave identification and rendering of objects  
     
    6467            // ignore 
    6568        } 
    66                                  
    67                 for (NodeList::iterator it = mVisible.begin(); it != mVisible.end(); ++it) 
     69                 
     70                if (mRenderNodesForViz || mRenderNodesContentForViz) 
    6871                { 
    69                         MaterialPtr mp = (*it)->getMaterial(); 
    70                          
    71                         mp.get()->setLightingEnabled(false); 
    72                         mp.get()->setAmbient(ColourValue(1,0,0)); 
    73                         mp.get()->setDiffuse(ColourValue(1,1,1)); 
    74                         mp.get()->setSpecular(ColourValue(1,1,1)); 
    75                          
    76                         mp.get()->getTechnique(0)->getPass(0)->removeAllTextureUnitStates(); 
    77                         //*mp = MaterialManager::getSingleton().getByName("BaseWhiteNoLighting"); 
    78                         //(*it)->setMaterialName("BaseWhiteNoLighting"); 
    79                         getRenderQueue()->addRenderable(*it); 
    80  
    81                         if (mRenderNodesForViz) 
     72                        // change node material so it is better suited for visualization 
     73                        MaterialPtr nodeMat = MaterialManager::getSingleton().getByName("Core/NodeMaterial"); 
     74                        nodeMat->setAmbient(1, 1, 0); 
     75                        nodeMat->setLightingEnabled(true); 
     76                        nodeMat->getTechnique(0)->getPass(0)->removeAllTextureUnitStates(); 
     77 
     78                        for (NodeList::iterator it = mVisible.begin(); it != mVisible.end(); ++it) 
    8279                        { 
    83                                 (*it)->_addToRenderQueue(cam, getRenderQueue(), false); 
     80                                if (mRenderNodesForViz) 
     81                                { 
     82                                        getRenderQueue()->addRenderable(*it); 
     83                                } 
     84                                if (mRenderNodesContentForViz)  
     85                                { 
     86                                        (*it)->_addToRenderQueue(cam, getRenderQueue(), false); 
     87                                } 
    8488                        } 
    8589                } 
     
    109113        if (!mUseVisibilityCulling || mShowVisualization) 
    110114        {        
     115                //mDestRenderSystem->unbindGpuProgram(GPT_VERTEX_PROGRAM); 
     116                //mDestRenderSystem->unbindGpuProgram(GPT_FRAGMENT_PROGRAM); 
    111117                TerrainSceneManager::_renderVisibleObjects(); 
    112118         
     
    179185        { 
    180186                mRenderNodesForViz = (*static_cast<const bool *>(val)); 
     187                return true; 
     188        } 
     189        if (key == "RenderNodesContentForViz") 
     190        { 
     191                mRenderNodesContentForViz = (*static_cast<const bool *>(val)); 
    181192                return true; 
    182193        } 
Note: See TracChangeset for help on using the changeset viewer.