Changeset 3247 for GTP/trunk/App/Demos/Vis/FriendlyCulling/src
- Timestamp:
- 01/05/09 16:48:21 (15 years ago)
- Location:
- GTP/trunk/App/Demos/Vis/FriendlyCulling/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/DeferredRenderer.cpp
r3246 r3247 1426 1426 { 1427 1427 mSampleIntensity = sampleIntensity; 1428 mRegenerateSamples = true; 1428 1429 } 1429 1430 … … 1432 1433 { 1433 1434 mKernelRadius = kernelRadius; 1435 mRegenerateSamples = true; 1434 1436 } 1435 1437 … … 1438 1440 { 1439 1441 mSsaoFilterRadius = ssaoFilterRadius; 1442 mRegenerateSamples = true; 1440 1443 } 1441 1444 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.cpp
r3235 r3247 172 172 173 173 QuadraticDiscSampleGenerator2D::QuadraticDiscSampleGenerator2D(int numSamples, float radius): 174 PoissonDiscSampleGenerator2D(numSamples, radius) 174 //PoissonDiscSampleGenerator2D(numSamples, radius) 175 RandomSampleGenerator2D(numSamples, radius) 175 176 {} 176 177 … … 193 194 #else 194 195 195 PoissonDiscSampleGenerator2D::Generate(samples); 196 //PoissonDiscSampleGenerator2D::Generate(samples); 197 RandomSampleGenerator2D::Generate(samples); 196 198 197 199 Sample2 *s = (Sample2 *)samples; -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.h
r3230 r3247 78 78 with the distance 79 79 */ 80 class QuadraticDiscSampleGenerator2D: public PoissonDiscSampleGenerator2D 80 //class QuadraticDiscSampleGenerator2D: public PoissonDiscSampleGenerator2D 81 class QuadraticDiscSampleGenerator2D: public RandomSampleGenerator2D 81 82 { 82 83 public: -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp
r3246 r3247 142 142 ViewCell *viewCell = NULL; 143 143 144 bool useSkylightForIllum = true; 145 144 146 static int globalVisibleId = 0; 145 147 … … 456 458 env.GetBoolParam(string("usePvs"), usePvs); 457 459 460 env.GetBoolParam(string("useSkylightForIllum"), useSkylightForIllum); 461 458 462 //env.GetStringParam(string("modelPath"), model_path); 459 463 //env.GetIntParam(string("numSssaoSamples"), numSsaoSamples); … … 488 492 cout << "use PVS: " << usePvs << endl; 489 493 cout << "visibilitySolution: " << visibilitySolution << endl; 490 494 cout << "useSkylightForIllum" << useSkylightForIllum << endl; 491 495 492 496 //cout << "model path: " << model_path << endl; … … 571 575 572 576 //LoadModel("fisch.dem", dynamicObjects); 573 //LoadModel("hbuddha.dem", dynamicObjects);574 577 575 578 //LoadModel("venusm.dem", dynamicObjects); … … 577 580 //LoadModel("toyplane2.dem", dynamicObjects); 578 581 //LoadModel("elephal.dem", dynamicObjects); 579 582 LoadModel("sibenik.dem", dynamicObjects); 583 584 #if 1 585 LoadModel("hbuddha.dem", dynamicObjects); 586 587 buddha = dynamicObjects.back(); 588 589 const Vector3 sceneCenter(470.398f, 240.364f, 181.7f); 590 //const Vector3 sceneCenter(470.398f, 240.364f, 180.3); 591 592 Matrix4x4 transl = TranslationMatrix(sceneCenter); 593 buddha->GetTransform()->SetMatrix(transl); 594 595 for (int i = 0; i < 10; ++ i) 596 { 597 SceneEntity *ent = new SceneEntity(*buddha); 598 resourceManager->AddSceneEntity(ent); 599 600 Vector3 offs = Vector3::ZERO(); 601 602 offs.x = RandomValue(.0f, 50.0f); 603 offs.y = RandomValue(.0f, 50.0f); 604 605 Vector3 newPos = sceneCenter + offs; 606 607 transl = TranslationMatrix(newPos); 608 Transform3 *transform = resourceManager->CreateTransform(transl); 609 610 ent->SetTransform(transform); 611 dynamicObjects.push_back(ent); 612 } 613 #endif 614 615 580 616 resourceManager->mUseNormalMapping = false; 581 617 resourceManager->mUseSpecialColors = false; 582 618 583 /*584 buddha = dynamicObjects.back();585 586 const Vector3 sceneCenter(470.398f, 240.364f, 181.7f);587 //const Vector3 sceneCenter(470.398f, 240.364f, 180.3);588 589 Matrix4x4 transl = TranslationMatrix(sceneCenter);590 buddha->GetTransform()->SetMatrix(transl);591 592 for (int i = 0; i < 10; ++ i)593 {594 SceneEntity *ent = new SceneEntity(*buddha);595 resourceManager->AddSceneEntity(ent);596 597 Vector3 offs = Vector3::ZERO();598 599 offs.x = RandomValue(.0f, 50.0f);600 offs.y = RandomValue(.0f, 50.0f);601 602 Vector3 newPos = sceneCenter + offs;603 604 transl = TranslationMatrix(newPos);605 Transform3 *transform = resourceManager->CreateTransform(transl);606 607 ent->SetTransform(transform);608 dynamicObjects.push_back(ent);609 }610 */611 619 612 620 /* int cityEntities = LoadModel("vienna_full_hp.dem", dynamicObjects); … … 942 950 Vector3 sunDiffuse; 943 951 944 #if 1 945 preetham->ComputeSunColor(lightDir, sunAmbient, sunDiffuse, !useHDRValues); 946 947 ambient[0] = sunAmbient.x; 948 ambient[1] = sunAmbient.y; 949 ambient[2] = sunAmbient.z; 950 951 diffuse[0] = sunDiffuse.x; 952 diffuse[1] = sunDiffuse.y; 953 diffuse[2] = sunDiffuse.z; 954 955 #else 956 957 ambient[0] = .2f; 958 ambient[1] = .2f; 959 ambient[2] = .2f; 960 961 diffuse[0] = 1.0f; 962 diffuse[1] = 1.0f; 963 diffuse[2] = 1.0f; 964 965 #endif 952 if (useSkylightForIllum) 953 { 954 preetham->ComputeSunColor(lightDir, sunAmbient, sunDiffuse, !useHDRValues); 955 956 ambient[0] = sunAmbient.x; 957 ambient[1] = sunAmbient.y; 958 ambient[2] = sunAmbient.z; 959 960 diffuse[0] = sunDiffuse.x; 961 diffuse[1] = sunDiffuse.y; 962 diffuse[2] = sunDiffuse.z; 963 } 964 else 965 { 966 967 ambient[0] = .2f; 968 ambient[1] = .2f; 969 ambient[2] = .2f; 970 971 diffuse[0] = 1.0f; 972 diffuse[1] = 1.0f; 973 diffuse[2] = 1.0f; 974 } 966 975 967 976 glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); … … 1088 1097 #endif 1089 1098 1090 1099 /* 1091 1100 ///////////////////////// 1092 1101 //-- update animations … … 1096 1105 1097 1106 Matrix4x4 rotMatrix = RotationZMatrix(rotAngle); 1098 dynamicObjects[ 1]->GetTransform()->MultMatrix(rotMatrix);1107 dynamicObjects[2]->GetTransform()->MultMatrix(rotMatrix); 1099 1108 1100 1109 motionPath->Move(0.01f); 1110 */ 1101 1111 } 1102 1112 … … 1189 1199 { 1190 1200 if (!viewCellsTree) LoadVisibilitySolution(); 1191 LoadPvs(); 1201 1202 LoadPvs(); 1192 1203 } 1193 1204 … … 1309 1320 FrameBufferObject::Release(); 1310 1321 1311 if (!deferredShader) deferredShader = 1312 new DeferredRenderer(texWidth, texHeight, camera, ssaoUseFullResolution); 1313 1322 if (!deferredShader) 1323 { 1324 deferredShader = 1325 new DeferredRenderer(texWidth, texHeight, camera, ssaoUseFullResolution); 1326 1327 deferredShader->SetKernelRadius(ssaoKernelRadius); 1328 deferredShader->SetSampleIntensity(ssaoSampleIntensity); 1329 deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 1330 } 1331 1314 1332 DeferredRenderer::SHADING_METHOD shadingMethod; 1315 1333 … … 1331 1349 deferredShader->SetShadingMethod(shadingMethod); 1332 1350 deferredShader->SetSamplingMethod(samplingMethod); 1333 deferredShader->SetKernelRadius(ssaoKernelRadius); 1334 deferredShader->SetSampleIntensity(ssaoSampleIntensity); 1335 deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 1351 1336 1352 deferredShader->SetUseTemporalCoherence(useTemporalCoherence); 1337 1353 //deferredShader->SetSortSamples(sortSamples); … … 1475 1491 ssaoKernelRadius *= 0.8f; 1476 1492 cout << "new ssao kernel radius: " << ssaoKernelRadius << endl; 1493 if (deferredShader) deferredShader->SetKernelRadius(ssaoKernelRadius); 1477 1494 break; 1478 1495 case '0': 1479 1496 ssaoKernelRadius *= 1.0f / 0.8f; 1497 if (deferredShader) deferredShader->SetKernelRadius(ssaoKernelRadius); 1480 1498 cout << "new ssao kernel radius: " << ssaoKernelRadius << endl; 1481 1499 break; 1482 1500 case 'n': 1483 1501 ssaoSampleIntensity *= 0.9f; 1502 if (deferredShader) deferredShader->SetSampleIntensity(ssaoSampleIntensity); 1484 1503 cout << "new ssao sample intensity: " << ssaoSampleIntensity << endl; 1485 1504 break; 1486 1505 case 'N': 1487 1506 ssaoSampleIntensity *= 1.0f / 0.9f; 1507 if (deferredShader) deferredShader->SetSampleIntensity(ssaoSampleIntensity); 1488 1508 cout << "new ssao sample intensity: " << ssaoSampleIntensity << endl; 1489 1509 break; 1490 1510 case 'o': 1491 1511 ssaoFilterRadius *= 0.9f; 1512 if (deferredShader) deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 1492 1513 cout << "new ssao filter radius: " << ssaoFilterRadius << endl; 1493 1514 break; 1494 1515 case 'O': 1495 1516 ssaoFilterRadius *= 1.0f / 0.9f; 1517 if (deferredShader) deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 1496 1518 cout << "new ssao filter radius: " << ssaoFilterRadius << endl; 1497 1519 break; … … 2587 2609 2588 2610 viewCellsTree = visLoader.Load(vis_filename, bvh); 2611 2612 if (!viewCellsTree) 2613 { 2614 cerr << "loading pvs failed" << endl; 2615 CleanUp(); 2616 exit(0); 2617 } 2589 2618 } 2590 2619 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaderenv.h
r3246 r3247 6 6 //-- ssao + gi parameters 7 7 8 //#define NUM_SAMPLES 88 #define NUM_SAMPLES 8 9 9 //#define NUM_SAMPLES 16 10 #define NUM_SAMPLES 2410 //#define NUM_SAMPLES 24 11 11 //#define NUM_SAMPLES 48 12 12 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/combineSsao.cg
r3246 r3247 162 162 163 163 // the filtered ssao value 164 ao.x = DiscontinuityFilter(IN.texCoord, ao, col, ssaoTex, normalsTex, colorsTex, filterOffs, scale, bl, br, tl, tr);164 //ao.x = DiscontinuityFilter(IN.texCoord, ao, col, ssaoTex, normalsTex, colorsTex, filterOffs, scale, bl, br, tl, tr); 165 165 } 166 166 -
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/ssao.cg
r3231 r3247 22 22 }; 23 23 24 24 // this function is inspired from the paper of shamulgaan in order 25 // to get a physical expression for the occlusion culling 25 26 inline float occlusionPower(float radius, float dist) 26 27 {
Note: See TracChangeset
for help on using the changeset viewer.