X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffects%2Fenvironmentmap.cpp;h=614b1252b26ba7b2177bf40c3cb9803e4b052a9f;hb=HEAD;hp=2caecb56982a519ff65c12ca1ffdb6c96498316e;hpb=9f8dcf5ab9c0aa74814ecb52766f339013fcee9b;p=libs%2Fgl.git diff --git a/source/effects/environmentmap.cpp b/source/effects/environmentmap.cpp index 2caecb56..a59c1431 100644 --- a/source/effects/environmentmap.cpp +++ b/source/effects/environmentmap.cpp @@ -52,10 +52,10 @@ EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable if(l>1) { specular_fbos.resize(l-1); - for(unsigned i=1; i face_matrices[6]; @@ -74,7 +74,7 @@ EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable prefilter_shdata.uniform("roughness", 1.0f); } - shdata.uniform("env_world_matrix", LinAl::SquareMatrix::identity()); + shdata.uniform("env_world_matrix", LinAl::Matrix::identity()); } void EnvironmentMap::set_fixed_position(const Vector3 &p) @@ -141,6 +141,7 @@ void EnvironmentMap::setup_frame(Renderer &renderer) environment.render(renderer); } + renderer.set_pipeline_key(this); renderer.set_framebuffer(&irradiance_fbo); renderer.set_shader_program(&irradiance_shprog, &prefilter_shdata); renderer.set_texture("environment_map", &env_tex, 0, &sampler); @@ -150,6 +151,7 @@ void EnvironmentMap::setup_frame(Renderer &renderer) for(unsigned i=0; i(i+1)/specular_fbos.size())); + renderer.set_pipeline_key(this, 1+i); renderer.set_framebuffer(&specular_fbos[i]); fullscreen_mesh.draw(renderer); } @@ -216,6 +218,8 @@ EnvironmentMap *EnvironmentMap::Template::create(const map env_map->set_fixed_position(fixed_position); env_map->set_depth_clip(near_clip, far_clip); + create_base(*env_map); + return env_map.release(); }