#include <algorithm>
#include <cmath>
+#include <msp/strings/format.h>
#include "environmentmap.h"
#include "mesh.h"
#include "renderer.h"
namespace GL {
EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, 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")),
- fullscreen_mesh(Resources::get_global().get<Mesh>("_fullscreen_quad.mesh")),
- sampler(Resources::get_global().get<Sampler>("_linear_clamp.samp")),
- mip_sampler(Resources::get_global().get<Sampler>("_mip_clamp.samp"))
-{
- init(s, f, 1);
-}
+ EnvironmentMap(s, f, 1, r, e)
+{ }
EnvironmentMap::EnvironmentMap(unsigned s, PixelFormat f, unsigned l, Renderable &r, Renderable &e):
Effect(r),
fullscreen_mesh(Resources::get_global().get<Mesh>("_fullscreen_quad.mesh")),
sampler(Resources::get_global().get<Sampler>("_linear_clamp.samp")),
mip_sampler(Resources::get_global().get<Sampler>("_mip_clamp.samp"))
-{
- init(s, f, l);
-}
-
-void EnvironmentMap::init(unsigned s, PixelFormat f, unsigned l)
{
if(!l || (1U<<(l-1))>=s)
throw invalid_argument("EnvironmentMap::EnvironmentMap");
{
faces[i].camera.set_position(center);
renderer.set_framebuffer(&faces[i].fbo);
- renderer.clear();
renderer.set_camera(faces[i].camera);
renderer.render(environment);
}