EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable &r, Renderable &e):
Effect(r),
EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable &r, Renderable &e):
Effect(r),
environment(e),
irradiance_shprog(Resources::get_global().get<Program>("_envmap_irradiance.glsl.shader")),
specular_shprog(Resources::get_global().get<Program>("_envmap_specular.glsl.shader")),
environment(e),
irradiance_shprog(Resources::get_global().get<Program>("_envmap_irradiance.glsl.shader")),
specular_shprog(Resources::get_global().get<Program>("_envmap_specular.glsl.shader")),
env_tex.storage(f, size, l);
depth_buf.storage(DEPTH_COMPONENT32F, size, size, 1);
for(unsigned i=0; i<6; ++i)
env_tex.storage(f, size, l);
depth_buf.storage(DEPTH_COMPONENT32F, size, size, 1);
for(unsigned i=0; i<6; ++i)
void EnvironmentMap::set_depth_clip(float n, float f)
{
for(unsigned i=0; i<6; ++i)
void EnvironmentMap::set_depth_clip(float n, float f)
{
for(unsigned i=0; i<6; ++i)
Renderer::Push push(renderer);
Renderer::Exclude exclude1(renderer, renderable);
Renderer::Exclude exclude2(renderer, *this);
Renderer::Push push(renderer);
Renderer::Exclude exclude1(renderer, renderable);
Renderer::Exclude exclude2(renderer, *this);
return renderer.render(renderable, tag);
Renderer::Push _push_rend(renderer);
return renderer.render(renderable, tag);
Renderer::Push _push_rend(renderer);
depth_buf.set_debug_name(name+"/environment_depth.rbuf");
static const char *const face_names[] = { "X+", "X-", "Y+", "Y-", "Z+", "Z-" };
for(unsigned i=0; i<6; ++i)
depth_buf.set_debug_name(name+"/environment_depth.rbuf");
static const char *const face_names[] = { "X+", "X-", "Y+", "Y-", "Z+", "Z-" };
for(unsigned i=0; i<6; ++i)
irradiance_fbo.set_debug_name(name+" [FBO:irradiance]");
for(unsigned i=0; i<specular_fbos.size(); ++i)
specular_fbos[i].set_debug_name(format("%s [FBO:specular_mip%d]", name, i+1));
irradiance_fbo.set_debug_name(name+" [FBO:irradiance]");
for(unsigned i=0; i<specular_fbos.size(); ++i)
specular_fbos[i].set_debug_name(format("%s [FBO:specular_mip%d]", name, i+1));