Ignore:
Timestamp:
05/15/05 04:08:02 (20 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT/work/ogre_changes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/work/ogre_changes/OgreMain/src/OgreSceneManager.cpp

    r61 r99  
    41784178    } 
    41794179} 
    4180 #ifdef OGRE_COHERENT_OCCLUSION_CULLING 
     4180#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    41814181//----------------------------------------------------------------------- 
    41824182void SceneManager::_renderSceneNode( Camera *cam, SceneNode *node ) 
     
    41934193        RenderQueue::QueueGroupIterator queueIt = getRenderQueue()->_getQueueGroupIterator(); 
    41944194 
     4195        // find currently processed queue groups and delelete them from render queue 
    41954196        while (queueIt.hasMoreElements()) 
    41964197        { 
     
    41984199                RenderQueueGroup* pGroup = queueIt.getNext(); 
    41994200 
    4200                 // delete this queue group if already processed 
    42014201                if (isRenderQueueToBeProcessed(qId)) 
    42024202                        pGroup->clear(); 
     
    42064206        // Pass::processPendingPassUpdates(); 
    42074207} 
    4208 #endif //OGRE_COHERENT_OCCLUSION_CULLING 
    4209 } 
     4208#endif //GTP_VISIBILITY_MODIFIED_OGRE 
     4209} 
  • trunk/VUT/work/ogre_changes/Plugins/OctreeSceneManager/src/OgreOctreeSceneManager.cpp

    r61 r99  
    316316 
    317317    mOctree = new Octree( 0 ); 
    318 #ifdef OGRE_COHERENT_OCCLUSION_CULLING 
     318#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    319319        mNumOctreeNodes = 1; 
    320 #endif // OGRE_COHERENT_OCCLUSION_CULLING 
     320#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    321321    mMaxDepth = depth; 
    322322    mBox = box; 
     
    461461        { 
    462462            octant -> mChildren[ x ][ y ][ z ] = new Octree( octant ); 
    463 #ifdef OGRE_COHERENT_OCCLUSION_CULLING 
     463#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    464464        mNumOctreeNodes ++; 
    465 #endif // OGRE_COHERENT_OCCLUSION_CULLING 
     465#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    466466 
    467467            const Vector3 *corners = octant -> mBox.getAllCorners(); 
     
    10281028 
    10291029    mOctree = new Octree( 0 ); 
    1030 #ifdef OGRE_COHERENT_OCCLUSION_CULLING 
     1030#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    10311031        mNumOctreeNodes = 1; 
    1032 #endif // OGRE_COHERENT_OCCLUSION_CULLING 
     1032#endif // GTP_VISIBILITY_MODIFIED_OGRE 
    10331033    mOctree->mBox = box; 
    10341034 
     
    11661166    return q; 
    11671167} 
    1168 #ifdef OGRE_COHERENT_OCCLUSION_CULLING 
     1168#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    11691169//----------------------------------------------------------------------- 
    11701170void OctreeSceneManager::_renderOctant(Camera *cam, Octree *octant) 
     
    11771177                OctreeNode *sn = *it; 
    11781178 
    1179         mNumObjects++; 
     1179        ++mNumObjects; 
    11801180 
    11811181                // check bounding box visibility of scene nodes 
     
    11871187 
    11881188                        if (mDisplayNodes) 
     1189                        { 
    11891190                                getRenderQueue()->addRenderable(sn); 
     1191                        } 
    11901192 
    11911193                        // check if the scene manager or this node wants the bounding box shown. 
    11921194                        if (sn->getShowBoundingBox() || mShowBoundingBoxes) 
     1195                        { 
    11931196                                sn->_addBoundingBoxToQueue(getRenderQueue()); 
    1194  
    1195                         if (mShowBoxes) 
    1196                                 getRenderQueue()->addRenderable(octant->getWireBoundingBox()); 
     1197                        } 
    11971198                } 
    11981199        ++it; 
    11991200        } 
    12001201 
     1202        if (mShowBoxes) 
     1203        { 
     1204                getRenderQueue()->addRenderable(octant->getWireBoundingBox()); 
     1205                ++mNumObjects; 
     1206        } 
     1207 
    12011208        SceneManager::_renderVisibleObjects(); 
    12021209 
    1203         // delete all rendered objects from renderqueue 
     1210        // delete all rendered objects from the render queue 
    12041211        _deleteRenderedQueueGroups(); 
    12051212} 
    1206 #endif // OGRE_COHERENT_OCCLUSION_CULLING 
    1207 } 
     1213#endif // GTP_VISIBILITY_MODIFIED_OGRE 
     1214} 
  • trunk/VUT/work/ogre_changes/RenderSystems/GL/src/OgreGLHardwareOcclusionQuery.cpp

    r97 r99  
    161161 
    162162        // Check for hardware occlusion support 
    163     // if( glDeleteOcclusionQueriesNV_ptr != 0 )        // This is a hack to see if hw occlusion is supported. pointer is 0 if it's not supported. 
    164         if( glDeleteQueriesARB_ptr != 0 ) 
     163    if ( glDeleteOcclusionQueriesNV_ptr != 0 )  // This is a hack to see if hw occlusion is supported. pointer is 0 if it's not supported. 
     164        //if ( glDeleteQueriesARB_ptr != 0 ) 
    165165        { 
    166166                m_bHWOcclusionSupport = true; 
     
    171171        } 
    172172 
    173         if( m_bHWOcclusionSupport ) 
    174         { 
    175                 //glGenOcclusionQueriesNV_ptr( 1, m_uintQuery );         
    176                 glGenQueriesARB_ptr(1, m_uintQuery); 
     173        if ( m_bHWOcclusionSupport ) 
     174        { 
     175                glGenOcclusionQueriesNV_ptr( 1, m_uintQuery );   
     176                //glGenQueriesARB_ptr(1, m_uintQuery); 
    177177        } 
    178178} 
     
    182182GLHardwareOcclusionQuery::~GLHardwareOcclusionQuery()  
    183183{  
    184         if( m_bHWOcclusionSupport ) 
    185         { 
    186                 //glDeleteOcclusionQueriesNV_ptr( 1, &m_uintQuery[0] );   
    187                 glDeleteQueriesARB_ptr(1, &m_uintQuery[0]); 
     184        if ( m_bHWOcclusionSupport ) 
     185        { 
     186                glDeleteOcclusionQueriesNV_ptr( 1, &m_uintQuery[0] );   
     187                //glDeleteQueriesARB_ptr(1, &m_uintQuery[0]); 
    188188        }        
    189189} 
     
    192192void GLHardwareOcclusionQuery::beginOcclusionQuery()  
    193193{  
    194         if( m_bHWOcclusionSupport )     // Make it fail silently if hardware occlusion isn't supported 
     194        if ( m_bHWOcclusionSupport )    // Make it fail silently if hardware occlusion isn't supported 
    195195        { 
    196196                // do the actual occlusion query for this node 
    197                 //glBeginOcclusionQueryNV_ptr( m_uintQuery[0] ); 
    198                 glBeginQueryARB_ptr(GL_SAMPLES_PASSED_ARB, m_uintQuery[0]); 
     197                glBeginOcclusionQueryNV_ptr( m_uintQuery[0] ); 
     198                //glBeginQueryARB_ptr(GL_SAMPLES_PASSED_ARB, m_uintQuery[0]); 
    199199        } 
    200200} 
     
    202202void GLHardwareOcclusionQuery::endOcclusionQuery()  
    203203{  
    204         if( m_bHWOcclusionSupport )     // Make it fail silently if hardware occlusion isn't supported 
    205         { 
    206                 //glEndOcclusionQueryNV_ptr(); 
    207                 glEndQueryARB_ptr(GL_SAMPLES_PASSED_ARB); 
     204        if ( m_bHWOcclusionSupport )    // Make it fail silently if hardware occlusion isn't supported 
     205        { 
     206                glEndOcclusionQueryNV_ptr(); 
     207                //glEndQueryARB_ptr(GL_SAMPLES_PASSED_ARB); 
    208208        } 
    209209} 
     
    211211bool GLHardwareOcclusionQuery::pullOcclusionQuery( unsigned int * NumOfFragments, const bool waitForResult)  
    212212{ 
    213         //unsigned int isAvailable = GL_TRUE; 
    214         int isAvailable = GL_TRUE; 
     213        unsigned int isAvailable = GL_TRUE; 
     214        //int isAvailable = GL_TRUE; 
    215215 
    216216        if( m_bHWOcclusionSupport )      
    217217        { 
    218                 if(!waitForResult) 
    219                 { 
    220                         //glGetOcclusionQueryuivNV_ptr( m_uintQuery[0], GL_PIXEL_COUNT_AVAILABLE_NV, &isAvailable ); 
    221                         glGetQueryivARB_ptr(m_uintQuery[0], GL_QUERY_RESULT_AVAILABLE_ARB, &isAvailable); 
    222                 } 
    223  
    224                 if(isAvailable == GL_TRUE) 
    225                 { 
    226                         glGetQueryObjectuivARB_ptr( m_uintQuery[0], GL_QUERY_RESULT_ARB, NumOfFragments); 
    227                         //glGetOcclusionQueryuivNV_ptr( m_uintQuery[0], GL_PIXEL_COUNT_NV, NumOfFragments ); 
     218                if (!waitForResult) 
     219                { 
     220                        glGetOcclusionQueryuivNV_ptr( m_uintQuery[0], GL_PIXEL_COUNT_AVAILABLE_NV, &isAvailable ); 
     221                        //glGetQueryivARB_ptr(m_uintQuery[0], GL_QUERY_RESULT_AVAILABLE_ARB, &isAvailable); 
     222                } 
     223 
     224                if (isAvailable == GL_TRUE) 
     225                { 
     226                        glGetOcclusionQueryuivNV_ptr( m_uintQuery[0], GL_PIXEL_COUNT_NV, NumOfFragments ); 
     227                        //glGetQueryObjectuivARB_ptr( m_uintQuery[0], GL_QUERY_RESULT_ARB, NumOfFragments); 
    228228                } 
    229229        }  
Note: See TracChangeset for help on using the changeset viewer.