this shit is finally working

This commit is contained in:
catangent 2025-07-03 14:11:35 +01:00
parent f1dcc0f1b5
commit b781938559
5 changed files with 107 additions and 82 deletions

View file

@ -6,11 +6,12 @@ uniform vec2 textureTiling;
in vec2 fragTexCoord;
in vec3 fragNormal;
in vec2 fragTileTexCoord;
flat in int ambientOcclusionSide1;
flat in int ambientOcclusionSide2;
flat in int ambientOcclusionCorner1;
flat in int ambientOcclusionCorner2;
flat in int ambientOcclusionCorner3;
flat in uvec4 occlusionSides;
flat in int topLeftObscured;
flat in int topRightObscured;
flat in int bottomLeftObscured;
flat in int bottomRightObscured;
flat in int quadHeight;
flat in int quadWidth;
@ -32,12 +33,23 @@ void main()
ivec2 floorFragTileTexCoord = ivec2(fragTileTexCoord);
if(fragTileTexCoord.x < 1 && (((ambientOcclusionSide1 >> floorFragTileTexCoord.y) & 1) == 1)) outColor *= 0.5 + fakeArcsin(fragTileTexCoord.x);
//if(fragTileTexCoord.x < 1 && (int(occlusionSides.x >> floorFragTileTexCoord.x) & 1) == 1) {
//if(fragTileTexCoord.x < 1 && (occlusionSides.x & uint(0x20000000)) > uint(0)) {
//if(fragTileTexCoord.x < 1 && (occlusionSides.x & uint(0x40000000)) > uint(0)) {
//if(fragTileTexCoord.x < 1 && (occlusionSides.x & uint(0x10000000)) > uint(0)) {
//if ((fragTileTexCoord.x < 1) && (occlusionSides.x > uint(0))) {
// if(fragTileTexCoord.x < 0.125 && fragTileTexCoord.x < fract(fragTileTexCoord.y) && fragTileTexCoord.x + fract(fragTileTexCoord.y) < 1.0 && ((ambientOcclusionSide1 >> floorFragTileTexCoord.y) & 1) == 1) outColor *= 0.5;
//if((fragTileTexCoord.x < 0.25 || fragTileTexCoord.x > quadWidth-0.25) && (((ambientOcclusionSide1 >> floorFragTileTexCoord.y) & 1) == 1)) outColor *= 0.5;
//if((fragTileTexCoord.y < 0.25 || fragTileTexCoord.y > quadHeight-0.25) && (((ambientOcclusionSide2 >> floorFragTileTexCoord.y) & 1) == 1)) outColor *= 0.5;
if(fragTileTexCoord.x < 1 && ((occlusionSides.x >> floorFragTileTexCoord.x) & uint(1)) == uint(1)) {
outColor *= 0.5 + fakeArcsin(fragTileTexCoord.x);
}
outColor.a = 1;
outColor.r = occlusionSides.x > uint(0) ? 1.0 : 0.0;
//outColor.g = ((occlusionSides.x & uint(0x01000000)) > uint(0)) ? 1.0 : 0.0;
uint bit = uint(fragTileTexCoord * 32);
outColor.g = (((occlusionSides.x >> bit) & uint(1)) == uint(1)) ?
((bit % uint(2) == uint(0)) ? 1.0 : 0.8):
((bit % uint(2) == uint(0)) ? 0.0 : 0.2);
}