Ignore:
Timestamp:
01/05/09 16:48:21 (15 years ago)
Author:
mattausch
Message:

worked on obj loader
played around with ssao sampling

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  
    14261426{ 
    14271427        mSampleIntensity = sampleIntensity; 
     1428        mRegenerateSamples = true; 
    14281429} 
    14291430 
     
    14321433{ 
    14331434        mKernelRadius = kernelRadius; 
     1435        mRegenerateSamples = true; 
    14341436} 
    14351437 
     
    14381440{ 
    14391441        mSsaoFilterRadius = ssaoFilterRadius; 
     1442        mRegenerateSamples = true; 
    14401443} 
    14411444 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.cpp

    r3235 r3247  
    172172 
    173173QuadraticDiscSampleGenerator2D::QuadraticDiscSampleGenerator2D(int numSamples, float radius): 
    174 PoissonDiscSampleGenerator2D(numSamples, radius) 
     174//PoissonDiscSampleGenerator2D(numSamples, radius) 
     175RandomSampleGenerator2D(numSamples, radius) 
    175176{} 
    176177 
     
    193194#else 
    194195 
    195         PoissonDiscSampleGenerator2D::Generate(samples); 
     196        //PoissonDiscSampleGenerator2D::Generate(samples); 
     197        RandomSampleGenerator2D::Generate(samples); 
    196198 
    197199        Sample2 *s = (Sample2 *)samples; 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.h

    r3230 r3247  
    7878        with the distance 
    7979*/ 
    80 class QuadraticDiscSampleGenerator2D: public PoissonDiscSampleGenerator2D 
     80//class QuadraticDiscSampleGenerator2D: public PoissonDiscSampleGenerator2D 
     81class QuadraticDiscSampleGenerator2D: public RandomSampleGenerator2D 
    8182{ 
    8283public: 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp

    r3246 r3247  
    142142ViewCell *viewCell = NULL; 
    143143 
     144bool useSkylightForIllum = true; 
     145 
    144146static int globalVisibleId = 0; 
    145147 
     
    456458                env.GetBoolParam(string("usePvs"), usePvs); 
    457459 
     460                env.GetBoolParam(string("useSkylightForIllum"), useSkylightForIllum); 
     461 
    458462                //env.GetStringParam(string("modelPath"), model_path); 
    459463                //env.GetIntParam(string("numSssaoSamples"), numSsaoSamples); 
     
    488492                cout << "use PVS: " << usePvs << endl; 
    489493                cout << "visibilitySolution: " << visibilitySolution << endl; 
    490                  
     494                cout << "useSkylightForIllum" << useSkylightForIllum << endl; 
    491495 
    492496                //cout << "model path: " << model_path << endl; 
     
    571575 
    572576        //LoadModel("fisch.dem", dynamicObjects); 
    573         //LoadModel("hbuddha.dem", dynamicObjects); 
    574577 
    575578        //LoadModel("venusm.dem", dynamicObjects); 
     
    577580        //LoadModel("toyplane2.dem", dynamicObjects); 
    578581        //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         
    580616        resourceManager->mUseNormalMapping = false; 
    581617        resourceManager->mUseSpecialColors = false; 
    582618 
    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         */ 
    611619 
    612620/*      int cityEntities = LoadModel("vienna_full_hp.dem", dynamicObjects); 
     
    942950        Vector3 sunDiffuse; 
    943951 
    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        } 
    966975 
    967976        glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); 
     
    10881097#endif 
    10891098 
    1090  
     1099/* 
    10911100                ///////////////////////// 
    10921101                //-- update animations 
     
    10961105 
    10971106                Matrix4x4 rotMatrix = RotationZMatrix(rotAngle); 
    1098                 dynamicObjects[1]->GetTransform()->MultMatrix(rotMatrix); 
     1107                dynamicObjects[2]->GetTransform()->MultMatrix(rotMatrix); 
    10991108 
    11001109                motionPath->Move(0.01f); 
     1110                */ 
    11011111        } 
    11021112 
     
    11891199        { 
    11901200                if (!viewCellsTree) LoadVisibilitySolution(); 
    1191                 LoadPvs();       
     1201 
     1202                LoadPvs(); 
    11921203        } 
    11931204 
     
    13091320                FrameBufferObject::Release(); 
    13101321 
    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 
    13141332                DeferredRenderer::SHADING_METHOD shadingMethod; 
    13151333 
     
    13311349                deferredShader->SetShadingMethod(shadingMethod); 
    13321350                deferredShader->SetSamplingMethod(samplingMethod); 
    1333                 deferredShader->SetKernelRadius(ssaoKernelRadius); 
    1334                 deferredShader->SetSampleIntensity(ssaoSampleIntensity); 
    1335                 deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 
     1351                 
    13361352                deferredShader->SetUseTemporalCoherence(useTemporalCoherence); 
    13371353                //deferredShader->SetSortSamples(sortSamples); 
     
    14751491                ssaoKernelRadius *= 0.8f; 
    14761492                cout << "new ssao kernel radius: " << ssaoKernelRadius << endl; 
     1493                if (deferredShader) deferredShader->SetKernelRadius(ssaoKernelRadius); 
    14771494                break; 
    14781495        case '0': 
    14791496                ssaoKernelRadius *= 1.0f / 0.8f; 
     1497                if (deferredShader) deferredShader->SetKernelRadius(ssaoKernelRadius); 
    14801498                cout << "new ssao kernel radius: " << ssaoKernelRadius << endl; 
    14811499                break; 
    14821500        case 'n': 
    14831501                ssaoSampleIntensity *= 0.9f; 
     1502                if (deferredShader) deferredShader->SetSampleIntensity(ssaoSampleIntensity); 
    14841503                cout << "new ssao sample intensity: " << ssaoSampleIntensity << endl; 
    14851504                break; 
    14861505        case 'N': 
    14871506                ssaoSampleIntensity *= 1.0f / 0.9f; 
     1507                if (deferredShader) deferredShader->SetSampleIntensity(ssaoSampleIntensity); 
    14881508                cout << "new ssao sample intensity: " << ssaoSampleIntensity << endl; 
    14891509                break; 
    14901510        case 'o': 
    14911511                ssaoFilterRadius *= 0.9f; 
     1512                if (deferredShader) deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 
    14921513                cout << "new ssao filter radius: " << ssaoFilterRadius << endl; 
    14931514                break; 
    14941515        case 'O': 
    14951516                ssaoFilterRadius *= 1.0f / 0.9f; 
     1517                if (deferredShader) deferredShader->SetSsaoFilterRadius(ssaoFilterRadius); 
    14961518                cout << "new ssao filter radius: " << ssaoFilterRadius << endl; 
    14971519                break; 
     
    25872609 
    25882610        viewCellsTree = visLoader.Load(vis_filename, bvh); 
     2611 
     2612        if (!viewCellsTree) 
     2613        { 
     2614                cerr << "loading pvs failed" << endl; 
     2615                CleanUp(); 
     2616                exit(0); 
     2617        } 
    25892618} 
    25902619 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaderenv.h

    r3246 r3247  
    66//-- ssao + gi parameters 
    77 
    8 //#define NUM_SAMPLES 8 
     8#define NUM_SAMPLES 8 
    99//#define NUM_SAMPLES 16 
    10 #define NUM_SAMPLES 24 
     10//#define NUM_SAMPLES 24 
    1111//#define NUM_SAMPLES 48 
    1212 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/combineSsao.cg

    r3246 r3247  
    162162 
    163163                // 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); 
    165165        } 
    166166 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/ssao.cg

    r3231 r3247  
    2222}; 
    2323 
    24  
     24// this function is inspired from the paper of shamulgaan in order 
     25// to get a physical expression for the occlusion culling 
    2526inline float occlusionPower(float radius, float dist) 
    2627{ 
Note: See TracChangeset for help on using the changeset viewer.