prefilter_shdata.uniform("roughness", 1.0f);
}
- shdata.uniform("env_world_matrix", LinAl::SquareMatrix<float, 3>::identity());
+ shdata.uniform("env_world_matrix", LinAl::Matrix<float, 3, 3>::identity());
}
void EnvironmentMap::set_fixed_position(const Vector3 &p)
environment.render(renderer);
}
+ renderer.set_pipeline_key(this);
renderer.set_framebuffer(&irradiance_fbo);
renderer.set_shader_program(&irradiance_shprog, &prefilter_shdata);
renderer.set_texture("environment_map", &env_tex, 0, &sampler);
for(unsigned i=0; i<specular_fbos.size(); ++i)
{
prefilter_shdata.uniform("roughness", 1.0f-sqrt(1.0f-static_cast<float>(i+1)/specular_fbos.size()));
+ renderer.set_pipeline_key(this, 1+i);
renderer.set_framebuffer(&specular_fbos[i]);
fullscreen_mesh.draw(renderer);
}
env_map->set_fixed_position(fixed_position);
env_map->set_depth_clip(near_clip, far_clip);
+ create_base(*env_map);
+
return env_map.release();
}