Ignore:
Timestamp:
01/04/09 16:06:56 (15 years ago)
Author:
mattausch
Message:

pvs seems to work now

File:
1 edited

Legend:

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

    r3244 r3245  
    141141ViewCellsTree *viewCellsTree = NULL; 
    142142 
     143static int globalVisibleId = 0; 
     144 
     145ViewCell *viewCell = NULL; 
     146 
    143147 
    144148/// the technique used for rendering 
     
    655659        SceneEntityConverter conv; 
    656660 
    657         // toto clean up material 
     661 
     662        ////////////////// 
     663        //-- occlusion query for sun 
     664 
     665        // todo: clean up material 
    658666        Material *mat = resourceManager->CreateMaterial(); 
    659667 
     
    662670 
    663671        sunBox = conv.ConvertBox(sbox, mat, trafo); 
    664          
    665672        resourceManager->AddSceneEntity(sunBox); 
    666673 
     
    12531260        else 
    12541261        { 
     1262                RenderPvs(); 
     1263 
    12551264                // actually render the scene geometry using the specified algorithm 
    1256                 //traverser->RenderScene(); 
    1257  
    1258                 RenderPvs(); 
     1265                traverser->RenderScene(); 
    12591266        } 
    12601267 
     
    19541961{ 
    19551962        visualization->SetFrameId(traverser->GetCurrentFrameId()); 
    1956          
     1963        visualization->SetViewCell(viewCell); 
     1964 
    19571965        Begin2D(); 
    19581966        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
     
    25182526 
    25192527 
     2528static Technique GetVizTechnique() 
     2529{ 
     2530        Technique tech; 
     2531        tech.Init(); 
     2532 
     2533        //tech.SetLightingEnabled(false); 
     2534        //tech.SetDepthWriteEnabled(false); 
     2535 
     2536        tech.SetEmmisive(RgbaColor(1.0f, 1.0f, 1.0f, 1.0f)); 
     2537        tech.SetDiffuse(RgbaColor(1.0f, 1.0f, 1.0f, 1.0f)); 
     2538        tech.SetAmbient(RgbaColor(1.0f, 1.0f, 1.0f, 1.0f)); 
     2539 
     2540        return tech; 
     2541} 
     2542 
     2543 
    25202544void RenderPvs() 
    25212545{ 
    2522         ViewCell *vc = viewCellsTree->GetViewCell(camera->GetPosition()); 
    2523  
    2524         for (int i = 0; i < vc->mPvs.Size(); ++ i) 
    2525         { 
    2526                 SceneEntity *ent = vc->mPvs.GetEntry(i); 
    2527                 ent->Render(&renderState); 
    2528         } 
    2529 } 
     2546        viewCell = viewCellsTree->GetViewCell(camera->GetPosition()); 
     2547 
     2548        int numTriangles = 0; 
     2549 
     2550        for (int i = 0; i < viewCell->mPvs.Size(); ++ i) 
     2551        { 
     2552                SceneEntity *ent = viewCell->mPvs.GetEntry(i); 
     2553                //ent->Render(&renderState); 
     2554                ent->SetVisibleId(globalVisibleId); 
     2555 
     2556                numTriangles += ent->CountNumTriangles(); 
     2557        } 
     2558 
     2559        SceneEntity::SetGlobalVisibleId(globalVisibleId ++); 
     2560 
     2561        // render current view cell 
     2562        static Technique vcTechnique = GetVizTechnique(); 
     2563 
     2564        vcTechnique.Render(&renderState); 
     2565        Visualization::RenderBoxForViz(viewCell->GetBox()); 
     2566 
     2567        visualization->SetViewCell(viewCell); 
     2568 
     2569        //cout << "pvs: " << vc->mPvs.Size() << " triangles: " << numTriangles << endl; 
     2570} 
Note: See TracChangeset for help on using the changeset viewer.