X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=builtin_data%2F_ambientocclusion.glsl;h=81aac182acb4683412d429d7d33b58938bdd1722;hb=e6bb00e2d6b817b81a555b6cbebe3ba4ec28cf80;hp=89d13357b67404dd5f06c180541d5723f372a34b;hpb=9a63244c1342337915c4610401a24c09fa72cc3d;p=libs%2Fgl.git diff --git a/builtin_data/_ambientocclusion.glsl b/builtin_data/_ambientocclusion.glsl index 89d13357..81aac182 100644 --- a/builtin_data/_ambientocclusion.glsl +++ b/builtin_data/_ambientocclusion.glsl @@ -1,13 +1,19 @@ const int max_samples = 32; -uniform mat4 projection_matrix; +uniform CameraTransform +{ + mat4 eye_world_matrix; + mat4 world_eye_matrix; + mat4 clip_eye_matrix; + mat4 eye_clip_matrix; +}; +uniform sampler2D source; uniform sampler2D depth; uniform sampler2D occlusion; uniform sampler2D rotate; uniform AmbientOcclusionParams { - mat4 inverse_projection; float darkness; vec3 sample_points[max_samples]; int n_samples; @@ -20,12 +26,12 @@ vec3 project(vec3 position) { if(position.z>=0.0) return vec3(0.0, 0.0, -1.0); - vec4 pp = projection_matrix*vec4(position, 1.0); + vec4 pp = clip_eye_matrix*vec4(position, 1.0); return pp.xyz/pp.w; } vec3 unproject(vec3 position) { - vec4 upp = inverse_projection*vec4(position, 1.0); + vec4 upp = eye_clip_matrix*vec4(position, 1.0); return upp.xyz/upp.w; }