Ignore:
Timestamp:
11/05/08 15:14:22 (16 years ago)
Author:
mattausch
Message:

depth queries not working

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneQuery.cpp

    r3089 r3101  
    66#include "RenderTraverser.h" 
    77#include "FrameBufferObject.h" 
     8#include "RenderState.h" 
    89 
    910#include <IL/il.h> 
     
    7576        startil(); 
    7677 
    77         ILstring filename = ILstring("depth.tga"); 
     78        ILstring filename = ILstring("sceneQuery.tga"); 
    7879        ilRegisterType(IL_FLOAT); 
    7980 
     
    100101 
    101102SceneQuery::SceneQuery(const AxisAlignedBox3 &sceneBox,  
    102                                            RenderTraverser *renderer):  
    103 mSceneBox(sceneBox), mDepth(NULL) 
     103                                           RenderTraverser *renderer, RenderState *state):  
     104mSceneBox(sceneBox), mDepth(NULL), mRenderState(state) 
    104105{ 
    105106        Prepare(renderer); 
     
    112113        const int py = (mSceneBox.Max(1) - pt.y) * (texHeight - 1) / mSceneBox.Size(1); 
    113114 
    114         float d = mDepth[px + py * texHeight]; 
     115        const float d = mDepth[px + py * texHeight]; 
    115116 
    116117        static float depth = d; 
    117118 
    118         if (d > 0) 
     119        if (d > .0f) 
    119120        { 
    120121                // temporal smoothing of depth values 
     
    136137        cout << "Preparing scene queries" << endl; 
    137138 
    138         const float xlen = mSceneBox.Size().x * 0.5f; 
    139         const float ylen = mSceneBox.Size().y * 0.5f; 
     139        const float xlen = mSceneBox.Size().x * .5f; 
     140        const float ylen = mSceneBox.Size().y * .5f; 
    140141         
    141142        PerspectiveCamera *orthoCam = new PerspectiveCamera(xlen / ylen); 
     
    165166        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    166167 
     168        // hack: disable cull face because of alpha textured balconies 
    167169        glDisable(GL_CULL_FACE); 
    168         glEnable(GL_DEPTH_TEST); 
     170        mRenderState->LockCullFaceEnabled(true); 
     171 
     172        //glDisable(GL_CULL_FACE); 
     173        //glEnable(GL_DEPTH_TEST); 
    169174 
    170175        glMatrixMode(GL_MODELVIEW); 
     
    177182 
    178183        glOrtho(xlen, -xlen, ylen, -ylen, 0.0f, mSceneBox.Size().z);  
     184        //glOrtho(xlen, .0f, ylen, .0f, .0f, mSceneBox.Size().z);  
    179185 
    180186        glMatrixMode(GL_MODELVIEW); 
     
    190196        glEnableClientState(GL_NORMAL_ARRAY); 
    191197 
     198        // forward rendering 
     199        mRenderState->SetRenderTechnique(0); 
     200 
    192201        renderer->RenderScene(); 
    193202 
     
    197206        renderer->SetCamera(oldCam); 
    198207         
    199  
    200         glEnable(GL_CULL_FACE); 
     208        mRenderState->LockCullFaceEnabled(false); 
     209        //glEnable(GL_CULL_FACE); 
    201210 
    202211        glMatrixMode(GL_MODELVIEW); 
     
    211220 
    212221        GrabDepthBuffer(mDepth, fbo->GetDepthTex()); 
    213         //ExportDepthBuffer(mDepth); PrintGLerror("grab"); 
     222        ExportDepthBuffer(mDepth); PrintGLerror("grab depth"); 
    214223 
    215224        DEL_PTR(fbo); 
Note: See TracChangeset for help on using the changeset viewer.