camera.set_aspect(1);
camera.set_depth_clip(0.1, 100);
- shdata.uniform("environment", 4);
}
void EnvironmentMap::setup_frame() const
camera.set_up_direction(env_tex.get_t_direction(face));
Renderer env_renderer(&camera);
env_renderer.exclude(renderable);
+ env_renderer.exclude(*this);
env_renderer.render(environment);
}
Framebuffer::unbind();
if(!enabled_passes.count(tag))
return renderer.render(renderable, tag);
+ Renderer::Push _push_rend(renderer);
+
+ unsigned unit = renderer.allocate_effect_texunit();
+ shdata.uniform("environment", static_cast<int>(unit));
+ Bind _bind_env(env_tex, unit);
+
const Matrix &view_matrix = renderer.get_camera()->get_matrix();
// XXX The camera should maybe have store its own object matrix
float env_mdata[9];
env_mdata[8] = view_matrix[10];
shdata.uniform_matrix3("env_eye_matrix", env_mdata);
- env_tex.bind_to(4);
-
- Renderer::Push _push_rend(renderer);
renderer.add_shader_data(shdata);
renderer.render(renderable, tag);
-
- env_tex.unbind_from(4);
}
} // namespace GL