X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fambientocclusion.h;h=419189942fad13e4b48b9223ef09bce0dc214233;hp=6c2c5d7eea938daa6be0e6e5ce2387dd2a361660;hb=HEAD;hpb=860aec7bfaabbad139d27dd7f4738984276e6676 diff --git a/source/ambientocclusion.h b/source/ambientocclusion.h deleted file mode 100644 index 6c2c5d7e..00000000 --- a/source/ambientocclusion.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef MSP_GL_AMBIENTOCCLUSION_H_ -#define MSP_GL_AMBIENTOCCLUSION_H_ - -#include "framebuffer.h" -#include "mesh.h" -#include "postprocessor.h" -#include "program.h" -#include "programdata.h" -#include "rendertarget.h" -#include "texture2d.h" -#include "texturing.h" - -namespace Msp { -namespace GL { - -/** -Implements screen-space ambient occlusion. - -http://en.wikipedia.org/wiki/Screen_Space_Ambient_Occlusion -*/ -class AmbientOcclusion: public PostProcessor -{ -public: - struct Template: PostProcessor::Template - { - class Loader: public DataFile::DerivedObjectLoader - { - public: - Loader(Template &); - }; - - unsigned n_samples; - float occlusion_radius; - float darkness; - float edge_depth_threshold; - - Template(); - - virtual AmbientOcclusion *create(unsigned, unsigned) const; - }; - -private: - Texture2D rotate_lookup; - RenderTarget occlude_target; - Texturing texturing; - Program occlude_shader; - Program combine_shader; - mutable ProgramData shdata; - RefPtr quad; - RefPtr linear_sampler; - RefPtr nearest_sampler; - -public: - AmbientOcclusion(unsigned, unsigned, float = 1.0f); - -private: - static float random(unsigned &); - -public: - void set_n_samples(unsigned); - void set_occlusion_radius(float); - void set_edge_depth_threshold(float); - - void set_darkness(float); - - virtual void render(Renderer &, const Texture2D &, const Texture2D &); -}; - -} // namespace GL -} // namespace Msp - -#endif