Changeset 2857


Ignore:
Timestamp:
08/20/08 16:30:28 (16 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/App/Demos/Vis/FriendlyCulling
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/FriendlyCulling.vcproj

    r2854 r2857  
    216216                        </File> 
    217217                        <File 
     218                                RelativePath=".\src\DeferredShader.cpp" 
     219                                > 
     220                        </File> 
     221                        <File 
     222                                RelativePath=".\src\DeferredShader.h" 
     223                                > 
     224                        </File> 
     225                        <File 
    218226                                RelativePath=".\src\Environment.cpp" 
    219227                                > 
     
    221229                        <File 
    222230                                RelativePath=".\src\Environment.h" 
     231                                > 
     232                        </File> 
     233                        <File 
     234                                RelativePath=".\src\FrameBufferObject.cpp" 
     235                                > 
     236                        </File> 
     237                        <File 
     238                                RelativePath=".\src\FrameBufferObject.h" 
    223239                                > 
    224240                        </File> 
     
    515531                                </File> 
    516532                                <File 
    517                                         RelativePath=".\src\FrameBufferObject.h" 
    518                                         > 
    519                                 </File> 
    520                                 <File 
    521533                                        RelativePath=".\src\Geometry.h" 
    522534                                        > 
     
    618630                                <File 
    619631                                        RelativePath=".\src\chcdemo.cpp" 
    620                                         > 
    621                                 </File> 
    622                                 <File 
    623                                         RelativePath=".\src\FrameBufferObject.cpp" 
    624632                                        > 
    625633                                </File> 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/FrameBufferObject.cpp

    r2856 r2857  
    6666        switch (filterType) 
    6767        { 
    68         case WRAP_NEAREST: 
     68        case FILTER_NEAREST: 
    6969                filterParam = GL_NEAREST; break; 
    70         case WRAP_LINEAR: 
     70        case FILTER_LINEAR: 
    7171                filterParam = GL_LINEAR; break; 
    72         case WRAP_MIPMAP_LINEAR:  
     72        case FILTER_MIPMAP_LINEAR:  
    7373                filterParam = GL_LINEAR_MIPMAP_LINEAR; break; 
    7474        } 
     
    7979        switch (wrapType) 
    8080        { 
    81         case GL_REPEAT: 
    82                 wrapParam = GL_NEAREST; break; 
    83         case GL_CLAMP_TO_EDGE: 
    84                 wrapParam = GL_LINEAR; break; 
     81        case WRAP_REPEAT: 
     82                wrapParam = GL_REPEAT; break; 
     83        case WRAP_CLAMP_TO_EDGE: 
     84                wrapParam = GL_CLAMP_TO_EDGE; break; 
    8585        } 
    8686 
     
    9191        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapParam); 
    9292 
     93        // print status 
    9394        PrintFBOStatus(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)); 
    9495} 
     
    124125                glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, depthFormat, mWidth, mHeight); 
    125126                glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, mDepthId); 
     127        } 
    126128 
    127                 PrintFBOStatus(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)); 
    128         } 
     129        // print status 
     130        PrintFBOStatus(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)); 
    129131} 
    130132 
    131133 
     134ColorBufferObject *FrameBufferObject::AddColorBuffer(ColorBufferObject::FORMAT col,  
     135                                                                                                         ColorBufferObject::WRAP_TYPE wrapType,  
     136                                                                                                         ColorBufferObject::FILTER_TYPE filterType,  
     137                                                                                                         bool useMipMap,  
     138                                                                                                         bool useMultiSampling) 
     139{ 
     140        ColorBufferObject *colorBuf =  
     141                new ColorBufferObject(mWidth, mHeight, col, wrapType, filterType, useMipMap, useMultiSampling); 
     142        mColorBuffers.push_back(colorBuf); 
     143 
     144        return colorBuf; 
     145} 
     146 
    132147} // namespace 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/FrameBufferObject.h

    r2856 r2857  
    1717 
    1818        enum FORMAT { BUFFER_UBYTE, BUFFER_FLOAT_16, BUFFER_FLOAT_32 }; 
    19         enum FILTER_TYPE { GL_REPEAT, GL_CLAMP_TO_EDGE }; 
    20         enum WRAP_TYPE { WRAP_NEAREST, WRAP_LINEAR, WRAP_MIPMAP_LINEAR }; 
     19        enum WRAP_TYPE{ WRAP_REPEAT, WRAP_CLAMP_TO_EDGE }; 
     20        enum FILTER_TYPE { FILTER_NEAREST, FILTER_LINEAR, FILTER_MIPMAP_LINEAR }; 
    2121 
    2222        ColorBufferObject(int w, int h,  
     
    4848        */ 
    4949        ColorBufferObject *AddColorBuffer(ColorBufferObject::FORMAT col,  
    50                                               int wrapType,  
    51                                                                           int filterType,  
     50                                              ColorBufferObject::WRAP_TYPE wrapType,  
     51                                                                          ColorBufferObject::FILTER_TYPE filterType,  
    5252                                                                          bool useMipMap,  
    5353                                                                          bool useMultiSampling); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp

    r2856 r2857  
    3232#include "Transform3.h" 
    3333#include "SampleGenerator.h" 
     34#include "FrameBufferObject.h" 
    3435 
    3536 
     
    201202static Matrix4x4 matProjectionView = IdentityMatrix(); 
    202203 
     204FrameBufferObject *myfbo = NULL; 
     205 
    203206 
    204207// function forward declarations 
     
    466469        CreateNoiseTex2D(); 
    467470 
    468         // init render traverser 
     471        // initialize the render traverser 
    469472        ResetTraverser(); 
    470473 
     
    476479        frameTimer.Start(); 
    477480 
    478  
     481        // the rendering loop 
    479482        glutMainLoop(); 
    480483 
     
    663666void InitFBO() 
    664667{ 
     668        // this fbo basicly stores the scene information we get from standard rendering of a frame 
     669        // we store colors, normals, positions (for the ssao) 
     670        myfbo = new FrameBufferObject(texWidth, texHeight, true, FrameBufferObject::DEPTH_24); 
     671 
     672 
     673        ColorBufferObject *diffuseBuffer =  
     674                myfbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32,  
     675                                      ColorBufferObject::WRAP_CLAMP_TO_EDGE,  
     676                                                          ColorBufferObject::FILTER_LINEAR,  
     677                                                          false, false); 
     678 
     679        ColorBufferObject *mypositionBuffer =  
     680                myfbo->AddColorBuffer(ColorBufferObject::BUFFER_FLOAT_32,  
     681                                      ColorBufferObject::WRAP_CLAMP_TO_EDGE,  
     682                                                          ColorBufferObject::FILTER_NEAREST,  
     683                                                          false, false); 
     684 
     685 
     686        ColorBufferObject *mynormalsBuffer =  
     687                myfbo->AddColorBuffer(ColorBufferObject::BUFFER_UBYTE,  
     688                                      ColorBufferObject::WRAP_CLAMP_TO_EDGE,  
     689                                                          ColorBufferObject::FILTER_NEAREST,  
     690                                                          false, false); 
     691 
     692         
     693 
     694 
     695        //////////////////////// 
     696 
    665697        glGenFramebuffersEXT(1, &fbo); 
    666698        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo); 
     
    673705        glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, colorsBuffer); 
    674706         
     707#if 1 
    675708        glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA32F_ARB, texWidth, texHeight); 
    676  
     709#else 
    677710        int samples = 8; 
    678         //glEnable(GL_MULTISAMPLE_ARB); 
    679         //glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_RGBA8, texWidth, texHeight); 
     711        glEnable(GL_MULTISAMPLE_ARB); 
     712        glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples, GL_RGBA8, texWidth, texHeight); 
     713#endif 
     714 
    680715        glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, colorsBuffer); 
    681716         
     
    11111146 
    11121147 
     1148// the main rendering loop 
    11131149void Display()  
    11141150{        
     
    11661202                glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 
    11671203 
    1168                 state.SetRenderType(RenderState::DEPTH_PASS); 
    1169                 glDisable(GL_LIGHTING); 
    1170  
    11711204                cgGLDisableProfile(RenderState::sCgFragmentProfile); 
    11721205                cgGLDisableProfile(RenderState::sCgVertexProfile); 
     1206 
     1207                state.SetRenderType(RenderState::DEPTH_PASS); 
     1208 
     1209                // the scene is rendered withouth any shading    
     1210                glDisable(GL_LIGHTING); 
    11731211         
    11741212                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
     
    12191257        SetupEyeView(); 
    12201258 
    1221  
    1222         /*state.Reset(); 
    1223         state.SetState(RenderState::RENDER); 
    1224          
     1259        // actually render the scene geometry using one of the specified algorithms 
     1260        traverser->RenderScene(); 
     1261 
     1262 
     1263 
     1264        ///////// 
     1265        //-- do the rest of the rendering 
     1266 
    12251267        glEnableClientState(GL_VERTEX_ARRAY); 
    12261268        glEnableClientState(GL_NORMAL_ARRAY); 
    12271269 
    1228         for (int i = 0; i < loader->mSceneEntities.size(); ++ i) 
    1229         { 
    1230                 SceneEntity *ent = loader->mSceneEntities[i]; 
    1231  
    1232                 ent->UpdateLODs(camera); 
    1233                 ent->Render(&state); 
    1234         }*/ 
    1235  
    1236         // actually render the scene geometry using one of the specified algorithms 
    1237         traverser->RenderScene(); 
    1238  
    1239  
    1240  
    1241         ///////// 
    1242         //-- do the rest of the rendering 
    1243  
    1244         glEnableClientState(GL_VERTEX_ARRAY); 
    1245         glEnableClientState(GL_NORMAL_ARRAY); 
    1246  
    12471270 
    12481271        // reset depth pass and render visible objects 
     
    12641287        glDisableClientState(GL_NORMAL_ARRAY); 
    12651288 
     1289 
    12661290        if (renderType == RenderState::DEFERRED)  
    12671291        { 
    1268                 glPopAttrib(); 
     1292                //glPopAttrib(); 
    12691293                glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 
    12701294 
     
    12961320        } 
    12971321 
    1298         glFlush(); 
     1322        //glFlush(); 
    12991323 
    13001324        const bool restart = true; 
     
    13031327        DisplayStats(); 
    13041328 
     1329        // flip textures for temporal smoothing 
    13051330        isFirstTexture = !isFirstTexture; 
    13061331 
Note: See TracChangeset for help on using the changeset viewer.