Changeset 3284 for GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp
- Timestamp:
- 01/18/09 02:25:26 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp
r3282 r3284 154 154 static int globalVisibleId = 0; 155 155 156 PerfTimer applicationTimer; 157 158 float shotRays = .0f; 156 159 157 160 … … 927 930 tr = new CHCPlusPlusTraverser(); 928 931 break; 929 case RenderTraverser::CULL_COLLECTOR:930 tr = new PvsCollectionRenderer();931 break;932 //case RenderTraverser::CULL_COLLECTOR: 933 // tr = new PvsCollectionRenderer(); 934 // break; 932 935 default: 933 936 tr = new FrustumCullingTraverser(); … … 1229 1232 if (1 && usePvs) 1230 1233 { 1231 if (!viewCellsTree) LoadVisibilitySolution(); 1234 if (!viewCellsTree) 1235 { 1236 applicationTimer.Start(); 1237 LoadVisibilitySolution(); 1238 } 1232 1239 1233 1240 if (viewCellsTree) LoadPvs(); … … 1313 1320 else 1314 1321 { 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 1321 1325 // actually render the scene geometry using the specified algorithm 1322 1326 traverser->RenderScene(); … … 2372 2376 , "CHC" 2373 2377 , "CHC ++" 2374 , "Collector"2378 // , "Collector" 2375 2379 }; 2376 2380 2381 #if 0 2377 2382 if (!showAlgorithmTime) 2378 2383 { … … 2388 2393 myfont.DrawString(msg[7], 1.3f, 690.0f, 760.0f);//, top_color, bottom_color); 2389 2394 } 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 2394 2400 } 2395 2401 … … 2428 2434 RenderShadowMap(newFar); 2429 2435 } 2436 2430 2437 // initialize deferred rendering 2431 2438 InitDeferredRendering(); … … 2651 2658 viewCell = viewCellsTree->GetViewCell(camera->GetPosition()); 2652 2659 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; 2654 2665 2655 2666 SceneEntity::SetCurrentVisibleId(globalVisibleId); … … 2657 2668 for (int i = 0; i < viewCell->mPvs.GetSize(); ++ i) 2658 2669 { 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; 2666 2680 ++ globalVisibleId; 2667 2681 } … … 2701 2715 void LoadPompeiiFloor() 2702 2716 { 2703 AxisAlignedBox3 pompeiiBox = SceneEntity::ComputeBoundingBox(staticObjects); 2717 AxisAlignedBox3 pompeiiBox = 2718 SceneEntity::ComputeBoundingBox(staticObjects); 2704 2719 2705 2720 // todo: dispose texture … … 2722 2737 depthPass->SetLightingEnabled(false); 2723 2738 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"); 2726 2743 2727 2744 deferred->SetFragmentProgram(defaultFragmentTexProgramMrt);
Note: See TracChangeset
for help on using the changeset viewer.