- occlude_target(w, h, (RENDER_COLOR,RGB)),
+ occlude_target(w, h, (RENDER_COLOR,R8)),
occlude_shader("ambientocclusion_occlude.glsl"),
combine_shader("ambientocclusion_combine.glsl"),
occlude_shader("ambientocclusion_occlude.glsl"),
combine_shader("ambientocclusion_combine.glsl"),
- quad(get_fullscreen_quad())
+ quad(get_fullscreen_quad()),
+ linear_sampler(get_linear_sampler()),
+ nearest_sampler(get_nearest_sampler())
- occlude_target.set_texture_filter(LINEAR);
- texturing.attach(2, occlude_target.get_target_texture(RENDER_COLOR));
+ texturing.attach(2, occlude_target.get_target_texture(RENDER_COLOR), linear_sampler.get());
- rotate_lookup.storage(RGBA, 4, 4);
- rotate_lookup.set_filter(NEAREST);
+ rotate_lookup.storage(RGBA8, 4, 4, 1);
unsigned char data[64];
for(unsigned i=0; i<16; ++i)
{
Geometry::Angle<float> a = Geometry::Angle<float>::from_turns(random(seed));
unsigned char c = (cos(a)*0.5f+0.5f)*255;
unsigned char s = (sin(a)*0.5f+0.5f)*255;
unsigned char data[64];
for(unsigned i=0; i<16; ++i)
{
Geometry::Angle<float> a = Geometry::Angle<float>::from_turns(random(seed));
unsigned char c = (cos(a)*0.5f+0.5f)*255;
unsigned char s = (sin(a)*0.5f+0.5f)*255;
shdata.uniform("source", 0);
shdata.uniform("depth", 1);
shdata.uniform("source", 0);
shdata.uniform("depth", 1);
- texturing.attach(0, color);
- texturing.attach(1, depth);
+ texturing.attach(0, color, nearest_sampler.get());
+ texturing.attach(1, depth, nearest_sampler.get());
if(renderer.get_camera())
shdata.uniform("inverse_projection", invert(renderer.get_camera()->get_projection_matrix()));
if(renderer.get_camera())
shdata.uniform("inverse_projection", invert(renderer.get_camera()->get_projection_matrix()));
ao->set_n_samples(n_samples);
ao->set_occlusion_radius(occlusion_radius);
ao->set_darkness(darkness);
ao->set_n_samples(n_samples);
ao->set_occlusion_radius(occlusion_radius);
ao->set_darkness(darkness);
DataFile::DerivedObjectLoader<Template, PostProcessor::Template::Loader>(t)
{
add("darkness", &Template::darkness);
DataFile::DerivedObjectLoader<Template, PostProcessor::Template::Loader>(t)
{
add("darkness", &Template::darkness);
add("occlusion_radius", &Template::occlusion_radius);
add("samples", &Template::n_samples);
}
add("occlusion_radius", &Template::occlusion_radius);
add("samples", &Template::n_samples);
}