Ignore:
Timestamp:
03/22/05 01:23:09 (19 years ago)
Author:
gametools
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManager.cpp

    r23 r24  
    55#include "OgreCamera.h" 
    66#include "OgreHardwareOcclusionQuery.h" 
    7 #include "OgreWireBoundingBox.h" 
     7//#include "OgreWireBoundingBox.h" 
     8#include "OgreSolidBoundingBox.h" 
    89 
    910#include <windows.h> 
     
    173174        { 
    174175                // change state so the bounding box gets not actually rendered on the screen 
    175                 setRenderingMode(MODE_RENDER); 
     176                setRenderingMode(MODE_QUERY); 
    176177 
    177178                // get next available test id 
     
    181182                query->beginOcclusionQuery(); 
    182183                 
    183                 WireBoundingBox box; 
    184                 box.setupBoundingBox(node->_getWorldAABB()); 
    185  
    186                 //HACK: too slow 
    187                  
     184                SolidBoundingBox boxHalf[2]; 
     185                boxHalf[1].mIsFirstHalf = false; 
     186 
    188187                /* 
    189188                static RenderOperation ro; 
    190189 
    191                  
    192                 static Matrix4 xform[256]; 
    193                 unsigned short numMatrices; 
    194  
    195         //node->_addBoundingBoxToQueue(getRenderQueue()); 
    196                 //SceneManager::_renderVisibleObjects(); 
    197                 //getRenderQueue()->clear(); 
    198  
    199                 // Set world transformation 
    200                 /*box.getWorldTransforms(xform); 
    201                 numMatrices = box.getNumWorldTransforms(); 
    202                 if (numMatrices > 1) 
    203                 { 
    204                         mDestRenderSystem->_setWorldMatrices(xform, numMatrices); 
    205                 } 
    206                 else 
    207                 { 
    208                 mDestRenderSystem->_setWorldMatrix(*xform); 
    209             } 
    210 */ 
    211190                // Issue view / projection changes if any 
    212                 /*useRenderableViewProjMode(&box); 
     191                useRenderableViewProjMode(&box); 
    213192 
    214193                box.getRenderOperation(ro); 
    215194                ro.srcRenderable = &box;  
    216195                mDestRenderSystem->_render(ro);*/ 
    217                 setPass(box.getTechnique()->getPass(0)); setRenderingMode(MODE_QUERY); 
    218                 SceneManager::renderSingleObject(&box, box.getTechnique()->getPass(0), false); 
     196                for(int i = 0; i < 2; i++) 
     197                { 
     198                        boxHalf[i].setupBoundingBox(node->_getWorldAABB()); 
     199                        //setPass(boxHalf[i].getTechnique()->getPass(0)); //setRenderingMode(MODE_QUERY); 
     200                        SceneManager::renderSingleObject(&boxHalf[i], boxHalf[i].getTechnique()->getPass(0), false); 
     201                } 
    219202 
    220203                query->endOcclusionQuery(); 
Note: See TracChangeset for help on using the changeset viewer.