#include "global.h"
#include "morph_renderer.h"
+#include "object.h"
#include "scene.h"
#include "shader.h"
#include "shader_manager.h"
+#include "texture.h"
MorphRenderer::MorphRenderer()
{
/* we won't use them */
skytex = 0;
dskytex = 0;
+
+ fog_density = 0;
}
MorphRenderer::~MorphRenderer()
diff_loc = sprog->get_uniform_location("diffuse");
spec_loc = sprog->get_uniform_location("specular");
shin_loc = sprog->get_uniform_location("shininess");
+ t_loc = sprog->get_uniform_location("t");
+ fog_loc = sprog->get_uniform_location("fog_density");
/* uniform locations for matrices */
mmviewproj_loc = sprog->get_uniform_location("mmviewproj");
mview_loc = sprog->get_uniform_location("mview");
+ mmod_loc = sprog->get_uniform_location("mmod");
+
+ dstex_loc = sprog->get_uniform_location("dstex");
+ if(dstex_loc != -1)
+ sprog->set_uniformi(dstex_loc, 1);
return true;
}
if(!sprog->link())
return;
+ if(dskytex) {
+ dskytex->bind(1);
+ }
+
sprog->use();
for(size_t i=0; i<scene->objects.size(); i++) {
+ float t = (sin(time_sec + 7.3 * noise(i * M_PI)) + 1) * 0.5;
+ if(t_loc != -1)
+ sprog->set_uniformf(t_loc, t);
+
+ if(mmod_loc != -1)
+ sprog->set_uniform_matrix(mmod_loc, scene->objects[i]->transform.upper3x3());
+
draw_object(scene->objects[i]);
}
}
\ No newline at end of file