Changeset 2819


Ignore:
Timestamp:
07/07/08 15:11:03 (16 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/App/Demos/Vis/FriendlyCulling/src
Files:
9 edited

Legend:

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

    r2818 r2819  
    88namespace CHCDemoEngine 
    99{ 
     10 
     11CGparameter Material::sDiffuseParam; 
     12CGparameter Material::sDiffuseTexParam; 
    1013 
    1114RgbaColor RandomColor(float a, float b) 
     
    6063 
    6164        if (mTexture) 
     65        { 
    6266                mTexture->Bind(); 
     67                cgGLSetParameter4f(sDiffuseTexParam, mDiffuseColor.r, mDiffuseColor.g, mDiffuseColor.b, mDiffuseColor.a); 
     68        } 
    6369        else 
     70        { 
     71                cgGLSetParameter4f(sDiffuseParam, mDiffuseColor.r, mDiffuseColor.g, mDiffuseColor.b, mDiffuseColor.a); 
    6472                glBindTexture(GL_TEXTURE_2D, 0); 
     73        } 
    6574 
    6675        glMaterialfv(GL_FRONT, GL_AMBIENT, (float *)&mAmbientColor.r); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Material.h

    r2795 r2819  
    22#define __MATERIAL_H 
    33 
     4#include "glInterface.h" 
     5#include <Cg/cg.h> 
     6#include <Cg/cgGL.h> 
    47#include "common.h" 
    58 
     
    6972        void InitMaterial(); 
    7073 
     74        static CGparameter sDiffuseParam; 
     75        static CGparameter sDiffuseTexParam; 
    7176 
    7277protected: 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderQueue.cpp

    r2805 r2819  
    6363 
    6464        // test if entity  
    65         if (mat->IsAlphaTestEnabled() != mBuckets[idx]->mAlphaTestEnabled) 
    66                 return false; 
     65        //if (mat->IsAlphaTestEnabled() != mBuckets[idx]->mAlphaTestEnabled) return false; 
    6766 
    6867        const bool hasTexture = (mat->GetTexture() != NULL); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderState.cpp

    r2818 r2819  
    99CGprofile RenderState::sCgFragmentProfile; 
    1010CGprofile RenderState::sCgVertexProfile;  
     11 
     12CGprogram RenderState::sCgMrtFragmentProgram = NULL; 
     13CGprogram RenderState::sCgMrtFragmentTexProgram = NULL; 
    1114 
    1215 
     
    8487        { 
    8588                mTexturesEnabled = false; 
     89 
     90                cgGLBindProgram(sCgMrtFragmentProgram); 
     91 
    8692                glDisable(GL_TEXTURE_2D); 
    8793                glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
     
    9298                { 
    9399                        mTexturesEnabled = true; 
     100 
     101                        cgGLBindProgram(sCgMrtFragmentTexProgram); 
     102 
    94103                        glEnable(GL_TEXTURE_2D); 
    95104                        glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderState.h

    r2818 r2819  
    5757        static CGprofile sCgVertexProfile;  
    5858 
     59        static CGprogram sCgMrtFragmentProgram; 
     60        static CGprogram sCgMrtFragmentTexProgram; 
     61 
    5962 
    6063protected: 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SceneEntity.h

    r2818 r2819  
    33 
    44#include "glInterface.h" 
     5#include <Cg/cg.h> 
     6#include <Cg/cgGL.h> 
    57#include "common.h" 
    68#include "AxisAlignedBox3.h" 
    79#include "Triangle3.h" 
    8 #include <Cg/cg.h> 
    9 #include <Cg/cgGL.h> 
     10 
    1011 
    1112namespace CHCDemoEngine  
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/chcdemo.cpp

    r2818 r2819  
    2323#include "SceneQuery.h" 
    2424#include "RenderQueue.h" 
     25#include "Material.h" 
    2526#include <Cg/cg.h> 
    2627#include <Cg/cgGL.h> 
     
    144145bool eightKeyPressed = false; 
    145146 
    146  
    147147static Vector3 samples[32]; 
    148148GLubyte *randomNormals; 
     149 
     150PerfTimer frameTimer, algTimer; 
     151         
    149152 
    150153// function forward declarations 
     
    207210static CGprogram sCgMrtVertexProgram = NULL; 
    208211static CGprogram sCgSSAOProgram = NULL; 
    209 static CGprogram sCgMrtFragmentProgram = NULL; 
     212 
    210213 
    211214static CGparameter sColorsTexParam; 
     
    217220//static CGparameter sModelMatrixParam; 
    218221static CGparameter sMaxDepthParam; 
     222static CGparameter sMaxDepthParamTex; 
    219223 
    220224const static float radius = 1e-3f; 
     
    394398        } 
    395399 
    396         sCgMrtFragmentProgram =  
     400        RenderState::sCgMrtFragmentTexProgram =  
     401                cgCreateProgramFromFile(sCgContext,  
     402                                                                CG_SOURCE, 
     403                                                                "src/shaders/mrt.cg",  
     404                                                                RenderState::sCgFragmentProfile, 
     405                                                                "fragtex", 
     406                                                                NULL); 
     407 
     408        if (RenderState::sCgMrtFragmentTexProgram != NULL) 
     409        { 
     410                cgGLLoadProgram(RenderState::sCgMrtFragmentTexProgram); 
     411 
     412                sMaxDepthParamTex = cgGetNamedParameter(RenderState::sCgMrtFragmentTexProgram, "maxDepth"); 
     413                Material::sDiffuseTexParam = cgGetNamedParameter(RenderState::sCgMrtFragmentTexProgram, "diffuse"); 
     414 
     415                cgGLSetParameter1f(sMaxDepthParamTex, 10.0f / myfar); 
     416        } 
     417        else 
     418                cerr << "fragment tex program failed to load" << endl; 
     419 
     420        RenderState::sCgMrtFragmentProgram =  
    397421                cgCreateProgramFromFile(sCgContext,  
    398422                                                                CG_SOURCE, 
     
    402426                                                                NULL); 
    403427 
    404         if(sCgMrtFragmentProgram != NULL) 
    405         { 
    406                 cgGLLoadProgram(sCgMrtFragmentProgram); 
    407  
    408                 sMaxDepthParam = cgGetNamedParameter(sCgMrtFragmentProgram, "maxDepth"); 
     428        if (RenderState::sCgMrtFragmentProgram != NULL) 
     429        { 
     430                cgGLLoadProgram(RenderState::sCgMrtFragmentProgram); 
     431 
     432                sMaxDepthParam = cgGetNamedParameter(RenderState::sCgMrtFragmentProgram, "maxDepth"); 
     433                Material::sDiffuseParam = cgGetNamedParameter(RenderState::sCgMrtFragmentProgram, "diffuse"); 
    409434 
    410435                cgGLSetParameter1f(sMaxDepthParam, 10.0f / myfar); 
    411436        } 
    412437        else 
    413                 cerr << "test program failed to load" << endl; 
     438                cerr << "fragment program failed to load" << endl; 
    414439 
    415440        PrintGLerror("test"); 
     
    814839 
    815840 
    816  
    817841void Display()  
    818842{        
    819         PerfTimer frameTimer, algTimer; 
     843        // take time from last frame 
     844        elapsedTime = frameTimer.Elapsed(); 
    820845        frameTimer.Start(); 
    821846 
     
    848873 
    849874        cgGLEnableProfile(RenderState::sCgFragmentProfile); 
    850         cgGLBindProgram(sCgMrtFragmentProgram); 
     875        cgGLBindProgram(RenderState::sCgMrtFragmentProgram); 
    851876 
    852877        cgGLEnableProfile(RenderState::sCgVertexProfile); 
     
    861886        glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
    862887 
     888        // render without shading 
     889        if (depthPass)  
     890        { 
     891                state.SetDepthPass(true); 
     892                glDisable(GL_LIGHTING); 
     893        } 
     894        else 
     895        { 
     896                state.SetDepthPass(false); 
     897                glEnable(GL_LIGHTING); 
     898        } 
     899         
     900 
     901        // bring eye modelview matrix up-to-date 
     902        SetupEyeView(); 
     903 
    863904        // set modelview matrix for shaders 
    864905        cgGLSetStateMatrixParameter(sModelViewProjMatrixParam, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY); 
    865  
    866         // render without shading 
    867         if (depthPass)  
    868         { 
    869                 state.SetDepthPass(true); 
    870                 glDisable(GL_LIGHTING); 
    871         } 
    872         else 
    873         { 
    874                 state.SetDepthPass(false); 
    875                 glEnable(GL_LIGHTING); 
    876         } 
    877906         
    878907        static Matrix4x4 identity = IdentityMatrix(); 
    879  
    880908        cgGLSetMatrixParameterfc(SceneEntity::sModelMatrixParam, (const float *)identity.x); 
    881         // bring eye modelview matrix up-to-date 
    882         SetupEyeView(); 
     909         
    883910 
    884911        // actually render the scene geometry using one of the specified algorithms 
     
    931958 
    932959        glutSwapBuffers(); 
    933  
    934         elapsedTime = frameTimer.Elapsed(); 
    935960} 
    936961 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/deferred.cg

    r2818 r2819  
    152152  float diffuse = diffuseLight + diffuseLight2; 
    153153 
    154   float ao = ssao(IN, positions, normals, noiseTexture); 
     154  //float ao = ssao(IN, positions, normals, noiseTexture); 
     155  float ao = 1.0f; 
    155156  //OUT.color = ao;  
    156157  OUT.color = ao * (ambient + diffuse) * color; 
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/mrt.cg

    r2818 r2819  
    6363} 
    6464 
     65/*struct Material 
     66{ 
     67  float4 diffuse; 
     68}*/ 
    6569 
    66 pixel frag(fragin IN, uniform sampler2D tex, uniform float maxDepth) 
     70 
     71pixel fragtex(fragin IN, uniform sampler2D tex, uniform float maxDepth, uniform float4 diffuse) 
    6772{ 
    6873  pixel pix; 
    6974       
    70   pix.col = tex2D(tex, IN.texCoord.xy); 
     75  pix.col = diffuse * tex2D(tex, IN.texCoord.xy); 
    7176  pix.pos = IN.worldPos * maxDepth; 
    7277  pix.norm = IN.normal; 
     
    7580  return pix; 
    7681} 
     82 
     83 
     84pixel frag(fragin IN, uniform float maxDepth, uniform float4 diffuse) 
     85{ 
     86  pixel pix; 
     87       
     88  pix.col = diffuse; 
     89  pix.pos = IN.worldPos * maxDepth; 
     90  pix.norm = IN.normal; 
     91  pix.pos.w = IN.projPos.w; 
     92 
     93  return pix; 
     94} 
Note: See TracChangeset for help on using the changeset viewer.