2 #include "morph_renderer.h"
5 #include "shader_manager.h"
7 MorphRenderer::MorphRenderer()
13 /* we won't use them */
20 MorphRenderer::~MorphRenderer()
24 bool MorphRenderer::create()
26 if(!(sprog = sdr_man->create_shader_program("morphing.v.glsl", "morphing.f.glsl"))) {
30 /* getting material uniform locations: diffuse, specular, specular exponent (strength) */
32 diff_loc = sprog->get_uniform_location("diffuse");
33 spec_loc = sprog->get_uniform_location("specular");
34 shin_loc = sprog->get_uniform_location("shininess");
35 t_loc = sprog->get_uniform_location("t");
36 fog_loc = sprog->get_uniform_location("fog_density");
38 /* uniform locations for matrices */
40 mmviewproj_loc = sprog->get_uniform_location("mmviewproj");
41 mview_loc = sprog->get_uniform_location("mview");
46 void MorphRenderer::draw() const
56 for(size_t i=0; i<scene->objects.size(); i++) {
57 float t = (sin(time_sec + 7.3 * noise(i * M_PI)) + 1) * 0.5;
59 sprog->set_uniformf(t_loc, t);
60 draw_object(scene->objects[i]);