X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffects%2Fsky.cpp;h=d9c95b3bd79839fed84d1ad3f06235a4f5ac626e;hb=6065f6622cc275dc0b20baaf7c267e71169d18f3;hp=9a5f73bc73f8d1b6405c810935721b220b53804d;hpb=a266f0f915827b20591f6244ccc36129e844f408;p=libs%2Fgl.git diff --git a/source/effects/sky.cpp b/source/effects/sky.cpp index 9a5f73bc..d9c95b3b 100644 --- a/source/effects/sky.cpp +++ b/source/effects/sky.cpp @@ -4,6 +4,7 @@ #include "mesh.h" #include "renderer.h" #include "resources.h" +#include "texture2d.h" #include "sky.h" using namespace std; @@ -14,10 +15,10 @@ namespace GL { Sky::Sky(Renderable &r, Light &s): Effect(r), sun(s), - transmittance_lookup(128, 64, (RENDER_COLOR, RGB16F)), + transmittance_lookup(128, 64, (COLOR_ATTACHMENT,RGB16F)), transmittance_shprog(Resources::get_global().get("_sky_transmittance.glsl.shader")), transmittance_lookup_dirty(true), - distant(256, 128, (RENDER_COLOR, RGB16F)), + distant(256, 128, (COLOR_ATTACHMENT,RGB16F)), distant_shprog(Resources::get_global().get("_sky_distant.glsl.shader")), fullscreen_mesh(Resources::get_global().get("_fullscreen_quad.mesh")), backdrop_shprog(Resources::get_global().get("_sky_backdrop.glsl.shader")), @@ -104,12 +105,12 @@ void Sky::setup_frame(Renderer &renderer) if(transmittance_lookup_dirty) { transmittance_lookup_dirty = false; - Bind bind_fbo(transmittance_lookup.get_framebuffer()); + renderer.set_framebuffer(&transmittance_lookup.get_framebuffer()); renderer.set_shader_program(&transmittance_shprog, &shdata); fullscreen_mesh.draw(renderer); } - Bind bind_fbo(distant.get_framebuffer()); + renderer.set_framebuffer(&distant.get_framebuffer()); renderer.set_shader_program(&distant_shprog, &shdata); renderer.set_texture("transmittance_lookup", &transmittance_lookup.get_target_texture(0), &sampler); fullscreen_mesh.draw(renderer); @@ -137,6 +138,17 @@ void Sky::render(Renderer &renderer, Tag tag) const fullscreen_mesh.draw(renderer); } +void Sky::set_debug_name(const string &name) +{ +#ifdef DEBUG + transmittance_lookup.set_debug_name(name+" [RT:transmittance]"); + distant.set_debug_name(name+" [RT:distant]"); + shdata.set_debug_name(name+" [UBO]"); +#else + (void)name; +#endif +} + Sky::Planet::Planet(): rayleigh_scatter(0.0f),