]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/forestpond/source/water.cpp
Remove the separate clamping step from forest pond fluid simulation
[libs/gl.git] / demos / forestpond / source / water.cpp
index 03709034de838cfebce38dff512b4b03d2e6c807..d44e70891a0f42c8c58a93889d366a26f1314d81 100644 (file)
@@ -17,7 +17,6 @@ Water::Water(const GL::Object &o, DataFile::Collection &resources, const Region
        sampler(resources.get<GL::Sampler>("linear_clip.samp")),
        sim_integrate(resources.get<GL::Program>("fluidsim_integrate.glsl.shader")),
        sim_velocity(resources.get<GL::Program>("fluidsim_velocity.glsl.shader")),
-       sim_clamp(resources.get<GL::Program>("fluidsim_clamp.glsl.shader")),
        normals_shader(resources.get<GL::Program>("water_normals.glsl.shader")),
        variance_x_shader(resources.get<GL::Program>("water_variance_x.glsl.shader")),
        variance_y_shader(resources.get<GL::Program>("water_variance_y.glsl.shader"))
@@ -41,8 +40,6 @@ Water::Water(const GL::Object &o, DataFile::Collection &resources, const Region
                state[i].surface.set_debug_name(format("Water surface[%d]", i));
                state[i].velocity.storage(GL::RG32F, width, height, 1);
                state[i].velocity.set_debug_name(format("Water velocity[%d]", i));
-               state[i].clamping.storage(GL::R32F, width, height, 1);
-               state[i].clamping.set_debug_name(format("Water clamping[%d]", i));
        }
 
        normals.storage(GL::RG8, width, height, 1);
@@ -77,7 +74,6 @@ Water::Water(const GL::Object &o, DataFile::Collection &resources, const Region
        {
                renderer.set_storage_texture("surface_out", &state[i].surface);
                renderer.set_storage_texture("velocity_out", &state[i].velocity);
-               renderer.set_storage_texture("clamping_out", &state[i].clamping);
                renderer.dispatch((width+7)/8, (height+7)/8);
        }
        renderer.end();
@@ -107,20 +103,14 @@ void Water::setup_frame(GL::Renderer &renderer)
                renderer.set_shader_program(&sim_integrate);
                renderer.set_storage_texture("surface_out", &next->surface);
                renderer.set_storage_texture("velocity_out", &next->velocity);
-               renderer.set_storage_texture("clamping_out", &next->clamping);
                renderer.set_texture("surface_in", &current->surface, &sampler);
                renderer.set_texture("velocity_in", &current->velocity, &sampler);
-               renderer.set_texture("clamping_in", &current->clamping, &sampler);
                renderer.dispatch(groups_x, groups_y);
 
                renderer.set_shader_program(&sim_velocity);
                renderer.set_texture("surface_in", &next->surface, &sampler);
                renderer.dispatch(groups_x, groups_y);
 
-               renderer.set_shader_program(&sim_clamp);
-               renderer.set_texture("velocity_in", &next->velocity, &sampler);
-               renderer.dispatch(groups_x, groups_y);
-
                time += stepsize;
                swap(current, next);
        }