Ignore:
Timestamp:
09/16/08 16:03:01 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r2946 r2952  
    88#include "Halton.h" 
    99#include "ShadowMapping.h" 
     10#include "Light.h" 
    1011 
    1112 
     
    9192static CGparameter sNoiseTexShadowParam; 
    9293static CGparameter sSamplesShadowParam;  
     94 
     95static CGparameter sLightDirParam; 
     96static CGparameter sLightDirShadowParam; 
    9397 
    9498 
     
    245249        if (sCgAntiAliasingProgram) cgDestroyProgram(sCgAntiAliasingProgram); 
    246250 
    247         //DEL_PTR(mNewFbo); 
    248         //DEL_PTR(mOldFbo); 
    249251        DEL_PTR(mFbo); 
    250252 
     
    277279                sColorsTexDeferredParam = cgGetNamedParameter(sCgDeferredProgram, "colors");   
    278280                sNormalsTexDeferredParam = cgGetNamedParameter(sCgDeferredProgram, "normals"); 
     281                sLightDirParam = cgGetNamedParameter(sCgDeferredProgram, "lightDir"); 
    279282        } 
    280283        else 
     
    427430                sNoiseTexShadowParam = cgGetNamedParameter(sCgDeferredShadowProgram, "noiseTexture"); 
    428431                sSamplesShadowParam = cgGetNamedParameter(sCgDeferredShadowProgram, "samples"); 
     432                sLightDirShadowParam = cgGetNamedParameter(sCgDeferredShadowProgram, "lightDir"); 
    429433 
    430434                PoissonDiscSampleGenerator2 poisson(16, 1.0f); 
     
    444448                                                          const Matrix4x4 &projViewMatrix, 
    445449                                                          float tempCohFactor, 
     450                                                          DirectionalLight *light, 
    446451                                                          ShadowMap *shadowMap) 
    447452{ 
     
    477482 
    478483        if (shadowMap) 
    479                 FirstPassShadow(fbo, shadowMap); 
     484                FirstPassShadow(fbo, light, shadowMap); 
    480485        else 
    481                 FirstPass(fbo); 
     486                FirstPass(fbo, light); 
    482487 
    483488        switch (mShadingMethod) 
     
    691696 
    692697 
    693 void DeferredRenderer::FirstPass(FrameBufferObject *fbo) 
     698void DeferredRenderer::FirstPass(FrameBufferObject *fbo, DirectionalLight *light) 
    694699{ 
    695700        GLuint colorsTex = fbo->GetColorBuffer(0)->GetTexture(); 
     
    717722        cgGLEnableTextureParameter(sNormalsTexDeferredParam); 
    718723         
     724        Vector3 lightDir = -light->GetDirection(); 
     725        cgGLSetParameter3f(sLightDirParam, lightDir.x, lightDir.y, lightDir.z); 
     726 
    719727        glColor3f(1.0f, 1.0f, 1.0f); 
    720728 
     
    952960 
    953961 
    954 void DeferredRenderer::FirstPassShadow(FrameBufferObject *fbo, ShadowMap *shadowMap) 
     962void DeferredRenderer::FirstPassShadow(FrameBufferObject *fbo,  
     963                                                                           DirectionalLight *light,  
     964                                                                           ShadowMap *shadowMap) 
    955965{ 
    956966        GLuint colorsTex = fbo->GetColorBuffer(0)->GetTexture(); 
     
    9951005        cgGLEnableTextureParameter(sNoiseTexShadowParam); 
    9961006 
     1007        Vector3 lightDir = -light->GetDirection(); 
     1008        cgGLSetParameter3f(sLightDirShadowParam, lightDir.x, lightDir.y, lightDir.z); 
     1009 
    9971010 
    9981011        glColor3f(1.0f, 1.0f, 1.0f); 
Note: See TracChangeset for help on using the changeset viewer.