Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl')
-rw-r--r--source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl15
1 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl
index f3eea9869e5..4721b9f0132 100644
--- a/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl
+++ b/source/blender/gpu/shaders/material/gpu_shader_material_ambient_occlusion.glsl
@@ -1,19 +1,24 @@
#ifndef VOLUMETRICS
-void node_ambient_occlusion(
- vec4 color, float distance, vec3 normal, out vec4 result_color, out float result_ao)
+void node_ambient_occlusion(vec4 color,
+ float dist,
+ vec3 normal,
+ const float inverted,
+ out vec4 result_color,
+ out float result_ao)
{
vec3 bent_normal;
vec4 rand = texelfetch_noise_tex(gl_FragCoord.xy);
- OcclusionData data = occlusion_load(viewPosition, 1.0);
+ OcclusionData data = occlusion_search(viewPosition, maxzBuffer, dist, inverted, 8.0);
vec3 V = cameraVec;
vec3 N = normalize(normal);
vec3 Ng = safe_normalize(cross(dFdx(worldPosition), dFdy(worldPosition)));
- result_ao = diffuse_occlusion(data, V, N, Ng);
+ vec3 unused;
+ occlusion_eval(data, V, N, Ng, inverted, result_ao, unused);
result_color = result_ao * color;
}
#else
/* Stub ambient occlusion because it is not compatible with volumetrics. */
-# define node_ambient_occlusion(a, b, c, d, e) (e = CLOSURE_DEFAULT)
+# define node_ambient_occlusion(a, b, c, d, e, f) (e = vec4(0); f = 0.0)
#endif