Ignore:
Timestamp:
07/06/05 17:52:44 (19 years ago)
Author:
mattausch
Message:

added flags for switching on/off transparents for item buffer and vertex programs for depth pass / item buffer

Location:
trunk/VUT/work/TestCullingTerrain
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/work/TestCullingTerrain/TerrainFrameListener.cpp

    r158 r159  
    103103mVisibilityManager(NULL), 
    104104mDelayedQueriesIssued(0.0), 
    105 mDelayedTraversedNodes(0.0) 
     105mDelayedTraversedNodes(0.0), 
     106mUseItemBuffer(false), 
     107mRenderPatchesForItemBuffer(false) 
    106108{ 
    107109        //mInputDevice = PlatformManager::getSingleton().createInputReader(); 
     
    162164        //-- visibility query stats overlay 
    163165        mQueryTypeInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/QueryTypeInfo"); 
     166         
    164167        mQueryVisibleNodesInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/VisibleNodesInfo"); 
    165168    mQueryVisibleGeometryInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/VisibleGeometryInfo"); 
     169        mQueryVisiblePatchInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/VisiblePatchInfo"); 
     170         
    166171        mQueryNodeVisibilityInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/NodeVisibilityInfo"); 
    167172        mQueryGeometryVisibilityInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/GeometryVisibilityInfo"); 
     173        mQueryPatchVisibilityInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Query/PatchVisibilityInfo"); 
    168174 
    169175        // show stats overlays 
     
    294300 
    295301        //-- IMPORTANT: must be set, otherwise terrain is not rendered correctly 
    296         int terrainLevelIdx = 0; 
    297         mSceneMgr->setOption("TerrainLevelIdx", &terrainLevelIdx); 
     302        mSceneMgr->endFrame(); 
    298303 
    299304        //-- setup what is needed for immediate mouse/key movement 
     
    392397        { 
    393398                mQueryManager = new ItemBufferQueryManager(sm->GetHierarchyInterface(),  
    394                         mWindow->getViewport(0)); 
     399                        mWindow->getViewport(0), mRenderPatchesForItemBuffer); 
    395400        } 
    396401        else 
     
    404409        InfoContainer<GtpVisibility::NodeInfo> visibleNodes; 
    405410        InfoContainer<GtpVisibility::MeshInfo> visibleGeometry; 
     411        InfoContainer<GtpVisibility::PatchInfo> visiblePatches; 
    406412 
    407413        if (fromPoint) 
     
    409415                mQueryManager-> 
    410416                        ComputeFromPointVisibility(mCamNode->getPosition(), &visibleNodes,  
    411                                                                            &visibleGeometry, relativeVisibility); 
     417                                                                           &visibleGeometry, &visiblePatches, relativeVisibility); 
    412418        } 
    413419        else 
    414420        { 
    415421                mQueryManager->ComputeCameraVisibility(*mCamera, 
    416                             &visibleNodes, &visibleGeometry, relativeVisibility); 
    417         } 
    418  
    419         float averageNodeVis = 0; 
    420         float averageGeometryVis = 0; 
    421         int geomSize = 0; 
    422         int nodesSize = 0; 
     422                            &visibleNodes, &visibleGeometry, &visiblePatches, relativeVisibility); 
     423        } 
     424 
     425        float averageNodeVis = 0, averageGeometryVis = 0, averagePatchVis = 0; 
     426        int geomSize = 0, nodesSize = 0, patchSize = 0; 
    423427 
    424428        InfoContainer<GtpVisibility::MeshInfo>::iterator geomIt, geomIt_end = visibleGeometry.end(); 
     
    458462        } 
    459463 
     464        InfoContainer<GtpVisibility::PatchInfo>::iterator patchIt, patchIt_end = visiblePatches.end(); 
     465 
     466        for (patchIt = visiblePatches.begin(); patchIt != patchIt_end; ++patchIt) 
     467        { 
     468                // add if not 0 
     469                if ((*patchIt).GetVisiblePixels()) 
     470                { 
     471                        float vis = relativeVisibility ?  
     472                                (*patchIt).ComputeRelativeVisibility() : (float)(*patchIt).GetVisiblePixels(); 
     473                 
     474                        averagePatchVis += vis; 
     475                        ++patchSize; 
     476 
     477                        std::stringstream d; d << "Patch visibility: " << vis; 
     478                        LogManager::getSingleton().logMessage(d.str()); 
     479                }        
     480        } 
     481 
    460482        if (nodesSize) 
    461483                averageNodeVis /= (float)nodesSize; 
    462484        if (geomSize) 
    463485                averageGeometryVis /= (float)geomSize; 
     486        if (patchSize) 
     487                averagePatchVis /= (float)patchSize; 
    464488 
    465489        //-- update visibility queries stats 
     
    481505                mQueryVisibleGeometryInfo->setCaption(str); 
    482506                 
     507                sprintf(str,": %d", (int)patchSize);  
     508                mQueryVisiblePatchInfo->setCaption(str); 
     509 
    483510                sprintf(str,": %3.3f", averageNodeVis);  
    484511                mQueryNodeVisibilityInfo->setCaption(str); 
     
    486513                sprintf(str,": %3.3f", averageGeometryVis);  
    487514                mQueryGeometryVisibilityInfo->setCaption(str); 
     515 
     516                sprintf(str,": %3.3f", averagePatchVis);  
     517                mQueryPatchVisibilityInfo->setCaption(str); 
    488518        } 
    489519        catch (...) 
     
    909939                break; 
    910940         
    911         case KC_F: 
     941    case KC_F: 
    912942                nextFilter(); 
    913943                break; 
     
    929959        case KC_S: 
    930960                toggleShowShadows(); 
     961                break; 
     962 
     963        case KC_I: 
     964                mUseItemBuffer = !mUseItemBuffer; 
     965                break; 
     966 
     967        case KC_C: 
     968                mRenderPatchesForItemBuffer = !mRenderPatchesForItemBuffer; 
    931969                break; 
    932970 
     
    959997                break; 
    960998        case KC_F5: 
    961                 ApplyVisibilityQuery(false, mShiftPressed, false); 
     999                ApplyVisibilityQuery(false, mShiftPressed, mUseItemBuffer); 
    9621000                break; 
    9631001        case KC_F6: 
    964                 ApplyVisibilityQuery(true, mShiftPressed, false); 
    965                 break; 
    966         case KC_F7: 
    967                 ApplyVisibilityQuery(false, mShiftPressed, true); 
    968                 break; 
    969         case KC_F8: 
    970                 ApplyVisibilityQuery(true, mShiftPressed, true); 
    971                 break; 
     1002                ApplyVisibilityQuery(true, mShiftPressed, mUseItemBuffer); 
     1003                break; 
     1004         
    9721005        case KC_F11: 
    9731006                takeScreenShot(); 
  • trunk/VUT/work/TestCullingTerrain/TerrainFrameListener.h

    r155 r159  
    169169        OverlayElement *mQueryTypeInfo; 
    170170        OverlayElement *mQueryVisibleNodesInfo; 
    171     OverlayElement *mQueryVisibleGeometryInfo; 
     171        OverlayElement *mQueryVisibleGeometryInfo; 
     172        OverlayElement *mQueryVisiblePatchInfo; 
     173 
    172174        OverlayElement *mQueryVisiblityInfo; 
    173175        OverlayElement *mQueryNodeVisibilityInfo; 
    174176        OverlayElement *mQueryGeometryVisibilityInfo; 
     177        OverlayElement *mQueryPatchVisibilityInfo; 
    175178 
    176179        RayQueryExecutor *mRayQueryExecutor; 
     
    190193        bool mShutdownRequested; 
    191194        bool mDisplayCameraDetails; 
    192          
     195        bool mUseItemBuffer; 
     196 
    193197        Real mVizCameraHeight; 
    194198 
     
    236240        unsigned long mAvgFps; 
    237241        unsigned long mFrameCount; 
     242 
    238243        //bool mUseBufferedInputKeys, mUseBufferedInputMouse, mInputTypeSwitchingOn; 
    239244        PlatformQueryManager *mQueryManager; 
     
    241246        float mDelayedQueriesIssued; 
    242247        float mDelayedTraversedNodes; 
     248 
     249        bool mRenderPatchesForItemBuffer; 
    243250}; 
    244251 
  • trunk/VUT/work/TestCullingTerrain/TestCullingTerrainApplication.cpp

    r156 r159  
    127127        setupGui(); 
    128128 
    129         // Floor plane 
    130         /* 
     129         
     130        /* // occluder plane to test visibility 
    131131        Plane plane; 
    132132        plane.normal = Vector3::UNIT_Y; 
     
    138138        pPlaneEnt->setMaterialName("Examples/Rockwall"); 
    139139        pPlaneEnt->setCastShadows(true); 
    140         mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(pPlaneEnt); 
    141         */ 
     140        mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(pPlaneEnt); */ 
     141 
    142142        mSceneMgr->setShadowTextureSettings(1024, 2); 
    143143        mSceneMgr->setShadowColour(ColourValue(0.5, 0.5, 0.5)); 
    144     //mSceneMgr->setShowDebugShadows(true); 
    145  
     144    
    146145 
    147146        //-- terrain content setup 
Note: See TracChangeset for help on using the changeset viewer.