skytex = 0;
dskytex = 0;
+
+ fog_density = 0;
}
Renderer::~Renderer()
diff_loc = sprog->get_uniform_location("diffuse");
spec_loc = sprog->get_uniform_location("specular");
shin_loc = sprog->get_uniform_location("shininess");
+ 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");
+
+ /* skybox, irradiance map uniforms */
+
+ stex_loc = sprog->get_uniform_location("stex");
+ dstex_loc = sprog->get_uniform_location("dstex");
+
+ if(stex_loc != -1)
+ sprog->set_uniformi(stex_loc, 0);
+
+ if(dstex_loc != -1)
+ sprog->set_uniformi(dstex_loc, 1);
return true;
}
if(skytex) {
draw_skybox();
+
+ if(dskytex) {
+ dskytex->bind(1);
+ }
}
if(!sprog->link())
if(shin_loc != -1)
sprog->set_uniformf(shin_loc, m->shininess);
+ if(fog_loc != -1)
+ sprog->set_uniformf(fog_loc, fog_density);
+
/* texture */
if(m->dtex)
if(mview_loc != -1)
sprog->set_uniform_matrix(mview_loc, mview);
+ Mat4 mmod = object->transform.upper3x3();
+ if(mmod_loc != -1)
+ sprog->set_uniform_matrix(mmod_loc, mmod);
+
object->mesh->draw();
// debug