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/chcdemo.cpp

    r2951 r2952  
    184184 
    185185ShadowMap *shadowMap = NULL; 
    186 Light *light = NULL; 
     186DirectionalLight *light = NULL; 
    187187DeferredRenderer *ssaoShader = NULL; 
     188 
    188189 
    189190 
     
    242243static CGprogram sCgMrtVertexProgram = NULL; 
    243244 
    244 static CGparameter sModelViewProjMatrixParam; 
    245245static CGparameter sMaxDepthParam; 
    246246static CGparameter sMaxDepthParamTex; 
    247  
    248247static Matrix4x4 oldViewProjMatrix; 
    249248 
     
    284283        Vector3 camPos(.0f, .0f, .0f); 
    285284        Vector3 camDir(.0f, 1.0f, .0f); 
     285        Vector3 lightDir(-0.8f, 1.0f, -0.7f); 
    286286 
    287287        cout << "=== reading environment file ===" << endl << endl; 
     
    308308                env.GetVectorParam(string("camPosition"), camPos); 
    309309                env.GetVectorParam(string("camDirection"), camDir); 
     310                env.GetVectorParam(string("lightDirection"), lightDir); 
    310311 
    311312                env.GetBoolParam(string("useLODs"), useLODs); 
     
    345346 
    346347        visCamera = new Camera(winWidth, winHeight, fov); 
    347  
    348348        visCamera->SetNear(0.0f); 
    349349        visCamera->Yaw(.5 * M_PI); 
     350 
     351        // create a new light 
     352        light = new DirectionalLight(lightDir, RgbaColor(1, 1, 1, 1)); 
     353 
    350354 
    351355        renderQueue = new RenderQueue(&state, camera); 
     
    449453        sceneQuery = new SceneQuery(bvh->GetBox(), traverser); 
    450454 
    451         //Vector3 lightDir = Normalize(Vector3(0.2, -0.8, -1)); 
    452         Vector3 lightDir = Normalize(-Vector3(0.8f, -1.0f, 0.7f)); 
    453          
    454         light = new Light(lightDir, RgbaColor(1, 1, 1, 1)); 
    455  
    456  
    457455        // frame time is restarted every frame 
    458456        frameTimer.Start(); 
     
    495493                cgGLLoadProgram(sCgMrtVertexProgram); 
    496494 
    497                 Transform3::sModelMatrixParam = cgGetNamedParameter(sCgMrtVertexProgram, "ModelMatrix"); 
    498                 sModelViewProjMatrixParam = cgGetNamedParameter(sCgMrtVertexProgram, "ModelViewProj"); 
     495                //sInvViewProjParam = cgGetNamedParameter(sCgMrtVertexProgram, "InvViewProj"); 
     496                Transform3::sModelMatrixParam = cgGetNamedParameter(sCgMrtVertexProgram, "ModelView"); 
    499497        } 
    500498 
     
    757755        glLightfv(GL_LIGHT0, GL_SPECULAR, specular); 
    758756 
    759         GLfloat position[] = {0.8f, -1.0f, 0.7f, 0.0f}; 
     757        Vector3 lightDir = -light->GetDirection(); 
     758        GLfloat position[] = {lightDir.x, lightDir.y, lightDir.z, 0.0f}; 
    760759        glLightfv(GL_LIGHT0, GL_POSITION, position); 
    761760 
     
    802801        glMatrixMode(GL_PROJECTION); 
    803802        glLoadIdentity(); 
    804  
    805803        gluPerspective(fov, winAspectRatio, nearDist, farDist); 
    806804 
     
    823821        if ((renderType == RenderState::DEFERRED) || (renderType == RenderState::DEPTH_PASS_DEFERRED)) 
    824822        { 
    825                 // set modelview matrix for shaders 
    826                 cgGLSetStateMatrixParameter(sModelViewProjMatrixParam,  
    827                                                                         CG_GL_MODELVIEW_PROJECTION_MATRIX,  
    828                                                                         CG_GL_MATRIX_IDENTITY); 
    829  
    830                 static Matrix4x4 identity = IdentityMatrix(); 
    831                 cgGLSetMatrixParameterfc(Transform3::sModelMatrixParam, (const float *)identity.x); 
    832         }                
     823                cgGLSetMatrixParameterfc(Transform3::sModelMatrixParam, (const float *)IdentityMatrix().x); 
     824        } 
    833825} 
    834826 
     
    10121004 
    10131005        // set up lights 
    1014         GLfloat position[] = {0.8f, -1.0f, 0.7f, 0.0f}; 
    1015         glLightfv(GL_LIGHT0, GL_POSITION, position); 
    1016  
    1017 #if 0 
    1018         GLfloat position1[] = {-0.5f, 0.5f, 0.4f, 0.0f}; 
    1019         glLightfv(GL_LIGHT1, GL_POSITION, position1); 
    1020 #endif 
     1006        Vector3 lightDir = -light->GetDirection(); 
     1007        GLfloat lightPos[] = {lightDir.x, lightDir.y, lightDir.z, 0.0f}; 
     1008        glLightfv(GL_LIGHT0, GL_POSITION, lightPos); 
     1009 
     1010        // second light 
     1011        //GLfloat lightPos1[] = {-0.5f, 0.5f, 0.4f, 0.0f}; 
     1012        //glLightfv(GL_LIGHT1, GL_POSITION, lightPos1); 
     1013 
    10211014 
    10221015        if (renderLightView) 
     
    10901083 
    10911084                ShadowMap *sm = showShadowMap ? shadowMap : NULL; 
    1092                 ssaoShader->Render(fbo, oldViewProjMatrix, matProjectionView, ssaoTempCohFactor, sm); 
     1085                ssaoShader->Render(fbo, oldViewProjMatrix, matProjectionView, ssaoTempCohFactor, light, sm); 
    10931086        } 
    10941087 
Note: See TracChangeset for help on using the changeset viewer.