2024-09-19 21:33:32 +01:00
|
|
|
#version 330 core
|
|
|
|
|
|
|
|
|
|
uniform sampler2D diffuseMap;
|
|
|
|
|
uniform vec2 textureTiling;
|
|
|
|
|
|
|
|
|
|
in vec2 fragTexCoord;
|
|
|
|
|
in vec2 fragTexCoord2;
|
|
|
|
|
in vec4 fragColor;
|
2024-12-23 18:45:07 +00:00
|
|
|
flat in int ambientOcclusionSide1;
|
|
|
|
|
flat in int ambientOcclusionSide2;
|
|
|
|
|
flat in int ambientOcclusionCorner1;
|
|
|
|
|
flat in int ambientOcclusionCorner2;
|
|
|
|
|
flat in int ambientOcclusionCorner3;
|
|
|
|
|
flat in int quadHeight;
|
|
|
|
|
flat in int quadWidth;
|
2024-09-19 21:33:32 +01:00
|
|
|
|
|
|
|
|
out vec4 outColor;
|
|
|
|
|
|
|
|
|
|
void main()
|
|
|
|
|
{
|
|
|
|
|
vec2 texCoord = (floor(fragTexCoord*textureTiling) + fract(fragTexCoord2)) / textureTiling;
|
|
|
|
|
outColor = texture(diffuseMap, texCoord);
|
2024-12-23 18:45:07 +00:00
|
|
|
|
|
|
|
|
ivec2 floorFragTexCoord2 = ivec2(fragTexCoord2);
|
|
|
|
|
if ((fragTexCoord2.x < 0.05 || fragTexCoord2.x > quadWidth-0.05) && (((ambientOcclusionSide1 >> floorFragTexCoord2.y) & 1) == 1)) outColor *= 0.5;
|
|
|
|
|
else if((fragTexCoord2.y < 0.05 || fragTexCoord2.y > quadHeight-0.05) && (((ambientOcclusionSide2 >> floorFragTexCoord2.y) & 1) == 1)) outColor *= 0.5;
|
|
|
|
|
|
|
|
|
|
outColor.a = 1;
|
2024-09-19 21:33:32 +01:00
|
|
|
}
|