first commit

This commit is contained in:
Leonid Pershin
2026-05-07 21:38:27 +03:00
commit 84fb173ea8
3949 changed files with 564326 additions and 0 deletions
@@ -0,0 +1,43 @@
float GetApproxDistance(float depth) {
return near * far / (far - depth * far);
}
vec2 DoRefraction(inout vec3 color, inout float z0, inout float z1, vec3 viewPos, float lViewPos) {
// Prep
if (int(texelFetch(colortex6, texelCoord, 0).g * 255.1) != 241) return texCoord.xy;
float fovScale = gbufferProjection[1][1];
vec3 playerPos = ViewToPlayer(viewPos.xyz);
vec3 worldPos = playerPos.xyz + cameraPosition.xyz;
vec2 worldPosRM = worldPos.xz * 0.02 + worldPos.y * 0.01 + 0.01 * frameTimeCounter;
vec2 refractNoise = texture2DLod(noisetex, worldPosRM, 0.0).rb - vec2(0.5);
refractNoise *= WATER_REFRACTION_INTENSITY * fovScale / (3.0 + lViewPos);
#if WATER_STYLE < 3
refractNoise *= 0.015;
#else
refractNoise *= 0.02;
#endif
// Check
float approxDif = GetApproxDistance(z1) - GetApproxDistance(z0);
refractNoise *= clamp(approxDif, 0.0, 1.0);
vec2 refractCoord = texCoord.xy + refractNoise;
if (int(texture2D(colortex6, refractCoord).g * 255.1) != 241) return texCoord.xy;
float z0check = texture2D(depthtex0, refractCoord).r;
float z1check = texture2D(depthtex1, refractCoord).r;
float approxDifCheck = GetApproxDistance(z1check) - GetApproxDistance(z0check);
refractNoise *= clamp(approxDifCheck, 0.0, 1.0);
// Sample
refractCoord = texCoord.xy + refractNoise;
color = texture2D(colortex0, refractCoord).rgb;
z0 = texture2D(depthtex0, refractCoord).r;
z1 = texture2D(depthtex1, refractCoord).r;
return refractCoord;
}