X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Fambientocclusion.h;h=efaa2f378b2be66282648d2855f602fcc1a59071;hp=61d4d4f3e44a48daf94468d684d26f14e4b19ba5;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hpb=f4e0bcd917fd4270100e219c5fba7af185060111 diff --git a/source/effects/ambientocclusion.h b/source/effects/ambientocclusion.h index 61d4d4f3..efaa2f37 100644 --- a/source/effects/ambientocclusion.h +++ b/source/effects/ambientocclusion.h @@ -1,17 +1,15 @@ #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" namespace Msp { namespace GL { +class Program; + /** Implements screen-space ambient occlusion. @@ -28,12 +26,10 @@ public: Loader(Template &); }; - unsigned n_samples; - float occlusion_radius; - float darkness; - float edge_depth_threshold; - - Template(); + unsigned n_samples = 16; + float occlusion_radius = 0.5f; + float darkness = 1.0f; + float edge_depth_threshold = 0.1f; virtual AmbientOcclusion *create(unsigned, unsigned) const; }; @@ -54,7 +50,7 @@ public: private: static const Texture2D &get_or_create_rotate_lookup(); - static float random(unsigned &); + static float radical_inverse(unsigned); public: void set_n_samples(unsigned); @@ -64,6 +60,8 @@ public: void set_darkness(float); virtual void render(Renderer &, const Texture2D &, const Texture2D &); + + virtual void set_debug_name(const std::string &); }; } // namespace GL