summaryrefslogtreecommitdiffstats
path: root/cwd/assets/altcraft/shaders
diff options
context:
space:
mode:
Diffstat (limited to 'cwd/assets/altcraft/shaders')
-rw-r--r--cwd/assets/altcraft/shaders/frag/face.fs3
-rw-r--r--cwd/assets/altcraft/shaders/frag/light.fs2
-rw-r--r--cwd/assets/altcraft/shaders/frag/ssao.fs4
-rw-r--r--cwd/assets/altcraft/shaders/vert/face.vs3
4 files changed, 9 insertions, 3 deletions
diff --git a/cwd/assets/altcraft/shaders/frag/face.fs b/cwd/assets/altcraft/shaders/frag/face.fs
index f8b795f..f9af02c 100644
--- a/cwd/assets/altcraft/shaders/frag/face.fs
+++ b/cwd/assets/altcraft/shaders/frag/face.fs
@@ -4,6 +4,7 @@ in vec3 faceTextureUv;
in vec3 faceAddColor;
in vec3 faceNormal;
in vec2 faceLight;
+in float faceAmbientOcclusion;
layout (location = 0) out vec4 color;
layout (location = 1) out vec4 normal;
@@ -18,5 +19,5 @@ void main() {
color = vec4(col.rgb * faceAddColor.rgb, 1.0f);
normal = vec4(faceNormal, 1.0f);
- light = vec4(faceLight / 15.0f, 0.0f, 1.0f);
+ light = vec4(faceLight / 15.0f, faceAmbientOcclusion, 1.0f);
}
diff --git a/cwd/assets/altcraft/shaders/frag/light.fs b/cwd/assets/altcraft/shaders/frag/light.fs
index aa9e04e..a0cda02 100644
--- a/cwd/assets/altcraft/shaders/frag/light.fs
+++ b/cwd/assets/altcraft/shaders/frag/light.fs
@@ -71,7 +71,7 @@ void main() {
fragColor = vec4(0.5f);
break;
case 5:
- fragColor = l;
+ fragColor = vec4(l.r, l.g, 1.0f - l.b, 1.0f);
break;
case 6:
fragColor = vec4(vec3(d), 1.0f);
diff --git a/cwd/assets/altcraft/shaders/frag/ssao.fs b/cwd/assets/altcraft/shaders/frag/ssao.fs
index 0e49c0b..1c9db1f 100644
--- a/cwd/assets/altcraft/shaders/frag/ssao.fs
+++ b/cwd/assets/altcraft/shaders/frag/ssao.fs
@@ -5,6 +5,7 @@ out vec4 fragColor;
in vec2 uv;
uniform sampler2D normal;
+uniform sampler2D light;
uniform sampler2D depthStencil;
uniform sampler2D ssaoNoise;
@@ -57,7 +58,8 @@ void main() {
float sampleDepth = RecoverViewWorldPos(offset.xy, texture(depthStencil, offset.xy).r).z;
float rangeCheck = smoothstep(0.0, 1.0, radius / abs(fragPos.z - sampleDepth));
- occlusion += (sampleDepth >= samplePos.z + bias ? 1.0 : 0.0) * rangeCheck;
+ float aoMask = texture(light, offset.xy).b;
+ occlusion += (sampleDepth >= samplePos.z + bias ? 1.0 : 0.0) * rangeCheck * aoMask;
}
occlusion = 1.0f - (occlusion / samples);
diff --git a/cwd/assets/altcraft/shaders/vert/face.vs b/cwd/assets/altcraft/shaders/vert/face.vs
index 3e6adf7..d3caf32 100644
--- a/cwd/assets/altcraft/shaders/vert/face.vs
+++ b/cwd/assets/altcraft/shaders/vert/face.vs
@@ -7,11 +7,13 @@ in float uvLayer;
in float animation;
in vec3 color;
in vec2 light;
+in float ambientOcclusion;
out vec3 faceTextureUv;
out vec3 faceNormal;
out vec3 faceAddColor;
out vec2 faceLight;
+out float faceAmbientOcclusion;
layout (std140) uniform Globals {
mat4 projView;
@@ -34,4 +36,5 @@ void main() {
faceNormal = (view * vec4(normal, 0.0f)).xyz;
faceAddColor = color;
faceLight = light;
+ faceAmbientOcclusion = ambientOcclusion;
}