Example #1
0
    void SSAO::reloadShaders() {
        ukn::ShaderPtr vertexShader;
        ukn::ShaderPtr fragmentShader;
           
        vertexShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_vert.cg"), 
                                                VERTEX_SHADER_DESC("VertexProgram"));
        fragmentShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_frag.cg"), 
                                                FRAGMENT_SHADER_DESC("FragmentProgram"));

        mSSAOTechnique->clear();
        mSSAOTechnique->appendPass(fragmentShader, vertexShader, ShaderPtr());

        vertexShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_blur_vert.cg"), 
                                                VERTEX_SHADER_DESC("VertexProgram"));
        fragmentShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_blur_frag.cg"), 
                                                FRAGMENT_SHADER_DESC("FragmentProgram"));
        
        mSSAOBlurTechnique->clear();
        mSSAOBlurTechnique->appendPass(fragmentShader, vertexShader, ShaderPtr());

        vertexShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_composite_vert.cg"), 
                                                VERTEX_SHADER_DESC("VertexProgram"));
        fragmentShader = mEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/ssao_composite_frag.cg"), 
                                                FRAGMENT_SHADER_DESC("FragmentProgram"));
        
        mCompositeTechnique->clear();
        mCompositeTechnique->appendPass(fragmentShader, vertexShader, ShaderPtr());
 
    }
Example #2
0
    LightManager::LightManager() {
        GraphicFactory& gf = Context::Instance().getGraphicFactory();

        // tests
        mDepthWriteEffect = gf.createEffect();
        ukn::ShaderPtr vertexShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/expdepth_vert.cg"), 
                                                                        VERTEX_SHADER_DESC("VertexProgram"));
        ukn::ShaderPtr fragmentShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/expdepth_frag.cg"), 
                                                                        FRAGMENT_SHADER_DESC("FragmentProgram"));

        mEXPDepthMapTechnique = mDepthWriteEffect->appendTechnique(fragmentShader, vertexShader, ShaderPtr());


        vertexShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/depth_vert.cg"), 
                                                                        VERTEX_SHADER_DESC("VertexProgram"));
        fragmentShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/depth_frag.cg"), 
                                                                        FRAGMENT_SHADER_DESC("FragmentProgram"));

        mDepthMapTechnique = mDepthWriteEffect->appendTechnique(fragmentShader, vertexShader, ShaderPtr());

        
        vertexShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/shadowmap_blur_vert.cg"), 
                                                                        VERTEX_SHADER_DESC("VertexProgram"));
        fragmentShader = mDepthWriteEffect->createShader(MIST_LOAD_RESOURCE(L"deferred/shadowmap_blur_frag.cg"), 
                                                                        FRAGMENT_SHADER_DESC("FragmentProgram"));

        mBlurTechnique = mDepthWriteEffect->appendTechnique(fragmentShader, vertexShader, ShaderPtr());


        mShadowMapRT = MakeSharedPtr<ukn::CompositeRenderTarget>();

        // temporary 
        mSpotLightGeometry = ModelLoader::BuildFromSphere(mist::Sphere(Vector3(0, 0, 0), 1), 5);
    
        mPointLightGeometry = ModelLoader::BuildFromSphere(mist::Sphere(Vector3(0, 0, 0), 1), 5);
    }