Changeset 2856


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

Legend:

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

    r2855 r2856  
    4545 
    4646ColorBufferObject::ColorBufferObject(int w, int h,  
    47                                                                          COLOR_FORMAT c,  
    48                                                                          int wrapType,  
    49                                                                          int filterType,  
     47                                                                         FORMAT c,  
     48                                                                         WRAP_TYPE wrapType,  
     49                                                                         FILTER_TYPE filterType,  
    5050                                                                         bool useMipMap,  
    5151                                                                         bool useMultiSampling) 
    5252{ 
    53 /*       
    54         glGenRenderbuffersEXT(1, &normalsBuffer); 
    55         glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, normalsBuffer); 
    56         glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA8, texWidth, texHeight); 
     53        glGenRenderbuffersEXT(1, &mId); 
     54        glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, mId); 
     55        glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA8, w, h); 
    5756         
    58         glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_RENDERBUFFER_EXT, normalsBuffer); 
     57        glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_RENDERBUFFER_EXT, mId); 
    5958 
    60         glGenTextures(1, &normalsTex); 
    61         glBindTexture(GL_TEXTURE_2D, normalsTex); 
    62         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 
    63         glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_TEXTURE_2D, normalsTex, 0); 
     59        glGenTextures(1, &mTexId); 
     60        glBindTexture(GL_TEXTURE_2D, mTexId); 
     61        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 
     62        glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_TEXTURE_2D, mTexId, 0); 
    6463 
    65         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
    66         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
     64        GLuint filterParam; 
    6765 
    68         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
    69         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 
     66        switch (filterType) 
     67        { 
     68        case WRAP_NEAREST: 
     69                filterParam = GL_NEAREST; break; 
     70        case WRAP_LINEAR: 
     71                filterParam = GL_LINEAR; break; 
     72        case WRAP_MIPMAP_LINEAR:  
     73                filterParam = GL_LINEAR_MIPMAP_LINEAR; break; 
     74        } 
     75 
     76         
     77        GLuint wrapParam; 
     78 
     79        switch (wrapType) 
     80        { 
     81        case GL_REPEAT: 
     82                wrapParam = GL_NEAREST; break; 
     83        case GL_CLAMP_TO_EDGE: 
     84                wrapParam = GL_LINEAR; break; 
     85        } 
     86 
     87        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filterParam); 
     88        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filterParam); 
     89 
     90        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapParam); 
     91        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapParam); 
    7092 
    7193        PrintFBOStatus(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)); 
    72 */ 
    7394} 
    7495 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/FrameBufferObject.h

    r2855 r2856  
    1616public: 
    1717 
    18         enum COLOR_FORMAT { BUFFER_UBYTE, BUFFER_FLOAT_16, BUFFER_FLOAT_32 }; 
     18        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 }; 
    1921 
    2022        ColorBufferObject(int w, int h,  
    21                               COLOR_FORMAT c,  
    22                                           int wrapType,  
    23                                           int filterType,  
     23                              FORMAT c,  
     24                                          WRAP_TYPE wrapType,  
     25                                          FILTER_TYPE filterType,  
    2426                                          bool useMipMap,  
    2527                                          bool useMultiSampling); 
     28 
     29protected: 
     30 
     31        unsigned int mId; 
     32        unsigned int mTexId; 
    2633}; 
    2734 
     
    4047                Returns a pointer to the buffer object 
    4148        */ 
    42         ColorBufferObject *AddColorBuffer(ColorBufferObject::COLOR_FORMAT col,  
     49        ColorBufferObject *AddColorBuffer(ColorBufferObject::FORMAT col,  
    4350                                              int wrapType,  
    4451                                                                          int filterType,  
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/LODInfo.h

    r2854 r2856  
    2020public: 
    2121         
    22         LODLevel(float squaredDist): mSquaredDistance(squaredDist) {} 
     22        LODLevel(float squaredDist): mSquaredDistance(squaredDist), mNumTriangles(0) {} 
    2323 
    2424        inline float GetSquaredDistance() const { return mSquaredDistance; } 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp

    r2854 r2856  
    9898// eye near plane distance 
    9999float nearDist = 0.2f;  
     100/// the field of view 
     101float fov = 50.0f; 
    100102/// the pixel threshold where a node is still considered invisible 
    101103int threshold; 
    102  
    103 float fov = 50.0f; 
    104104 
    105105int assumedVisibleFrames = 10; 
     
    384384 
    385385        if (!useFullScreen) 
     386        { 
    386387                glutCreateWindow("FriendlyCulling"); 
     388        } 
    387389        else 
    388390        { 
Note: See TracChangeset for help on using the changeset viewer.