Ignore:
Timestamp:
01/18/09 02:25:26 (15 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r3282 r3284  
    154154static int globalVisibleId = 0; 
    155155 
     156PerfTimer applicationTimer; 
     157 
     158float shotRays = .0f; 
    156159 
    157160 
     
    927930                tr = new CHCPlusPlusTraverser(); 
    928931                break; 
    929         case RenderTraverser::CULL_COLLECTOR: 
    930                 tr = new PvsCollectionRenderer(); 
    931                 break; 
     932        //case RenderTraverser::CULL_COLLECTOR: 
     933        //      tr = new PvsCollectionRenderer(); 
     934        //      break; 
    932935        default: 
    933936                tr = new FrustumCullingTraverser(); 
     
    12291232        if (1 && usePvs) 
    12301233        { 
    1231                 if (!viewCellsTree)     LoadVisibilitySolution(); 
     1234                if (!viewCellsTree)      
     1235                { 
     1236                        applicationTimer.Start(); 
     1237                        LoadVisibilitySolution(); 
     1238                } 
    12321239 
    12331240                if (viewCellsTree) LoadPvs(); 
     
    13131320        else 
    13141321        { 
    1315                 if (traverser->GetType() == RenderTraverser::CULL_COLLECTOR) 
    1316                         ((PvsCollectionRenderer *)traverser)->SetViewCell(usePvs ? viewCell : NULL); 
    1317  
    1318                 //for (size_t i = 0; i < staticObjects.size(); ++ i) 
    1319                 //      staticObjects[i]->Render(&renderState); 
    1320                  
     1322                //if (traverser->GetType() == RenderTraverser::CULL_COLLECTOR) 
     1323                //      ((PvsCollectionRenderer *)traverser)->SetViewCell(usePvs ? viewCell : NULL); 
     1324 
    13211325                // actually render the scene geometry using the specified algorithm 
    13221326                traverser->RenderScene(); 
     
    23722376                        , "CHC" 
    23732377                        , "CHC ++" 
    2374                         , "Collector" 
     2378//                      , "Collector" 
    23752379                }; 
    2376                  
     2380         
     2381#if 0 
    23772382                if (!showAlgorithmTime) 
    23782383                { 
     
    23882393                        myfont.DrawString(msg[7], 1.3f, 690.0f, 760.0f);//, top_color, bottom_color); 
    23892394                } 
    2390  
    2391                  
    2392                 //sprintf(msg[8], "algorithm time: %6.1f ms", rTime); 
    2393                 //myfont.DrawString(msg[8], 720.0f, 730.0f);             
     2395#else 
     2396                int mrays = (int)shotRays / 1000000; 
     2397                sprintf(msg[7], "%s:  %04d M rays", alg_str[renderMode], mrays);         
     2398                myfont.DrawString(msg[7], 1.3f, 690.0f, 760.0f);//, top_color, bottom_color); 
     2399#endif 
    23942400        } 
    23952401 
     
    24282434                        RenderShadowMap(newFar); 
    24292435                } 
     2436 
    24302437                // initialize deferred rendering 
    24312438                InitDeferredRendering(); 
     
    26512658        viewCell = viewCellsTree->GetViewCell(camera->GetPosition()); 
    26522659 
    2653         int numTriangles = 0; 
     2660        // assume 60 FPS and 1M rays per second 
     2661        const float scale = 1e6f / 60.0f; 
     2662 
     2663        //const float elapsedAlgorithmTime = applicationTimer.Elapsedms(false); 
     2664        //int numTriangles = 0; 
    26542665 
    26552666        SceneEntity::SetCurrentVisibleId(globalVisibleId); 
     
    26572668        for (int i = 0; i < viewCell->mPvs.GetSize(); ++ i) 
    26582669        { 
    2659                 SceneEntity *ent = viewCell->mPvs.GetEntry(i); 
    2660                 ent->SetVisibleId(globalVisibleId); 
    2661                 //ent->Render(&renderState); 
    2662  
    2663                 numTriangles += ent->CountNumTriangles(); 
    2664         } 
    2665  
     2670                PvsEntry entry = viewCell->mPvs.GetEntry(i); 
     2671 
     2672                if (1)//(entry.mTimeStamp < 0.0f) || (entry.mTimeStamp <= shotRays)) 
     2673                { 
     2674                        entry.mEntity->SetVisibleId(globalVisibleId); 
     2675                        //numTriangles += entry.mEntity->CountNumTriangles(); 
     2676                } 
     2677        } 
     2678 
     2679        shotRays += scale; 
    26662680        ++ globalVisibleId; 
    26672681} 
     
    27012715void LoadPompeiiFloor() 
    27022716{ 
    2703         AxisAlignedBox3 pompeiiBox = SceneEntity::ComputeBoundingBox(staticObjects); 
     2717        AxisAlignedBox3 pompeiiBox =  
     2718                SceneEntity::ComputeBoundingBox(staticObjects); 
    27042719 
    27052720        // todo: dispose texture 
     
    27222737        depthPass->SetLightingEnabled(false); 
    27232738 
    2724         ShaderProgram *defaultFragmentTexProgramMrt = ShaderManager::GetSingleton()->GetShaderProgram("defaultFragmentTexMrt"); 
    2725         ShaderProgram *defaultVertexProgramMrt = ShaderManager::GetSingleton()->GetShaderProgram("defaultVertexMrt"); 
     2739        ShaderProgram *defaultFragmentTexProgramMrt = 
     2740                ShaderManager::GetSingleton()->GetShaderProgram("defaultFragmentTexMrt"); 
     2741        ShaderProgram *defaultVertexProgramMrt =  
     2742                ShaderManager::GetSingleton()->GetShaderProgram("defaultVertexMrt"); 
    27262743 
    27272744        deferred->SetFragmentProgram(defaultFragmentTexProgramMrt); 
Note: See TracChangeset for help on using the changeset viewer.