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()); }
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); }