27#ifndef EASY_RENDERER_AMBIENT_OCCLUSION_H
28#define EASY_RENDERER_AMBIENT_OCCLUSION_H
33#include <easy3d/core/types.h>
70 float radius()
const {
return radius_; }
81 float bias()
const {
return bias_; }
88 virtual unsigned int generate(
const std::vector< std::shared_ptr<Model> >& models);
101 void init(
int w,
int h);
106 void geometry_pass(
const std::vector< std::shared_ptr<Model> >& models);
120 void generate_noise(
int width,
int height);
131 std::vector<vec3> ssao_kernel_;
132 unsigned int noise_texture_;
Traditional Screen Space Ambient Occlusion (SSAO) technique.
Definition ambient_occlusion.h:49
virtual unsigned int generate(const std::vector< std::shared_ptr< Model > > &models)
Generates the SSAO texture.
Definition ambient_occlusion.cpp:144
AmbientOcclusion(Camera *cam)
Constructor.
Definition ambient_occlusion.cpp:56
unsigned int ssao_texture() const
Returns the generated SSAO texture ID.
Definition ambient_occlusion.cpp:159
float radius() const
Returns the sample radius.
Definition ambient_occlusion.h:70
void set_radius(float r)
Sets the sample radius (in pixels). Typical value is in range [0, 4].
Definition ambient_occlusion.h:65
void set_bias(float b)
Sets the bias. Default value is 0.005.
Definition ambient_occlusion.h:76
virtual ~AmbientOcclusion()
Destructor.
Definition ambient_occlusion.cpp:67
float bias() const
Returns the bias.
Definition ambient_occlusion.h:81
A perspective or orthographic camera.
Definition camera.h:113
An implementation of framebuffer object (FBO).
Definition framebuffer_object.h:122
The base class of renderable 3D models.
Definition model.h:50
Definition collider.cpp:182