Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------
- Separator
- -------------
- 2025-11-15 07:39:43: WARNING[Main]: Irrlicht: SDL_PollEvent took too long: 55ms
- 2025-11-15 07:39:43: WARNING[Main]: Irrlicht: SDL_PollEvent took too long: 324ms
- 2025-11-15 07:39:45: WARNING[ServerStart]: Undeclared global variable "screwdriver" accessed at ...ation Support/minetest/mods/church/church_cross/init.lua:1
- 2025-11-15 07:39:45: WARNING[ServerStart]: Field "alpha" on node church_candles:busybees is obsolete, only limited compatibility provided; replaced by "use_texture_alpha". (at /Users/sfence/Library/Application Support/minetest/mods/church/church_candles/hive.lua:231)
- 2025-11-15 07:39:45: WARNING[ServerStart]: Field "use_texture_alpha" on node church_candles:honey_jar: Boolean values are deprecated; use the new choices instead. (at /Users/sfence/Library/Application Support/minetest/mods/church/church_candles/hive.lua:275)
- 2025-11-15 07:39:45: ACTION[ServerStart]: World at [/Users/sfence/Library/Application Support/minetest/worlds/church]
- 2025-11-15 07:39:45: ACTION[ServerStart]: Server for gameid="minetest" listening on 127.0.0.1:57782.
- 2025-11-15 07:39:46: ERROR[Main]: Irrlicht: GLSL shader failed to compile
- 2025-11-15 07:39:46: ERROR[Main]: Irrlicht: ERROR: 0:313: '-' : wrong operand types - no operation '-' exists that takes a left-hand operand of type 'const float' and a right operand of type 'mediump int' (or there is no acceptable conversion)
- ERROR: 0:321: '/' : wrong operand types - no operation '/' exists that takes a left-hand operand of type 'mediump 4-component vector of float' and a right operand of type 'mediump int' (or there is no acceptable conversion)
- ERROR: 0:507: '!=' : wrong operand types - no operation '!=' exists that takes a left-hand operand of type 'in mediump float' and a right operand of type 'const int' (or there is no acceptable conversion)
- ERROR: 0:508: '-' : wrong operand types - no operation '-' exists that takes a left-hand operand of type 'const int' and a right operand of type 'mediump float' (or there is no acceptable conversion)
- ERROR: 0:508: 'max' : no matching overloaded function found
- 2025-11-15 07:39:46: ERROR[Main]: generateShader(): failed to generate shaders for nodes_shader MATERIAL_TYPE=6 USE_ARRAY_TEXTURE=1, addHighLevelShaderMaterial failed.
- 2025-11-15 07:39:46: WARNING[Main]: vertex shader program:
- 2025-11-15 07:39:46: WARNING[Main]: ----------------------------------
- 2025-11-15 07:39:46: WARNING[Main]: 1: #version 300 es
- 2025-11-15 07:39:46: WARNING[Main]: 2: #define CENTROID_ centroid
- 2025-11-15 07:39:46: WARNING[Main]: 3: #define ATTRIBUTE_(n) layout(location = n) in
- 2025-11-15 07:39:46: WARNING[Main]: 4: #define texture2D texture
- 2025-11-15 07:39:46: WARNING[Main]: 5: #define COLORED_SHADOWS 1
- 2025-11-15 07:39:46: WARNING[Main]: 6: #define ENABLE_DITHERING 1
- 2025-11-15 07:39:46: WARNING[Main]: 7: #define ENABLE_DYNAMIC_SHADOWS 1
- 2025-11-15 07:39:46: WARNING[Main]: 8: #define ENABLE_TONE_MAPPING 0
- 2025-11-15 07:39:46: WARNING[Main]: 9: #define ENABLE_WAVING_LEAVES 0
- 2025-11-15 07:39:46: WARNING[Main]: 10: #define ENABLE_WAVING_PLANTS 0
- 2025-11-15 07:39:46: WARNING[Main]: 11: #define ENABLE_WAVING_WATER 0
- 2025-11-15 07:39:46: WARNING[Main]: 12: #define MATERIAL_TYPE 6
- 2025-11-15 07:39:46: WARNING[Main]: 13: #define MATERIAL_WATER_REFLECTIONS 0
- 2025-11-15 07:39:46: WARNING[Main]: 14: #define MATERIAL_WAVING_LIQUID 0
- 2025-11-15 07:39:46: WARNING[Main]: 15: #define POISSON_FILTER 1
- 2025-11-15 07:39:46: WARNING[Main]: 16: #define SHADOW_FILTER 2
- 2025-11-15 07:39:46: WARNING[Main]: 17: #define SOFTSHADOWRADIUS 5.00000
- 2025-11-15 07:39:46: WARNING[Main]: 18: #define TILE_MATERIAL_ALPHA 1
- 2025-11-15 07:39:46: WARNING[Main]: 19: #define TILE_MATERIAL_BASIC 0
- 2025-11-15 07:39:46: WARNING[Main]: 20: #define TILE_MATERIAL_LIQUID_OPAQUE 3
- 2025-11-15 07:39:46: WARNING[Main]: 21: #define TILE_MATERIAL_LIQUID_TRANSPARENT 2
- 2025-11-15 07:39:46: WARNING[Main]: 22: #define TILE_MATERIAL_OPAQUE 6
- 2025-11-15 07:39:46: WARNING[Main]: 23: #define TILE_MATERIAL_PLAIN 10
- 2025-11-15 07:39:46: WARNING[Main]: 24: #define TILE_MATERIAL_PLAIN_ALPHA 11
- 2025-11-15 07:39:46: WARNING[Main]: 25: #define TILE_MATERIAL_WAVING_LEAVES 4
- 2025-11-15 07:39:46: WARNING[Main]: 26: #define TILE_MATERIAL_WAVING_LIQUID_BASIC 7
- 2025-11-15 07:39:46: WARNING[Main]: 27: #define TILE_MATERIAL_WAVING_LIQUID_OPAQUE 9
- 2025-11-15 07:39:46: WARNING[Main]: 28: #define TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT 8
- 2025-11-15 07:39:46: WARNING[Main]: 29: #define TILE_MATERIAL_WAVING_PLANTS 5
- 2025-11-15 07:39:46: WARNING[Main]: 30: #define USE_ARRAY_TEXTURE 1
- 2025-11-15 07:39:46: WARNING[Main]: 31:
- 2025-11-15 07:39:46: WARNING[Main]: 32: precision mediump float;
- 2025-11-15 07:39:46: WARNING[Main]: 33:
- 2025-11-15 07:39:46: WARNING[Main]: 34: uniform highp mat4 mWorldView;
- 2025-11-15 07:39:46: WARNING[Main]: 35: uniform highp mat4 mWorldViewProj;
- 2025-11-15 07:39:46: WARNING[Main]: 36: uniform mediump mat4 mTexture;
- 2025-11-15 07:39:46: WARNING[Main]: 37:
- 2025-11-15 07:39:46: WARNING[Main]: 38: ATTRIBUTE_(0) highp vec4 inVertexPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 39: ATTRIBUTE_(1) mediump vec3 inVertexNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 40: ATTRIBUTE_(2) lowp vec4 inVertexColor;
- 2025-11-15 07:39:46: WARNING[Main]: 41: ATTRIBUTE_(3) mediump float inVertexAux;
- 2025-11-15 07:39:46: WARNING[Main]: 42: ATTRIBUTE_(4) mediump vec2 inTexCoord0;
- 2025-11-15 07:39:46: WARNING[Main]: 43: ATTRIBUTE_(5) mediump vec2 inTexCoord1;
- 2025-11-15 07:39:46: WARNING[Main]: 44: ATTRIBUTE_(6) mediump vec4 inVertexTangent;
- 2025-11-15 07:39:46: WARNING[Main]: 45: ATTRIBUTE_(7) mediump vec4 inVertexBinormal;
- 2025-11-15 07:39:46: WARNING[Main]: 46: #define VARYING_ out
- 2025-11-15 07:39:46: WARNING[Main]: 47: #define inVertexColor (inVertexColor.bgra)
- 2025-11-15 07:39:46: WARNING[Main]: 0: #line 0
- 2025-11-15 07:39:46: WARNING[Main]: 1: uniform mat4 mWorld;
- 2025-11-15 07:39:46: WARNING[Main]: 2: // Color of the light emitted by the sun.
- 2025-11-15 07:39:46: WARNING[Main]: 3: uniform vec3 dayLight;
- 2025-11-15 07:39:46: WARNING[Main]: 4:
- 2025-11-15 07:39:46: WARNING[Main]: 5: // The cameraOffset is the current center of the visible world.
- 2025-11-15 07:39:46: WARNING[Main]: 6: uniform highp vec3 cameraOffset;
- 2025-11-15 07:39:46: WARNING[Main]: 7: uniform float animationTimer;
- 2025-11-15 07:39:46: WARNING[Main]: 8:
- 2025-11-15 07:39:46: WARNING[Main]: 9: VARYING_ vec3 vNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 10: VARYING_ vec3 vPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 11: // World position in the visible world (i.e. relative to the cameraOffset.)
- 2025-11-15 07:39:46: WARNING[Main]: 12: // This can be used for many shader effects without loss of precision.
- 2025-11-15 07:39:46: WARNING[Main]: 13: // If the absolute position is required it can be calculated with
- 2025-11-15 07:39:46: WARNING[Main]: 14: // cameraOffset + worldPosition (for large coordinates the limits of float
- 2025-11-15 07:39:46: WARNING[Main]: 15: // precision must be considered).
- 2025-11-15 07:39:46: WARNING[Main]: 16: VARYING_ vec3 worldPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 17: // The centroid keyword ensures that after interpolation the texture coordinates
- 2025-11-15 07:39:46: WARNING[Main]: 18: // lie within the same bounds when MSAA is en- or disabled.
- 2025-11-15 07:39:46: WARNING[Main]: 19: // This fixes the stripes problem with nearest-neighbor textures and MSAA.
- 2025-11-15 07:39:46: WARNING[Main]: 20: CENTROID_ VARYING_ lowp vec4 varColor;
- 2025-11-15 07:39:46: WARNING[Main]: 21: CENTROID_ VARYING_ mediump vec2 varTexCoord;
- 2025-11-15 07:39:46: WARNING[Main]: 22: CENTROID_ VARYING_ float varTexLayer; // actually int
- 2025-11-15 07:39:46: WARNING[Main]: 23: CENTROID_ VARYING_ float nightRatio;
- 2025-11-15 07:39:46: WARNING[Main]: 24:
- 2025-11-15 07:39:46: WARNING[Main]: 25: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 26: // shadow uniforms
- 2025-11-15 07:39:46: WARNING[Main]: 27: uniform vec3 v_LightDirection;
- 2025-11-15 07:39:46: WARNING[Main]: 28: uniform float f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 29: uniform mat4 m_ShadowViewProj;
- 2025-11-15 07:39:46: WARNING[Main]: 30: uniform float f_shadowfar;
- 2025-11-15 07:39:46: WARNING[Main]: 31: uniform float f_shadow_strength;
- 2025-11-15 07:39:46: WARNING[Main]: 32: uniform float f_timeofday;
- 2025-11-15 07:39:46: WARNING[Main]: 33: uniform vec4 CameraPos;
- 2025-11-15 07:39:46: WARNING[Main]: 34:
- 2025-11-15 07:39:46: WARNING[Main]: 35: VARYING_ float cosLight;
- 2025-11-15 07:39:46: WARNING[Main]: 36: VARYING_ float normalOffsetScale;
- 2025-11-15 07:39:46: WARNING[Main]: 37: VARYING_ float adj_shadow_strength;
- 2025-11-15 07:39:46: WARNING[Main]: 38: VARYING_ float f_normal_length;
- 2025-11-15 07:39:46: WARNING[Main]: 39: VARYING_ vec3 shadow_position;
- 2025-11-15 07:39:46: WARNING[Main]: 40: VARYING_ float perspective_factor;
- 2025-11-15 07:39:46: WARNING[Main]: 41: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 42:
- 2025-11-15 07:39:46: WARNING[Main]: 43: VARYING_ highp vec3 eyeVec;
- 2025-11-15 07:39:46: WARNING[Main]: 44: // Color of the light emitted by the light sources.
- 2025-11-15 07:39:46: WARNING[Main]: 45: const vec3 artificialLight = vec3(1.04, 1.04, 1.04);
- 2025-11-15 07:39:46: WARNING[Main]: 46: const float e = 2.718281828459;
- 2025-11-15 07:39:46: WARNING[Main]: 47: const float BS = 10.0;
- 2025-11-15 07:39:46: WARNING[Main]: 48: uniform float xyPerspectiveBias0;
- 2025-11-15 07:39:46: WARNING[Main]: 49: uniform float xyPerspectiveBias1;
- 2025-11-15 07:39:46: WARNING[Main]: 50: uniform float zPerspectiveBias;
- 2025-11-15 07:39:46: WARNING[Main]: 51:
- 2025-11-15 07:39:46: WARNING[Main]: 52: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 53:
- 2025-11-15 07:39:46: WARNING[Main]: 54: vec4 getRelativePosition(in vec4 position)
- 2025-11-15 07:39:46: WARNING[Main]: 55: {
- 2025-11-15 07:39:46: WARNING[Main]: 56: vec2 l = position.xy - CameraPos.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 57: vec2 s = l / abs(l);
- 2025-11-15 07:39:46: WARNING[Main]: 58: s = (1.0 - s * CameraPos.xy);
- 2025-11-15 07:39:46: WARNING[Main]: 59: l /= s;
- 2025-11-15 07:39:46: WARNING[Main]: 60: return vec4(l, s);
- 2025-11-15 07:39:46: WARNING[Main]: 61: }
- 2025-11-15 07:39:46: WARNING[Main]: 62:
- 2025-11-15 07:39:46: WARNING[Main]: 63: float getPerspectiveFactor(in vec4 relativePosition)
- 2025-11-15 07:39:46: WARNING[Main]: 64: {
- 2025-11-15 07:39:46: WARNING[Main]: 65: float pDistance = length(relativePosition.xy);
- 2025-11-15 07:39:46: WARNING[Main]: 66: float pFactor = pDistance * xyPerspectiveBias0 + xyPerspectiveBias1;
- 2025-11-15 07:39:46: WARNING[Main]: 67: return pFactor;
- 2025-11-15 07:39:46: WARNING[Main]: 68: }
- 2025-11-15 07:39:46: WARNING[Main]: 69:
- 2025-11-15 07:39:46: WARNING[Main]: 70: vec4 applyPerspectiveDistortion(in vec4 position)
- 2025-11-15 07:39:46: WARNING[Main]: 71: {
- 2025-11-15 07:39:46: WARNING[Main]: 72: vec4 l = getRelativePosition(position);
- 2025-11-15 07:39:46: WARNING[Main]: 73: float pFactor = getPerspectiveFactor(l);
- 2025-11-15 07:39:46: WARNING[Main]: 74: l.xy /= pFactor;
- 2025-11-15 07:39:46: WARNING[Main]: 75: position.xy = l.xy * l.zw + CameraPos.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 76: position.z *= zPerspectiveBias;
- 2025-11-15 07:39:46: WARNING[Main]: 77: return position;
- 2025-11-15 07:39:46: WARNING[Main]: 78: }
- 2025-11-15 07:39:46: WARNING[Main]: 79:
- 2025-11-15 07:39:46: WARNING[Main]: 80: // custom smoothstep implementation because it's not defined in glsl1.2
- 2025-11-15 07:39:46: WARNING[Main]: 81: // https://docs.gl/sl4/smoothstep
- 2025-11-15 07:39:46: WARNING[Main]: 82: float mtsmoothstep(in float edge0, in float edge1, in float x)
- 2025-11-15 07:39:46: WARNING[Main]: 83: {
- 2025-11-15 07:39:46: WARNING[Main]: 84: float t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 85: return t * t * (3.0 - 2.0 * t);
- 2025-11-15 07:39:46: WARNING[Main]: 86: }
- 2025-11-15 07:39:46: WARNING[Main]: 87: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 88:
- 2025-11-15 07:39:46: WARNING[Main]: 89:
- 2025-11-15 07:39:46: WARNING[Main]: 90: float smoothCurve(float x)
- 2025-11-15 07:39:46: WARNING[Main]: 91: {
- 2025-11-15 07:39:46: WARNING[Main]: 92: return x * x * (3.0 - 2.0 * x);
- 2025-11-15 07:39:46: WARNING[Main]: 93: }
- 2025-11-15 07:39:46: WARNING[Main]: 94:
- 2025-11-15 07:39:46: WARNING[Main]: 95:
- 2025-11-15 07:39:46: WARNING[Main]: 96: float triangleWave(float x)
- 2025-11-15 07:39:46: WARNING[Main]: 97: {
- 2025-11-15 07:39:46: WARNING[Main]: 98: return abs(fract(x + 0.5) * 2.0 - 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 99: }
- 2025-11-15 07:39:46: WARNING[Main]: 100:
- 2025-11-15 07:39:46: WARNING[Main]: 101:
- 2025-11-15 07:39:46: WARNING[Main]: 102: float smoothTriangleWave(float x)
- 2025-11-15 07:39:46: WARNING[Main]: 103: {
- 2025-11-15 07:39:46: WARNING[Main]: 104: return smoothCurve(triangleWave(x)) * 2.0 - 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 105: }
- 2025-11-15 07:39:46: WARNING[Main]: 106:
- 2025-11-15 07:39:46: WARNING[Main]: 107: #if MATERIAL_WAVING_LIQUID && ENABLE_WAVING_WATER
- 2025-11-15 07:39:46: WARNING[Main]: 108:
- 2025-11-15 07:39:46: WARNING[Main]: 109: //
- 2025-11-15 07:39:46: WARNING[Main]: 110: // Simple, fast noise function.
- 2025-11-15 07:39:46: WARNING[Main]: 111: // See: https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83
- 2025-11-15 07:39:46: WARNING[Main]: 112: //
- 2025-11-15 07:39:46: WARNING[Main]: 113: vec4 perm(vec4 x)
- 2025-11-15 07:39:46: WARNING[Main]: 114: {
- 2025-11-15 07:39:46: WARNING[Main]: 115: return mod(((x * 34.0) + 1.0) * x, 289.0);
- 2025-11-15 07:39:46: WARNING[Main]: 116: }
- 2025-11-15 07:39:46: WARNING[Main]: 117:
- 2025-11-15 07:39:46: WARNING[Main]: 118: float snoise(vec3 p)
- 2025-11-15 07:39:46: WARNING[Main]: 119: {
- 2025-11-15 07:39:46: WARNING[Main]: 120: vec3 a = floor(p);
- 2025-11-15 07:39:46: WARNING[Main]: 121: vec3 d = p - a;
- 2025-11-15 07:39:46: WARNING[Main]: 122: d = d * d * (3.0 - 2.0 * d);
- 2025-11-15 07:39:46: WARNING[Main]: 123:
- 2025-11-15 07:39:46: WARNING[Main]: 124: vec4 b = a.xxyy + vec4(0.0, 1.0, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 125: vec4 k1 = perm(b.xyxy);
- 2025-11-15 07:39:46: WARNING[Main]: 126: vec4 k2 = perm(k1.xyxy + b.zzww);
- 2025-11-15 07:39:46: WARNING[Main]: 127:
- 2025-11-15 07:39:46: WARNING[Main]: 128: vec4 c = k2 + a.zzzz;
- 2025-11-15 07:39:46: WARNING[Main]: 129: vec4 k3 = perm(c);
- 2025-11-15 07:39:46: WARNING[Main]: 130: vec4 k4 = perm(c + 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 131:
- 2025-11-15 07:39:46: WARNING[Main]: 132: vec4 o1 = fract(k3 * (1.0 / 41.0));
- 2025-11-15 07:39:46: WARNING[Main]: 133: vec4 o2 = fract(k4 * (1.0 / 41.0));
- 2025-11-15 07:39:46: WARNING[Main]: 134:
- 2025-11-15 07:39:46: WARNING[Main]: 135: vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
- 2025-11-15 07:39:46: WARNING[Main]: 136: vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
- 2025-11-15 07:39:46: WARNING[Main]: 137:
- 2025-11-15 07:39:46: WARNING[Main]: 138: return o4.y * d.y + o4.x * (1.0 - d.y);
- 2025-11-15 07:39:46: WARNING[Main]: 139: }
- 2025-11-15 07:39:46: WARNING[Main]: 140:
- 2025-11-15 07:39:46: WARNING[Main]: 141: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 142:
- 2025-11-15 07:39:46: WARNING[Main]: 143:
- 2025-11-15 07:39:46: WARNING[Main]: 144:
- 2025-11-15 07:39:46: WARNING[Main]: 145:
- 2025-11-15 07:39:46: WARNING[Main]: 146: void main(void)
- 2025-11-15 07:39:46: WARNING[Main]: 147: {
- 2025-11-15 07:39:46: WARNING[Main]: 148: #ifdef USE_ARRAY_TEXTURE
- 2025-11-15 07:39:46: WARNING[Main]: 149: varTexLayer = inVertexAux;
- 2025-11-15 07:39:46: WARNING[Main]: 150: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 151: varTexCoord = inTexCoord0.st;
- 2025-11-15 07:39:46: WARNING[Main]: 152:
- 2025-11-15 07:39:46: WARNING[Main]: 153: float disp_x;
- 2025-11-15 07:39:46: WARNING[Main]: 154: float disp_z;
- 2025-11-15 07:39:46: WARNING[Main]: 155: // OpenGL < 4.3 does not support continued preprocessor lines
- 2025-11-15 07:39:46: WARNING[Main]: 156: #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES) || (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS)
- 2025-11-15 07:39:46: WARNING[Main]: 157: vec4 pos2 = mWorld * inVertexPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 158: float tOffset = (pos2.x + pos2.y) * 0.001 + pos2.z * 0.002;
- 2025-11-15 07:39:46: WARNING[Main]: 159: disp_x = (smoothTriangleWave(animationTimer * 23.0 + tOffset) +
- 2025-11-15 07:39:46: WARNING[Main]: 160: smoothTriangleWave(animationTimer * 11.0 + tOffset)) * 0.4;
- 2025-11-15 07:39:46: WARNING[Main]: 161: disp_z = (smoothTriangleWave(animationTimer * 31.0 + tOffset) +
- 2025-11-15 07:39:46: WARNING[Main]: 162: smoothTriangleWave(animationTimer * 29.0 + tOffset) +
- 2025-11-15 07:39:46: WARNING[Main]: 163: smoothTriangleWave(animationTimer * 13.0 + tOffset)) * 0.5;
- 2025-11-15 07:39:46: WARNING[Main]: 164: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 165:
- 2025-11-15 07:39:46: WARNING[Main]: 166: vec4 pos = inVertexPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 167: #if MATERIAL_WAVING_LIQUID && ENABLE_WAVING_WATER
- 2025-11-15 07:39:46: WARNING[Main]: 168: // Generate waves with Perlin-type noise.
- 2025-11-15 07:39:46: WARNING[Main]: 169: // The constants are calibrated such that they roughly
- 2025-11-15 07:39:46: WARNING[Main]: 170: // correspond to the old sine waves.
- 2025-11-15 07:39:46: WARNING[Main]: 171: vec3 wavePos = (mWorld * pos).xyz + cameraOffset;
- 2025-11-15 07:39:46: WARNING[Main]: 172: // The waves are slightly compressed along the z-axis to get
- 2025-11-15 07:39:46: WARNING[Main]: 173: // wave-fronts along the x-axis.
- 2025-11-15 07:39:46: WARNING[Main]: 174: wavePos.x /= WATER_WAVE_LENGTH * 3.0;
- 2025-11-15 07:39:46: WARNING[Main]: 175: wavePos.z /= WATER_WAVE_LENGTH * 2.0;
- 2025-11-15 07:39:46: WARNING[Main]: 176: wavePos.z += animationTimer * WATER_WAVE_SPEED * 10.0;
- 2025-11-15 07:39:46: WARNING[Main]: 177: pos.y += (snoise(wavePos) - 1.0) * WATER_WAVE_HEIGHT * 5.0;
- 2025-11-15 07:39:46: WARNING[Main]: 178: #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES
- 2025-11-15 07:39:46: WARNING[Main]: 179: pos.x += disp_x;
- 2025-11-15 07:39:46: WARNING[Main]: 180: pos.y += disp_z * 0.1;
- 2025-11-15 07:39:46: WARNING[Main]: 181: pos.z += disp_z;
- 2025-11-15 07:39:46: WARNING[Main]: 182: #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS
- 2025-11-15 07:39:46: WARNING[Main]: 183: // bottom of plant doesn't wave
- 2025-11-15 07:39:46: WARNING[Main]: 184: if (varTexCoord.y < 0.05) {
- 2025-11-15 07:39:46: WARNING[Main]: 185: pos.x += disp_x;
- 2025-11-15 07:39:46: WARNING[Main]: 186: pos.z += disp_z;
- 2025-11-15 07:39:46: WARNING[Main]: 187: }
- 2025-11-15 07:39:46: WARNING[Main]: 188: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 189: worldPosition = (mWorld * pos).xyz;
- 2025-11-15 07:39:46: WARNING[Main]: 190: gl_Position = mWorldViewProj * pos;
- 2025-11-15 07:39:46: WARNING[Main]: 191:
- 2025-11-15 07:39:46: WARNING[Main]: 192: vPosition = gl_Position.xyz;
- 2025-11-15 07:39:46: WARNING[Main]: 193: eyeVec = -(mWorldView * pos).xyz;
- 2025-11-15 07:39:46: WARNING[Main]: 194: #ifdef SECONDSTAGE
- 2025-11-15 07:39:46: WARNING[Main]: 195: normalPass = normalize((inVertexNormal+1)/2);
- 2025-11-15 07:39:46: WARNING[Main]: 196: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 197: vNormal = inVertexNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 198:
- 2025-11-15 07:39:46: WARNING[Main]: 199: // Calculate color.
- 2025-11-15 07:39:46: WARNING[Main]: 200: vec4 color = inVertexColor;
- 2025-11-15 07:39:46: WARNING[Main]: 201: // Red, green and blue components are pre-multiplied with
- 2025-11-15 07:39:46: WARNING[Main]: 202: // the brightness, so now we have to multiply these
- 2025-11-15 07:39:46: WARNING[Main]: 203: // colors with the color of the incoming light.
- 2025-11-15 07:39:46: WARNING[Main]: 204: // The pre-baked colors are halved to prevent overflow.
- 2025-11-15 07:39:46: WARNING[Main]: 205: // The alpha gives the ratio of sunlight in the incoming light.
- 2025-11-15 07:39:46: WARNING[Main]: 206: nightRatio = 1.0 - color.a;
- 2025-11-15 07:39:46: WARNING[Main]: 207: color.rgb = color.rgb * (color.a * dayLight.rgb +
- 2025-11-15 07:39:46: WARNING[Main]: 208: nightRatio * artificialLight.rgb) * 2.0;
- 2025-11-15 07:39:46: WARNING[Main]: 209: color.a = 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 210:
- 2025-11-15 07:39:46: WARNING[Main]: 211: // Emphase blue a bit in darker places
- 2025-11-15 07:39:46: WARNING[Main]: 212: // See C++ implementation in mapblock_mesh.cpp final_color_blend()
- 2025-11-15 07:39:46: WARNING[Main]: 213: float brightness = (color.r + color.g + color.b) / 3.0;
- 2025-11-15 07:39:46: WARNING[Main]: 214: color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) +
- 2025-11-15 07:39:46: WARNING[Main]: 215: 0.07 * brightness);
- 2025-11-15 07:39:46: WARNING[Main]: 216:
- 2025-11-15 07:39:46: WARNING[Main]: 217: varColor = clamp(color, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 218:
- 2025-11-15 07:39:46: WARNING[Main]: 219: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 220: if (f_shadow_strength > 0.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 221: #if MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS
- 2025-11-15 07:39:46: WARNING[Main]: 222: // The shadow shaders don't apply waving when creating the shadow-map.
- 2025-11-15 07:39:46: WARNING[Main]: 223: // We are using the not waved inVertexPosition to avoid ugly self-shadowing.
- 2025-11-15 07:39:46: WARNING[Main]: 224: vec4 shadow_pos = inVertexPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 225: #else
- 2025-11-15 07:39:46: WARNING[Main]: 226: vec4 shadow_pos = pos;
- 2025-11-15 07:39:46: WARNING[Main]: 227: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 228: vec3 nNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 229: f_normal_length = length(vNormal);
- 2025-11-15 07:39:46: WARNING[Main]: 230:
- 2025-11-15 07:39:46: WARNING[Main]: 231: /* normalOffsetScale is in world coordinates (1/10th of a meter)
- 2025-11-15 07:39:46: WARNING[Main]: 232: z_bias is in light space coordinates */
- 2025-11-15 07:39:46: WARNING[Main]: 233: float normalOffsetScale, z_bias;
- 2025-11-15 07:39:46: WARNING[Main]: 234: float pFactor = getPerspectiveFactor(getRelativePosition(m_ShadowViewProj * mWorld * shadow_pos));
- 2025-11-15 07:39:46: WARNING[Main]: 235: if (f_normal_length > 0.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 236: nNormal = normalize(vNormal);
- 2025-11-15 07:39:46: WARNING[Main]: 237: cosLight = max(1e-5, dot(nNormal, -v_LightDirection));
- 2025-11-15 07:39:46: WARNING[Main]: 238: float sinLight = pow(1.0 - pow(cosLight, 2.0), 0.5);
- 2025-11-15 07:39:46: WARNING[Main]: 239: normalOffsetScale = 2.0 * pFactor * pFactor * sinLight * min(f_shadowfar, 500.0) /
- 2025-11-15 07:39:46: WARNING[Main]: 240: xyPerspectiveBias1 / f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 241: z_bias = 1.0 * sinLight / cosLight;
- 2025-11-15 07:39:46: WARNING[Main]: 242: }
- 2025-11-15 07:39:46: WARNING[Main]: 243: else {
- 2025-11-15 07:39:46: WARNING[Main]: 244: nNormal = vec3(0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 245: cosLight = clamp(dot(v_LightDirection, normalize(vec3(v_LightDirection.x, 0.0, v_LightDirection.z))), 1e-2, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 246: float sinLight = pow(1.0 - pow(cosLight, 2.0), 0.5);
- 2025-11-15 07:39:46: WARNING[Main]: 247: normalOffsetScale = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 248: z_bias = 3.6e3 * sinLight / cosLight;
- 2025-11-15 07:39:46: WARNING[Main]: 249: }
- 2025-11-15 07:39:46: WARNING[Main]: 250: z_bias *= pFactor * pFactor / f_textureresolution / f_shadowfar;
- 2025-11-15 07:39:46: WARNING[Main]: 251:
- 2025-11-15 07:39:46: WARNING[Main]: 252: shadow_position = applyPerspectiveDistortion(m_ShadowViewProj * mWorld * (shadow_pos + vec4(normalOffsetScale * nNormal, 0.0))).xyz;
- 2025-11-15 07:39:46: WARNING[Main]: 253: #if !defined(ENABLE_TRANSLUCENT_FOLIAGE) || MATERIAL_TYPE != TILE_MATERIAL_WAVING_LEAVES
- 2025-11-15 07:39:46: WARNING[Main]: 254: shadow_position.z -= z_bias;
- 2025-11-15 07:39:46: WARNING[Main]: 255: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 256: perspective_factor = pFactor;
- 2025-11-15 07:39:46: WARNING[Main]: 257:
- 2025-11-15 07:39:46: WARNING[Main]: 258: if (f_timeofday < 0.2) {
- 2025-11-15 07:39:46: WARNING[Main]: 259: adj_shadow_strength = f_shadow_strength * 0.5 *
- 2025-11-15 07:39:46: WARNING[Main]: 260: (1.0 - mtsmoothstep(0.18, 0.2, f_timeofday));
- 2025-11-15 07:39:46: WARNING[Main]: 261: } else if (f_timeofday >= 0.8) {
- 2025-11-15 07:39:46: WARNING[Main]: 262: adj_shadow_strength = f_shadow_strength * 0.5 *
- 2025-11-15 07:39:46: WARNING[Main]: 263: mtsmoothstep(0.8, 0.83, f_timeofday);
- 2025-11-15 07:39:46: WARNING[Main]: 264: } else {
- 2025-11-15 07:39:46: WARNING[Main]: 265: adj_shadow_strength = f_shadow_strength *
- 2025-11-15 07:39:46: WARNING[Main]: 266: mtsmoothstep(0.20, 0.25, f_timeofday) *
- 2025-11-15 07:39:46: WARNING[Main]: 267: (1.0 - mtsmoothstep(0.7, 0.8, f_timeofday));
- 2025-11-15 07:39:46: WARNING[Main]: 268: }
- 2025-11-15 07:39:46: WARNING[Main]: 269: }
- 2025-11-15 07:39:46: WARNING[Main]: 270: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 271: }
- 2025-11-15 07:39:46: WARNING[Main]: 272:
- 2025-11-15 07:39:46: WARNING[Main]: End of vertex shader program.
- 2025-11-15 07:39:46: WARNING[Main]:
- 2025-11-15 07:39:46: WARNING[Main]: fragment shader program:
- 2025-11-15 07:39:46: WARNING[Main]: ----------------------------------
- 2025-11-15 07:39:46: WARNING[Main]: 1: #version 300 es
- 2025-11-15 07:39:46: WARNING[Main]: 2: #define CENTROID_ centroid
- 2025-11-15 07:39:46: WARNING[Main]: 3: #define ATTRIBUTE_(n) layout(location = n) in
- 2025-11-15 07:39:46: WARNING[Main]: 4: #define texture2D texture
- 2025-11-15 07:39:46: WARNING[Main]: 5: #define COLORED_SHADOWS 1
- 2025-11-15 07:39:46: WARNING[Main]: 6: #define ENABLE_DITHERING 1
- 2025-11-15 07:39:46: WARNING[Main]: 7: #define ENABLE_DYNAMIC_SHADOWS 1
- 2025-11-15 07:39:46: WARNING[Main]: 8: #define ENABLE_TONE_MAPPING 0
- 2025-11-15 07:39:46: WARNING[Main]: 9: #define ENABLE_WAVING_LEAVES 0
- 2025-11-15 07:39:46: WARNING[Main]: 10: #define ENABLE_WAVING_PLANTS 0
- 2025-11-15 07:39:46: WARNING[Main]: 11: #define ENABLE_WAVING_WATER 0
- 2025-11-15 07:39:46: WARNING[Main]: 12: #define MATERIAL_TYPE 6
- 2025-11-15 07:39:46: WARNING[Main]: 13: #define MATERIAL_WATER_REFLECTIONS 0
- 2025-11-15 07:39:46: WARNING[Main]: 14: #define MATERIAL_WAVING_LIQUID 0
- 2025-11-15 07:39:46: WARNING[Main]: 15: #define POISSON_FILTER 1
- 2025-11-15 07:39:46: WARNING[Main]: 16: #define SHADOW_FILTER 2
- 2025-11-15 07:39:46: WARNING[Main]: 17: #define SOFTSHADOWRADIUS 5.00000
- 2025-11-15 07:39:46: WARNING[Main]: 18: #define TILE_MATERIAL_ALPHA 1
- 2025-11-15 07:39:46: WARNING[Main]: 19: #define TILE_MATERIAL_BASIC 0
- 2025-11-15 07:39:46: WARNING[Main]: 20: #define TILE_MATERIAL_LIQUID_OPAQUE 3
- 2025-11-15 07:39:46: WARNING[Main]: 21: #define TILE_MATERIAL_LIQUID_TRANSPARENT 2
- 2025-11-15 07:39:46: WARNING[Main]: 22: #define TILE_MATERIAL_OPAQUE 6
- 2025-11-15 07:39:46: WARNING[Main]: 23: #define TILE_MATERIAL_PLAIN 10
- 2025-11-15 07:39:46: WARNING[Main]: 24: #define TILE_MATERIAL_PLAIN_ALPHA 11
- 2025-11-15 07:39:46: WARNING[Main]: 25: #define TILE_MATERIAL_WAVING_LEAVES 4
- 2025-11-15 07:39:46: WARNING[Main]: 26: #define TILE_MATERIAL_WAVING_LIQUID_BASIC 7
- 2025-11-15 07:39:46: WARNING[Main]: 27: #define TILE_MATERIAL_WAVING_LIQUID_OPAQUE 9
- 2025-11-15 07:39:46: WARNING[Main]: 28: #define TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT 8
- 2025-11-15 07:39:46: WARNING[Main]: 29: #define TILE_MATERIAL_WAVING_PLANTS 5
- 2025-11-15 07:39:46: WARNING[Main]: 30: #define USE_ARRAY_TEXTURE 1
- 2025-11-15 07:39:46: WARNING[Main]: 31:
- 2025-11-15 07:39:46: WARNING[Main]: 32: precision mediump float;
- 2025-11-15 07:39:46: WARNING[Main]: 33: #define VARYING_ in
- 2025-11-15 07:39:46: WARNING[Main]: 34: #define gl_FragColor outFragColor
- 2025-11-15 07:39:46: WARNING[Main]: 35: layout(location = 0) out vec4 outFragColor;
- 2025-11-15 07:39:46: WARNING[Main]: 36: #define baseTexture texture0
- 2025-11-15 07:39:46: WARNING[Main]: 0: #line 0
- 2025-11-15 07:39:46: WARNING[Main]: 1: #ifdef USE_ARRAY_TEXTURE
- 2025-11-15 07:39:46: WARNING[Main]: 2: uniform mediump sampler2DArray baseTexture;
- 2025-11-15 07:39:46: WARNING[Main]: 3: #else
- 2025-11-15 07:39:46: WARNING[Main]: 4: uniform sampler2D baseTexture;
- 2025-11-15 07:39:46: WARNING[Main]: 5: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 6: #define crackTexture texture1
- 2025-11-15 07:39:46: WARNING[Main]: 7: uniform sampler2D crackTexture;
- 2025-11-15 07:39:46: WARNING[Main]: 8:
- 2025-11-15 07:39:46: WARNING[Main]: 9: uniform vec3 dayLight;
- 2025-11-15 07:39:46: WARNING[Main]: 10: uniform lowp vec4 fogColor;
- 2025-11-15 07:39:46: WARNING[Main]: 11: uniform float fogDistance;
- 2025-11-15 07:39:46: WARNING[Main]: 12: uniform float fogShadingParameter;
- 2025-11-15 07:39:46: WARNING[Main]: 13:
- 2025-11-15 07:39:46: WARNING[Main]: 14: // The cameraOffset is the current center of the visible world.
- 2025-11-15 07:39:46: WARNING[Main]: 15: uniform highp vec3 cameraOffset;
- 2025-11-15 07:39:46: WARNING[Main]: 16: uniform vec3 cameraPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 17: uniform float animationTimer;
- 2025-11-15 07:39:46: WARNING[Main]: 18: uniform float crackAnimationLength;
- 2025-11-15 07:39:46: WARNING[Main]: 19: uniform float crackLevel;
- 2025-11-15 07:39:46: WARNING[Main]: 20: uniform float crackTextureScale;
- 2025-11-15 07:39:46: WARNING[Main]: 21:
- 2025-11-15 07:39:46: WARNING[Main]: 22: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 23: // shadow texture
- 2025-11-15 07:39:46: WARNING[Main]: 24: uniform sampler2D ShadowMapSampler;
- 2025-11-15 07:39:46: WARNING[Main]: 25: // shadow uniforms
- 2025-11-15 07:39:46: WARNING[Main]: 26: uniform vec3 v_LightDirection;
- 2025-11-15 07:39:46: WARNING[Main]: 27: uniform float f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 28: uniform mat4 m_ShadowViewProj;
- 2025-11-15 07:39:46: WARNING[Main]: 29: uniform float f_shadowfar;
- 2025-11-15 07:39:46: WARNING[Main]: 30: uniform float f_shadow_strength;
- 2025-11-15 07:39:46: WARNING[Main]: 31: uniform vec4 CameraPos;
- 2025-11-15 07:39:46: WARNING[Main]: 32: uniform float xyPerspectiveBias0;
- 2025-11-15 07:39:46: WARNING[Main]: 33: uniform float xyPerspectiveBias1;
- 2025-11-15 07:39:46: WARNING[Main]: 34: uniform vec3 shadow_tint;
- 2025-11-15 07:39:46: WARNING[Main]: 35:
- 2025-11-15 07:39:46: WARNING[Main]: 36: VARYING_ float adj_shadow_strength;
- 2025-11-15 07:39:46: WARNING[Main]: 37: VARYING_ float cosLight;
- 2025-11-15 07:39:46: WARNING[Main]: 38: VARYING_ float f_normal_length;
- 2025-11-15 07:39:46: WARNING[Main]: 39: VARYING_ vec3 shadow_position;
- 2025-11-15 07:39:46: WARNING[Main]: 40: VARYING_ float perspective_factor;
- 2025-11-15 07:39:46: WARNING[Main]: 41: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 42:
- 2025-11-15 07:39:46: WARNING[Main]: 43:
- 2025-11-15 07:39:46: WARNING[Main]: 44: VARYING_ vec3 vNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 45: VARYING_ vec3 vPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 46: // World position in the visible world (i.e. relative to the cameraOffset.)
- 2025-11-15 07:39:46: WARNING[Main]: 47: // This can be used for many shader effects without loss of precision.
- 2025-11-15 07:39:46: WARNING[Main]: 48: // If the absolute position is required it can be calculated with
- 2025-11-15 07:39:46: WARNING[Main]: 49: // cameraOffset + worldPosition (for large coordinates the limits of float
- 2025-11-15 07:39:46: WARNING[Main]: 50: // precision must be considered).
- 2025-11-15 07:39:46: WARNING[Main]: 51: VARYING_ vec3 worldPosition;
- 2025-11-15 07:39:46: WARNING[Main]: 52: CENTROID_ VARYING_ lowp vec4 varColor;
- 2025-11-15 07:39:46: WARNING[Main]: 53: CENTROID_ VARYING_ mediump vec2 varTexCoord;
- 2025-11-15 07:39:46: WARNING[Main]: 54: CENTROID_ VARYING_ float varTexLayer; // actually int
- 2025-11-15 07:39:46: WARNING[Main]: 55: CENTROID_ VARYING_ float nightRatio;
- 2025-11-15 07:39:46: WARNING[Main]: 56: VARYING_ highp vec3 eyeVec;
- 2025-11-15 07:39:46: WARNING[Main]: 57:
- 2025-11-15 07:39:46: WARNING[Main]: 58: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 59: #if (defined(ENABLE_WATER_REFLECTIONS) && MATERIAL_WATER_REFLECTIONS && ENABLE_WAVING_WATER)
- 2025-11-15 07:39:46: WARNING[Main]: 60: vec4 perm(vec4 x)
- 2025-11-15 07:39:46: WARNING[Main]: 61: {
- 2025-11-15 07:39:46: WARNING[Main]: 62: return mod(((x * 34.0) + 1.0) * x, 289.0);
- 2025-11-15 07:39:46: WARNING[Main]: 63: }
- 2025-11-15 07:39:46: WARNING[Main]: 64:
- 2025-11-15 07:39:46: WARNING[Main]: 65: // Corresponding gradient of snoise
- 2025-11-15 07:39:46: WARNING[Main]: 66: vec3 gnoise(vec3 p){
- 2025-11-15 07:39:46: WARNING[Main]: 67: vec3 a = floor(p);
- 2025-11-15 07:39:46: WARNING[Main]: 68: vec3 d = p - a;
- 2025-11-15 07:39:46: WARNING[Main]: 69: vec3 dd = 6.0 * d * (1.0 - d);
- 2025-11-15 07:39:46: WARNING[Main]: 70: d = d * d * (3.0 - 2.0 * d);
- 2025-11-15 07:39:46: WARNING[Main]: 71:
- 2025-11-15 07:39:46: WARNING[Main]: 72: vec4 b = a.xxyy + vec4(0.0, 1.0, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 73: vec4 k1 = perm(b.xyxy);
- 2025-11-15 07:39:46: WARNING[Main]: 74: vec4 k2 = perm(k1.xyxy + b.zzww);
- 2025-11-15 07:39:46: WARNING[Main]: 75:
- 2025-11-15 07:39:46: WARNING[Main]: 76: vec4 c = k2 + a.zzzz;
- 2025-11-15 07:39:46: WARNING[Main]: 77: vec4 k3 = perm(c);
- 2025-11-15 07:39:46: WARNING[Main]: 78: vec4 k4 = perm(c + 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 79:
- 2025-11-15 07:39:46: WARNING[Main]: 80: vec4 o1 = fract(k3 * (1.0 / 41.0));
- 2025-11-15 07:39:46: WARNING[Main]: 81: vec4 o2 = fract(k4 * (1.0 / 41.0));
- 2025-11-15 07:39:46: WARNING[Main]: 82:
- 2025-11-15 07:39:46: WARNING[Main]: 83: vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
- 2025-11-15 07:39:46: WARNING[Main]: 84: vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
- 2025-11-15 07:39:46: WARNING[Main]: 85:
- 2025-11-15 07:39:46: WARNING[Main]: 86: vec4 dz1 = (o2 - o1) * dd.z;
- 2025-11-15 07:39:46: WARNING[Main]: 87: vec2 dz2 = dz1.yw * d.x + dz1.xz * (1.0 - d.x);
- 2025-11-15 07:39:46: WARNING[Main]: 88:
- 2025-11-15 07:39:46: WARNING[Main]: 89: vec2 dx = (o3.yw - o3.xz) * dd.x;
- 2025-11-15 07:39:46: WARNING[Main]: 90:
- 2025-11-15 07:39:46: WARNING[Main]: 91: return vec3(
- 2025-11-15 07:39:46: WARNING[Main]: 92: dx.y * d.y + dx.x * (1. - d.y),
- 2025-11-15 07:39:46: WARNING[Main]: 93: (o4.y - o4.x) * dd.y,
- 2025-11-15 07:39:46: WARNING[Main]: 94: dz2.y * d.y + dz2.x * (1. - d.y)
- 2025-11-15 07:39:46: WARNING[Main]: 95: );
- 2025-11-15 07:39:46: WARNING[Main]: 96: }
- 2025-11-15 07:39:46: WARNING[Main]: 97:
- 2025-11-15 07:39:46: WARNING[Main]: 98: vec2 wave_noise(vec3 p, float off) {
- 2025-11-15 07:39:46: WARNING[Main]: 99: return (gnoise(p + vec3(0.0, 0.0, off)) * 0.4 + gnoise(2.0 * p + vec3(0.0, off, off)) * 0.2 + gnoise(3.0 * p + vec3(0.0, off, off)) * 0.225 + gnoise(4.0 * p + vec3(-off, off, 0.0)) * 0.2).xz;
- 2025-11-15 07:39:46: WARNING[Main]: 100: }
- 2025-11-15 07:39:46: WARNING[Main]: 101: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 102:
- 2025-11-15 07:39:46: WARNING[Main]: 103: // assuming near is always 1.0
- 2025-11-15 07:39:46: WARNING[Main]: 104: float getLinearDepth()
- 2025-11-15 07:39:46: WARNING[Main]: 105: {
- 2025-11-15 07:39:46: WARNING[Main]: 106: return 2.0 * f_shadowfar / (f_shadowfar + 1.0 - (2.0 * gl_FragCoord.z - 1.0) * (f_shadowfar - 1.0));
- 2025-11-15 07:39:46: WARNING[Main]: 107: }
- 2025-11-15 07:39:46: WARNING[Main]: 108:
- 2025-11-15 07:39:46: WARNING[Main]: 109: vec3 getLightSpacePosition()
- 2025-11-15 07:39:46: WARNING[Main]: 110: {
- 2025-11-15 07:39:46: WARNING[Main]: 111: return shadow_position * 0.5 + 0.5;
- 2025-11-15 07:39:46: WARNING[Main]: 112: }
- 2025-11-15 07:39:46: WARNING[Main]: 113: // custom smoothstep implementation because it's not defined in glsl1.2
- 2025-11-15 07:39:46: WARNING[Main]: 114: // https://docs.gl/sl4/smoothstep
- 2025-11-15 07:39:46: WARNING[Main]: 115: float mtsmoothstep(in float edge0, in float edge1, in float x)
- 2025-11-15 07:39:46: WARNING[Main]: 116: {
- 2025-11-15 07:39:46: WARNING[Main]: 117: float t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 118: return t * t * (3.0 - 2.0 * t);
- 2025-11-15 07:39:46: WARNING[Main]: 119: }
- 2025-11-15 07:39:46: WARNING[Main]: 120:
- 2025-11-15 07:39:46: WARNING[Main]: 121: float shadowCutoff(float x) {
- 2025-11-15 07:39:46: WARNING[Main]: 122: #if defined(ENABLE_TRANSLUCENT_FOLIAGE) && MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES
- 2025-11-15 07:39:46: WARNING[Main]: 123: return mtsmoothstep(0.0, 0.002, x);
- 2025-11-15 07:39:46: WARNING[Main]: 124: #else
- 2025-11-15 07:39:46: WARNING[Main]: 125: return step(0.0, x);
- 2025-11-15 07:39:46: WARNING[Main]: 126: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 127: }
- 2025-11-15 07:39:46: WARNING[Main]: 128:
- 2025-11-15 07:39:46: WARNING[Main]: 129: #ifdef COLORED_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 130:
- 2025-11-15 07:39:46: WARNING[Main]: 131: // c_precision of 128 fits within 7 base-10 digits
- 2025-11-15 07:39:46: WARNING[Main]: 132: const float c_precision = 128.0;
- 2025-11-15 07:39:46: WARNING[Main]: 133: const float c_precisionp1 = c_precision + 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 134:
- 2025-11-15 07:39:46: WARNING[Main]: 135: float packColor(vec3 color)
- 2025-11-15 07:39:46: WARNING[Main]: 136: {
- 2025-11-15 07:39:46: WARNING[Main]: 137: return floor(color.b * c_precision + 0.5)
- 2025-11-15 07:39:46: WARNING[Main]: 138: + floor(color.g * c_precision + 0.5) * c_precisionp1
- 2025-11-15 07:39:46: WARNING[Main]: 139: + floor(color.r * c_precision + 0.5) * c_precisionp1 * c_precisionp1;
- 2025-11-15 07:39:46: WARNING[Main]: 140: }
- 2025-11-15 07:39:46: WARNING[Main]: 141:
- 2025-11-15 07:39:46: WARNING[Main]: 142: vec3 unpackColor(float value)
- 2025-11-15 07:39:46: WARNING[Main]: 143: {
- 2025-11-15 07:39:46: WARNING[Main]: 144: vec3 color;
- 2025-11-15 07:39:46: WARNING[Main]: 145: color.b = mod(value, c_precisionp1) / c_precision;
- 2025-11-15 07:39:46: WARNING[Main]: 146: color.g = mod(floor(value / c_precisionp1), c_precisionp1) / c_precision;
- 2025-11-15 07:39:46: WARNING[Main]: 147: color.r = floor(value / (c_precisionp1 * c_precisionp1)) / c_precision;
- 2025-11-15 07:39:46: WARNING[Main]: 148: return color;
- 2025-11-15 07:39:46: WARNING[Main]: 149: }
- 2025-11-15 07:39:46: WARNING[Main]: 150:
- 2025-11-15 07:39:46: WARNING[Main]: 151: vec4 getHardShadowColor(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 152: {
- 2025-11-15 07:39:46: WARNING[Main]: 153: vec4 texDepth = texture2D(shadowsampler, smTexCoord.xy).rgba;
- 2025-11-15 07:39:46: WARNING[Main]: 154:
- 2025-11-15 07:39:46: WARNING[Main]: 155: float visibility = shadowCutoff(realDistance - texDepth.r);
- 2025-11-15 07:39:46: WARNING[Main]: 156: vec4 result = vec4(visibility, vec3(0.0,0.0,0.0));//unpackColor(texDepth.g));
- 2025-11-15 07:39:46: WARNING[Main]: 157: if (visibility < 0.1) {
- 2025-11-15 07:39:46: WARNING[Main]: 158: visibility = shadowCutoff(realDistance - texDepth.b);
- 2025-11-15 07:39:46: WARNING[Main]: 159: result = vec4(visibility, unpackColor(texDepth.a));
- 2025-11-15 07:39:46: WARNING[Main]: 160: }
- 2025-11-15 07:39:46: WARNING[Main]: 161: return result;
- 2025-11-15 07:39:46: WARNING[Main]: 162: }
- 2025-11-15 07:39:46: WARNING[Main]: 163:
- 2025-11-15 07:39:46: WARNING[Main]: 164: #else
- 2025-11-15 07:39:46: WARNING[Main]: 165:
- 2025-11-15 07:39:46: WARNING[Main]: 166: float getHardShadow(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 167: {
- 2025-11-15 07:39:46: WARNING[Main]: 168: float texDepth = texture2D(shadowsampler, smTexCoord.xy).r;
- 2025-11-15 07:39:46: WARNING[Main]: 169: float visibility = shadowCutoff(realDistance - texDepth);
- 2025-11-15 07:39:46: WARNING[Main]: 170: return visibility;
- 2025-11-15 07:39:46: WARNING[Main]: 171: }
- 2025-11-15 07:39:46: WARNING[Main]: 172:
- 2025-11-15 07:39:46: WARNING[Main]: 173: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 174:
- 2025-11-15 07:39:46: WARNING[Main]: 175:
- 2025-11-15 07:39:46: WARNING[Main]: 176: #if SHADOW_FILTER == 2
- 2025-11-15 07:39:46: WARNING[Main]: 177: #define PCFBOUND 2.0 // 5x5
- 2025-11-15 07:39:46: WARNING[Main]: 178: #define PCFSAMPLES 25
- 2025-11-15 07:39:46: WARNING[Main]: 179: #elif SHADOW_FILTER == 1
- 2025-11-15 07:39:46: WARNING[Main]: 180: #define PCFBOUND 1.0 // 3x3
- 2025-11-15 07:39:46: WARNING[Main]: 181: #define PCFSAMPLES 9
- 2025-11-15 07:39:46: WARNING[Main]: 182: #else
- 2025-11-15 07:39:46: WARNING[Main]: 183: #define PCFBOUND 0.0
- 2025-11-15 07:39:46: WARNING[Main]: 184: #define PCFSAMPLES 1
- 2025-11-15 07:39:46: WARNING[Main]: 185: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 186:
- 2025-11-15 07:39:46: WARNING[Main]: 187: #ifdef COLORED_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 188: float getHardShadowDepth(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 189: {
- 2025-11-15 07:39:46: WARNING[Main]: 190: vec4 texDepth = texture2D(shadowsampler, smTexCoord.xy);
- 2025-11-15 07:39:46: WARNING[Main]: 191: float depth = max(realDistance - texDepth.r, realDistance - texDepth.b);
- 2025-11-15 07:39:46: WARNING[Main]: 192: return depth;
- 2025-11-15 07:39:46: WARNING[Main]: 193: }
- 2025-11-15 07:39:46: WARNING[Main]: 194: #else
- 2025-11-15 07:39:46: WARNING[Main]: 195: float getHardShadowDepth(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 196: {
- 2025-11-15 07:39:46: WARNING[Main]: 197: float texDepth = texture2D(shadowsampler, smTexCoord.xy).r;
- 2025-11-15 07:39:46: WARNING[Main]: 198: float depth = realDistance - texDepth;
- 2025-11-15 07:39:46: WARNING[Main]: 199: return depth;
- 2025-11-15 07:39:46: WARNING[Main]: 200: }
- 2025-11-15 07:39:46: WARNING[Main]: 201: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 202:
- 2025-11-15 07:39:46: WARNING[Main]: 203: #define BASEFILTERRADIUS 1.0
- 2025-11-15 07:39:46: WARNING[Main]: 204:
- 2025-11-15 07:39:46: WARNING[Main]: 205: float getPenumbraRadius(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 206: {
- 2025-11-15 07:39:46: WARNING[Main]: 207: // Return fast if sharp shadows are requested
- 2025-11-15 07:39:46: WARNING[Main]: 208: if (PCFBOUND == 0.0 || SOFTSHADOWRADIUS <= 0.0)
- 2025-11-15 07:39:46: WARNING[Main]: 209: return 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 210:
- 2025-11-15 07:39:46: WARNING[Main]: 211: vec2 clampedpos;
- 2025-11-15 07:39:46: WARNING[Main]: 212: float y, x;
- 2025-11-15 07:39:46: WARNING[Main]: 213: float depth = getHardShadowDepth(shadowsampler, smTexCoord.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 214: // A factor from 0 to 1 to reduce blurring of short shadows
- 2025-11-15 07:39:46: WARNING[Main]: 215: float sharpness_factor = 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 216: // conversion factor from shadow depth to blur radius
- 2025-11-15 07:39:46: WARNING[Main]: 217: float depth_to_blur = f_shadowfar / SOFTSHADOWRADIUS / xyPerspectiveBias0;
- 2025-11-15 07:39:46: WARNING[Main]: 218: if (depth > 0.0 && f_normal_length > 0.0)
- 2025-11-15 07:39:46: WARNING[Main]: 219: // 5 is empirical factor that controls how fast shadow loses sharpness
- 2025-11-15 07:39:46: WARNING[Main]: 220: sharpness_factor = clamp(5.0 * depth * depth_to_blur, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 221: depth = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 222:
- 2025-11-15 07:39:46: WARNING[Main]: 223: float world_to_texture = xyPerspectiveBias1 / perspective_factor / perspective_factor
- 2025-11-15 07:39:46: WARNING[Main]: 224: * f_textureresolution / 2.0 / f_shadowfar;
- 2025-11-15 07:39:46: WARNING[Main]: 225: float world_radius = 0.2; // shadow blur radius in world float coordinates, e.g. 0.2 = 0.02 of one node
- 2025-11-15 07:39:46: WARNING[Main]: 226:
- 2025-11-15 07:39:46: WARNING[Main]: 227: return max(BASEFILTERRADIUS * f_textureresolution / 4096.0, sharpness_factor * world_radius * world_to_texture * SOFTSHADOWRADIUS);
- 2025-11-15 07:39:46: WARNING[Main]: 228: }
- 2025-11-15 07:39:46: WARNING[Main]: 229:
- 2025-11-15 07:39:46: WARNING[Main]: 230: #ifdef POISSON_FILTER
- 2025-11-15 07:39:46: WARNING[Main]: 231: const vec2[64] poissonDisk = vec2[64](
- 2025-11-15 07:39:46: WARNING[Main]: 232: vec2(0.170019, -0.040254),
- 2025-11-15 07:39:46: WARNING[Main]: 233: vec2(-0.299417, 0.791925),
- 2025-11-15 07:39:46: WARNING[Main]: 234: vec2(0.645680, 0.493210),
- 2025-11-15 07:39:46: WARNING[Main]: 235: vec2(-0.651784, 0.717887),
- 2025-11-15 07:39:46: WARNING[Main]: 236: vec2(0.421003, 0.027070),
- 2025-11-15 07:39:46: WARNING[Main]: 237: vec2(-0.817194, -0.271096),
- 2025-11-15 07:39:46: WARNING[Main]: 238: vec2(-0.705374, -0.668203),
- 2025-11-15 07:39:46: WARNING[Main]: 239: vec2(0.977050, -0.108615),
- 2025-11-15 07:39:46: WARNING[Main]: 240: vec2(0.063326, 0.142369),
- 2025-11-15 07:39:46: WARNING[Main]: 241: vec2(0.203528, 0.214331),
- 2025-11-15 07:39:46: WARNING[Main]: 242: vec2(-0.667531, 0.326090),
- 2025-11-15 07:39:46: WARNING[Main]: 243: vec2(-0.098422, -0.295755),
- 2025-11-15 07:39:46: WARNING[Main]: 244: vec2(-0.885922, 0.215369),
- 2025-11-15 07:39:46: WARNING[Main]: 245: vec2(0.566637, 0.605213),
- 2025-11-15 07:39:46: WARNING[Main]: 246: vec2(0.039766, -0.396100),
- 2025-11-15 07:39:46: WARNING[Main]: 247: vec2(0.751946, 0.453352),
- 2025-11-15 07:39:46: WARNING[Main]: 248: vec2(0.078707, -0.715323),
- 2025-11-15 07:39:46: WARNING[Main]: 249: vec2(-0.075838, -0.529344),
- 2025-11-15 07:39:46: WARNING[Main]: 250: vec2(0.724479, -0.580798),
- 2025-11-15 07:39:46: WARNING[Main]: 251: vec2(0.222999, -0.215125),
- 2025-11-15 07:39:46: WARNING[Main]: 252: vec2(-0.467574, -0.405438),
- 2025-11-15 07:39:46: WARNING[Main]: 253: vec2(-0.248268, -0.814753),
- 2025-11-15 07:39:46: WARNING[Main]: 254: vec2(0.354411, -0.887570),
- 2025-11-15 07:39:46: WARNING[Main]: 255: vec2(0.175817, 0.382366),
- 2025-11-15 07:39:46: WARNING[Main]: 256: vec2(0.487472, -0.063082),
- 2025-11-15 07:39:46: WARNING[Main]: 257: vec2(0.355476, 0.025357),
- 2025-11-15 07:39:46: WARNING[Main]: 258: vec2(-0.084078, 0.898312),
- 2025-11-15 07:39:46: WARNING[Main]: 259: vec2(0.488876, -0.783441),
- 2025-11-15 07:39:46: WARNING[Main]: 260: vec2(0.470016, 0.217933),
- 2025-11-15 07:39:46: WARNING[Main]: 261: vec2(-0.696890, -0.549791),
- 2025-11-15 07:39:46: WARNING[Main]: 262: vec2(-0.149693, 0.605762),
- 2025-11-15 07:39:46: WARNING[Main]: 263: vec2(0.034211, 0.979980),
- 2025-11-15 07:39:46: WARNING[Main]: 264: vec2(0.503098, -0.308878),
- 2025-11-15 07:39:46: WARNING[Main]: 265: vec2(-0.016205, -0.872921),
- 2025-11-15 07:39:46: WARNING[Main]: 266: vec2(0.385784, -0.393902),
- 2025-11-15 07:39:46: WARNING[Main]: 267: vec2(-0.146886, -0.859249),
- 2025-11-15 07:39:46: WARNING[Main]: 268: vec2(0.643361, 0.164098),
- 2025-11-15 07:39:46: WARNING[Main]: 269: vec2(0.634388, -0.049471),
- 2025-11-15 07:39:46: WARNING[Main]: 270: vec2(-0.688894, 0.007843),
- 2025-11-15 07:39:46: WARNING[Main]: 271: vec2(0.464034, -0.188818),
- 2025-11-15 07:39:46: WARNING[Main]: 272: vec2(-0.440840, 0.137486),
- 2025-11-15 07:39:46: WARNING[Main]: 273: vec2(0.364483, 0.511704),
- 2025-11-15 07:39:46: WARNING[Main]: 274: vec2(0.034028, 0.325968),
- 2025-11-15 07:39:46: WARNING[Main]: 275: vec2(0.099094, -0.308023),
- 2025-11-15 07:39:46: WARNING[Main]: 276: vec2(0.693960, -0.366253),
- 2025-11-15 07:39:46: WARNING[Main]: 277: vec2(0.678884, -0.204688),
- 2025-11-15 07:39:46: WARNING[Main]: 278: vec2(0.001801, 0.780328),
- 2025-11-15 07:39:46: WARNING[Main]: 279: vec2(0.145177, -0.898984),
- 2025-11-15 07:39:46: WARNING[Main]: 280: vec2(0.062655, -0.611866),
- 2025-11-15 07:39:46: WARNING[Main]: 281: vec2(0.315226, -0.604297),
- 2025-11-15 07:39:46: WARNING[Main]: 282: vec2(-0.780145, 0.486251),
- 2025-11-15 07:39:46: WARNING[Main]: 283: vec2(-0.371868, 0.882138),
- 2025-11-15 07:39:46: WARNING[Main]: 284: vec2(0.200476, 0.494430),
- 2025-11-15 07:39:46: WARNING[Main]: 285: vec2(-0.494552, -0.711051),
- 2025-11-15 07:39:46: WARNING[Main]: 286: vec2(0.612476, 0.705252),
- 2025-11-15 07:39:46: WARNING[Main]: 287: vec2(-0.578845, -0.768792),
- 2025-11-15 07:39:46: WARNING[Main]: 288: vec2(-0.772454, -0.090976),
- 2025-11-15 07:39:46: WARNING[Main]: 289: vec2(0.504440, 0.372295),
- 2025-11-15 07:39:46: WARNING[Main]: 290: vec2(0.155736, 0.065157),
- 2025-11-15 07:39:46: WARNING[Main]: 291: vec2(0.391522, 0.849605),
- 2025-11-15 07:39:46: WARNING[Main]: 292: vec2(-0.620106, -0.328104),
- 2025-11-15 07:39:46: WARNING[Main]: 293: vec2(0.789239, -0.419965),
- 2025-11-15 07:39:46: WARNING[Main]: 294: vec2(-0.545396, 0.538133),
- 2025-11-15 07:39:46: WARNING[Main]: 295: vec2(-0.178564, -0.596057)
- 2025-11-15 07:39:46: WARNING[Main]: 296: );
- 2025-11-15 07:39:46: WARNING[Main]: 297:
- 2025-11-15 07:39:46: WARNING[Main]: 298: #ifdef COLORED_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 299:
- 2025-11-15 07:39:46: WARNING[Main]: 300: vec4 getShadowColor(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 301: {
- 2025-11-15 07:39:46: WARNING[Main]: 302: float radius = getPenumbraRadius(shadowsampler, smTexCoord, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 303: if (radius < 0.1) {
- 2025-11-15 07:39:46: WARNING[Main]: 304: // we are in the middle of even brightness, no need for filtering
- 2025-11-15 07:39:46: WARNING[Main]: 305: return getHardShadowColor(shadowsampler, smTexCoord.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 306: }
- 2025-11-15 07:39:46: WARNING[Main]: 307:
- 2025-11-15 07:39:46: WARNING[Main]: 308: vec2 clampedpos;
- 2025-11-15 07:39:46: WARNING[Main]: 309: vec4 visibility = vec4(0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 310: float scale_factor = radius / f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 311:
- 2025-11-15 07:39:46: WARNING[Main]: 312: int samples = (1 + 1 * int(SOFTSHADOWRADIUS > 1.0)) * PCFSAMPLES; // scale max samples for the soft shadows
- 2025-11-15 07:39:46: WARNING[Main]: 313: samples = int(clamp(pow(4.0 * radius + 1.0, 2.0), 1.0, float(samples)));
- 2025-11-15 07:39:46: WARNING[Main]: 314: int init_offset = int(floor(mod(((smTexCoord.x * 34.0) + 1.0) * smTexCoord.y, 64.0-samples)));
- 2025-11-15 07:39:46: WARNING[Main]: 315: int end_offset = int(samples) + init_offset;
- 2025-11-15 07:39:46: WARNING[Main]: 316:
- 2025-11-15 07:39:46: WARNING[Main]: 317: for (int x = init_offset; x < end_offset; x++) {
- 2025-11-15 07:39:46: WARNING[Main]: 318: clampedpos = poissonDisk[x] * scale_factor + smTexCoord.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 319: visibility += getHardShadowColor(shadowsampler, clampedpos.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 320: }
- 2025-11-15 07:39:46: WARNING[Main]: 321:
- 2025-11-15 07:39:46: WARNING[Main]: 322: return visibility / samples;
- 2025-11-15 07:39:46: WARNING[Main]: 323: }
- 2025-11-15 07:39:46: WARNING[Main]: 324:
- 2025-11-15 07:39:46: WARNING[Main]: 325: #else
- 2025-11-15 07:39:46: WARNING[Main]: 326:
- 2025-11-15 07:39:46: WARNING[Main]: 327: float getShadow(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 328: {
- 2025-11-15 07:39:46: WARNING[Main]: 329: float radius = getPenumbraRadius(shadowsampler, smTexCoord, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 330: if (radius < 0.1) {
- 2025-11-15 07:39:46: WARNING[Main]: 331: // we are in the middle of even brightness, no need for filtering
- 2025-11-15 07:39:46: WARNING[Main]: 332: return getHardShadow(shadowsampler, smTexCoord.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 333: }
- 2025-11-15 07:39:46: WARNING[Main]: 334:
- 2025-11-15 07:39:46: WARNING[Main]: 335: vec2 clampedpos;
- 2025-11-15 07:39:46: WARNING[Main]: 336: float visibility = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 337: float scale_factor = radius / f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 338:
- 2025-11-15 07:39:46: WARNING[Main]: 339: int samples = (1 + 1 * int(SOFTSHADOWRADIUS > 1.0)) * PCFSAMPLES; // scale max samples for the soft shadows
- 2025-11-15 07:39:46: WARNING[Main]: 340: samples = int(clamp(pow(4.0 * radius + 1.0, 2.0), 1.0, float(samples)));
- 2025-11-15 07:39:46: WARNING[Main]: 341: int init_offset = int(floor(mod(((smTexCoord.x * 34.0) + 1.0) * smTexCoord.y, 64.0-samples)));
- 2025-11-15 07:39:46: WARNING[Main]: 342: int end_offset = int(samples) + init_offset;
- 2025-11-15 07:39:46: WARNING[Main]: 343:
- 2025-11-15 07:39:46: WARNING[Main]: 344: for (int x = init_offset; x < end_offset; x++) {
- 2025-11-15 07:39:46: WARNING[Main]: 345: clampedpos = poissonDisk[x] * scale_factor + smTexCoord.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 346: visibility += getHardShadow(shadowsampler, clampedpos.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 347: }
- 2025-11-15 07:39:46: WARNING[Main]: 348:
- 2025-11-15 07:39:46: WARNING[Main]: 349: return visibility / samples;
- 2025-11-15 07:39:46: WARNING[Main]: 350: }
- 2025-11-15 07:39:46: WARNING[Main]: 351:
- 2025-11-15 07:39:46: WARNING[Main]: 352: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 353:
- 2025-11-15 07:39:46: WARNING[Main]: 354: #else
- 2025-11-15 07:39:46: WARNING[Main]: 355: /* poisson filter disabled */
- 2025-11-15 07:39:46: WARNING[Main]: 356:
- 2025-11-15 07:39:46: WARNING[Main]: 357: #ifdef COLORED_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 358:
- 2025-11-15 07:39:46: WARNING[Main]: 359: vec4 getShadowColor(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 360: {
- 2025-11-15 07:39:46: WARNING[Main]: 361: float radius = getPenumbraRadius(shadowsampler, smTexCoord, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 362: if (radius < 0.1) {
- 2025-11-15 07:39:46: WARNING[Main]: 363: // we are in the middle of even brightness, no need for filtering
- 2025-11-15 07:39:46: WARNING[Main]: 364: return getHardShadowColor(shadowsampler, smTexCoord.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 365: }
- 2025-11-15 07:39:46: WARNING[Main]: 366:
- 2025-11-15 07:39:46: WARNING[Main]: 367: vec2 clampedpos;
- 2025-11-15 07:39:46: WARNING[Main]: 368: vec4 visibility = vec4(0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 369: float x, y;
- 2025-11-15 07:39:46: WARNING[Main]: 370: float bound = (1 + 0.5 * int(SOFTSHADOWRADIUS > 1.0)) * PCFBOUND; // scale max bound for soft shadows
- 2025-11-15 07:39:46: WARNING[Main]: 371: bound = clamp(0.5 * (4.0 * radius - 1.0), 0.5, bound);
- 2025-11-15 07:39:46: WARNING[Main]: 372: float scale_factor = radius / bound / f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 373: float n = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 374:
- 2025-11-15 07:39:46: WARNING[Main]: 375: // basic PCF filter
- 2025-11-15 07:39:46: WARNING[Main]: 376: for (y = -bound; y <= bound; y += 1.0)
- 2025-11-15 07:39:46: WARNING[Main]: 377: for (x = -bound; x <= bound; x += 1.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 378: clampedpos = vec2(x,y) * scale_factor + smTexCoord.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 379: visibility += getHardShadowColor(shadowsampler, clampedpos.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 380: n += 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 381: }
- 2025-11-15 07:39:46: WARNING[Main]: 382:
- 2025-11-15 07:39:46: WARNING[Main]: 383: return visibility / max(n, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 384: }
- 2025-11-15 07:39:46: WARNING[Main]: 385:
- 2025-11-15 07:39:46: WARNING[Main]: 386: #else
- 2025-11-15 07:39:46: WARNING[Main]: 387: float getShadow(sampler2D shadowsampler, vec2 smTexCoord, float realDistance)
- 2025-11-15 07:39:46: WARNING[Main]: 388: {
- 2025-11-15 07:39:46: WARNING[Main]: 389: float radius = getPenumbraRadius(shadowsampler, smTexCoord, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 390: if (radius < 0.1) {
- 2025-11-15 07:39:46: WARNING[Main]: 391: // we are in the middle of even brightness, no need for filtering
- 2025-11-15 07:39:46: WARNING[Main]: 392: return getHardShadow(shadowsampler, smTexCoord.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 393: }
- 2025-11-15 07:39:46: WARNING[Main]: 394:
- 2025-11-15 07:39:46: WARNING[Main]: 395: vec2 clampedpos;
- 2025-11-15 07:39:46: WARNING[Main]: 396: float visibility = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 397: float x, y;
- 2025-11-15 07:39:46: WARNING[Main]: 398: float bound = (1 + 0.5 * int(SOFTSHADOWRADIUS > 1.0)) * PCFBOUND; // scale max bound for soft shadows
- 2025-11-15 07:39:46: WARNING[Main]: 399: bound = clamp(0.5 * (4.0 * radius - 1.0), 0.5, bound);
- 2025-11-15 07:39:46: WARNING[Main]: 400: float scale_factor = radius / bound / f_textureresolution;
- 2025-11-15 07:39:46: WARNING[Main]: 401: float n = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 402:
- 2025-11-15 07:39:46: WARNING[Main]: 403: // basic PCF filter
- 2025-11-15 07:39:46: WARNING[Main]: 404: for (y = -bound; y <= bound; y += 1.0)
- 2025-11-15 07:39:46: WARNING[Main]: 405: for (x = -bound; x <= bound; x += 1.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 406: clampedpos = vec2(x,y) * scale_factor + smTexCoord.xy;
- 2025-11-15 07:39:46: WARNING[Main]: 407: visibility += getHardShadow(shadowsampler, clampedpos.xy, realDistance);
- 2025-11-15 07:39:46: WARNING[Main]: 408: n += 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 409: }
- 2025-11-15 07:39:46: WARNING[Main]: 410:
- 2025-11-15 07:39:46: WARNING[Main]: 411: return visibility / max(n, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 412: }
- 2025-11-15 07:39:46: WARNING[Main]: 413:
- 2025-11-15 07:39:46: WARNING[Main]: 414: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 415:
- 2025-11-15 07:39:46: WARNING[Main]: 416: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 417: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 418:
- 2025-11-15 07:39:46: WARNING[Main]: 419: // maps [0, N] to [0, 1] like GL_REPEAT would
- 2025-11-15 07:39:46: WARNING[Main]: 420: vec2 uv_repeat(vec2 v)
- 2025-11-15 07:39:46: WARNING[Main]: 421: {
- 2025-11-15 07:39:46: WARNING[Main]: 422: if (v.x > 1.0)
- 2025-11-15 07:39:46: WARNING[Main]: 423: v.x = fract(v.x);
- 2025-11-15 07:39:46: WARNING[Main]: 424: if (v.y > 1.0)
- 2025-11-15 07:39:46: WARNING[Main]: 425: v.y = fract(v.y);
- 2025-11-15 07:39:46: WARNING[Main]: 426: return v;
- 2025-11-15 07:39:46: WARNING[Main]: 427: }
- 2025-11-15 07:39:46: WARNING[Main]: 428:
- 2025-11-15 07:39:46: WARNING[Main]: 429: void main(void)
- 2025-11-15 07:39:46: WARNING[Main]: 430: {
- 2025-11-15 07:39:46: WARNING[Main]: 431: vec2 uv = varTexCoord.st;
- 2025-11-15 07:39:46: WARNING[Main]: 432:
- 2025-11-15 07:39:46: WARNING[Main]: 433: #ifdef USE_ARRAY_TEXTURE
- 2025-11-15 07:39:46: WARNING[Main]: 434: vec4 base = texture(baseTexture, vec3(uv, varTexLayer)).rgba;
- 2025-11-15 07:39:46: WARNING[Main]: 435: #else
- 2025-11-15 07:39:46: WARNING[Main]: 436: vec4 base = texture2D(baseTexture, uv).rgba;
- 2025-11-15 07:39:46: WARNING[Main]: 437: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 438:
- 2025-11-15 07:39:46: WARNING[Main]: 439: // Handle transparency by discarding pixel as appropriate.
- 2025-11-15 07:39:46: WARNING[Main]: 440: #ifdef USE_DISCARD
- 2025-11-15 07:39:46: WARNING[Main]: 441: if (base.a == 0.0)
- 2025-11-15 07:39:46: WARNING[Main]: 442: discard;
- 2025-11-15 07:39:46: WARNING[Main]: 443: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 444: #ifdef USE_DISCARD_REF
- 2025-11-15 07:39:46: WARNING[Main]: 445: if (base.a < 0.5)
- 2025-11-15 07:39:46: WARNING[Main]: 446: discard;
- 2025-11-15 07:39:46: WARNING[Main]: 447: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 448:
- 2025-11-15 07:39:46: WARNING[Main]: 449: // Apply crack overlay
- 2025-11-15 07:39:46: WARNING[Main]: 450: float crack_progress = min(crackLevel, crackAnimationLength - 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 451: if (crack_progress >= 0.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 452: // undo scaling of e.g. world-aligned nodes
- 2025-11-15 07:39:46: WARNING[Main]: 453: vec2 orig_uv = uv_repeat(uv * vec2(crackTextureScale));
- 2025-11-15 07:39:46: WARNING[Main]: 454:
- 2025-11-15 07:39:46: WARNING[Main]: 455: vec2 cuv_offset = vec2(0.0, crack_progress / crackAnimationLength);
- 2025-11-15 07:39:46: WARNING[Main]: 456: vec2 cuv_factor = vec2(1.0, 1.0 / crackAnimationLength);
- 2025-11-15 07:39:46: WARNING[Main]: 457: vec4 crack = texture2D(crackTexture, cuv_offset + orig_uv * cuv_factor);
- 2025-11-15 07:39:46: WARNING[Main]: 458: base = mix(base, crack, crack.a);
- 2025-11-15 07:39:46: WARNING[Main]: 459: }
- 2025-11-15 07:39:46: WARNING[Main]: 460:
- 2025-11-15 07:39:46: WARNING[Main]: 461: vec4 col = vec4(base.rgb * varColor.rgb, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 462:
- 2025-11-15 07:39:46: WARNING[Main]: 463: #ifdef ENABLE_DYNAMIC_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 464: // Fragment normal, can differ from vNormal which is derived from vertex normals.
- 2025-11-15 07:39:46: WARNING[Main]: 465: vec3 fNormal = vNormal;
- 2025-11-15 07:39:46: WARNING[Main]: 466:
- 2025-11-15 07:39:46: WARNING[Main]: 467: if (f_shadow_strength > 0.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 468: float shadow_int = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 469: vec3 shadow_color = vec3(0.0, 0.0, 0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 470: vec3 posLightSpace = getLightSpacePosition();
- 2025-11-15 07:39:46: WARNING[Main]: 471:
- 2025-11-15 07:39:46: WARNING[Main]: 472: float distance_rate = (1.0 - pow(clamp(2.0 * length(posLightSpace.xy - 0.5),0.0,1.0), 10.0));
- 2025-11-15 07:39:46: WARNING[Main]: 473: if (max(abs(posLightSpace.x - 0.5), abs(posLightSpace.y - 0.5)) > 0.5)
- 2025-11-15 07:39:46: WARNING[Main]: 474: distance_rate = 0.0;
- 2025-11-15 07:39:46: WARNING[Main]: 475: float f_adj_shadow_strength = max(adj_shadow_strength - mtsmoothstep(0.9, 1.1, posLightSpace.z),0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 476:
- 2025-11-15 07:39:46: WARNING[Main]: 477: if (distance_rate > 1e-7) {
- 2025-11-15 07:39:46: WARNING[Main]: 478:
- 2025-11-15 07:39:46: WARNING[Main]: 479: #ifdef COLORED_SHADOWS
- 2025-11-15 07:39:46: WARNING[Main]: 480: vec4 visibility;
- 2025-11-15 07:39:46: WARNING[Main]: 481: if (cosLight > 0.0 || f_normal_length < 1e-3)
- 2025-11-15 07:39:46: WARNING[Main]: 482: visibility = getShadowColor(ShadowMapSampler, posLightSpace.xy, posLightSpace.z);
- 2025-11-15 07:39:46: WARNING[Main]: 483: else
- 2025-11-15 07:39:46: WARNING[Main]: 484: visibility = vec4(1.0, 0.0, 0.0, 0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 485: shadow_int = visibility.r;
- 2025-11-15 07:39:46: WARNING[Main]: 486: shadow_color = visibility.gba;
- 2025-11-15 07:39:46: WARNING[Main]: 487: #else
- 2025-11-15 07:39:46: WARNING[Main]: 488: if (cosLight > 0.0 || f_normal_length < 1e-3)
- 2025-11-15 07:39:46: WARNING[Main]: 489: shadow_int = getShadow(ShadowMapSampler, posLightSpace.xy, posLightSpace.z);
- 2025-11-15 07:39:46: WARNING[Main]: 490: else
- 2025-11-15 07:39:46: WARNING[Main]: 491: shadow_int = 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 492: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 493: shadow_int *= distance_rate;
- 2025-11-15 07:39:46: WARNING[Main]: 494: shadow_int = clamp(shadow_int, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 495:
- 2025-11-15 07:39:46: WARNING[Main]: 496: }
- 2025-11-15 07:39:46: WARNING[Main]: 497:
- 2025-11-15 07:39:46: WARNING[Main]: 498: // turns out that nightRatio falls off much faster than
- 2025-11-15 07:39:46: WARNING[Main]: 499: // actual brightness of artificial light in relation to natual light.
- 2025-11-15 07:39:46: WARNING[Main]: 500: // Power ratio was measured on torches in MTG (brightness = 14).
- 2025-11-15 07:39:46: WARNING[Main]: 501: float adjusted_night_ratio = pow(max(0.0, nightRatio), 0.6);
- 2025-11-15 07:39:46: WARNING[Main]: 502:
- 2025-11-15 07:39:46: WARNING[Main]: 503: float shadow_uncorrected = shadow_int;
- 2025-11-15 07:39:46: WARNING[Main]: 504:
- 2025-11-15 07:39:46: WARNING[Main]: 505: // Apply self-shadowing when light falls at a narrow angle to the surface
- 2025-11-15 07:39:46: WARNING[Main]: 506: // Cosine of the cut-off angle.
- 2025-11-15 07:39:46: WARNING[Main]: 507: const float self_shadow_cutoff_cosine = 0.035;
- 2025-11-15 07:39:46: WARNING[Main]: 508: if (f_normal_length != 0 && cosLight < self_shadow_cutoff_cosine) {
- 2025-11-15 07:39:46: WARNING[Main]: 509: shadow_int = max(shadow_int, 1 - clamp(cosLight, 0.0, self_shadow_cutoff_cosine)/self_shadow_cutoff_cosine);
- 2025-11-15 07:39:46: WARNING[Main]: 510: shadow_color = mix(vec3(0.0), shadow_color, min(cosLight, self_shadow_cutoff_cosine)/self_shadow_cutoff_cosine);
- 2025-11-15 07:39:46: WARNING[Main]: 511:
- 2025-11-15 07:39:46: WARNING[Main]: 512: #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES || MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS)
- 2025-11-15 07:39:46: WARNING[Main]: 513: // Prevents foliage from becoming insanely bright outside the shadow map.
- 2025-11-15 07:39:46: WARNING[Main]: 514: shadow_uncorrected = mix(shadow_int, shadow_uncorrected, clamp(distance_rate * 4.0 - 3.0, 0.0, 1.0));
- 2025-11-15 07:39:46: WARNING[Main]: 515: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 516: }
- 2025-11-15 07:39:46: WARNING[Main]: 517:
- 2025-11-15 07:39:46: WARNING[Main]: 518: shadow_int *= f_adj_shadow_strength;
- 2025-11-15 07:39:46: WARNING[Main]: 519:
- 2025-11-15 07:39:46: WARNING[Main]: 520: // calculate fragment color from components:
- 2025-11-15 07:39:46: WARNING[Main]: 521: col.rgb =
- 2025-11-15 07:39:46: WARNING[Main]: 522: adjusted_night_ratio * col.rgb + // artificial light
- 2025-11-15 07:39:46: WARNING[Main]: 523: (1.0 - adjusted_night_ratio) * ( // natural light
- 2025-11-15 07:39:46: WARNING[Main]: 524: col.rgb * (1.0 - shadow_int * (1.0 - shadow_color) * (1.0 - shadow_tint)) + // filtered texture color
- 2025-11-15 07:39:46: WARNING[Main]: 525: dayLight * shadow_color * shadow_int); // reflected filtered sunlight/moonlight
- 2025-11-15 07:39:46: WARNING[Main]: 526:
- 2025-11-15 07:39:46: WARNING[Main]: 527:
- 2025-11-15 07:39:46: WARNING[Main]: 528: vec3 reflect_ray = -normalize(v_LightDirection - fNormal * dot(v_LightDirection, fNormal) * 2.0);
- 2025-11-15 07:39:46: WARNING[Main]: 529:
- 2025-11-15 07:39:46: WARNING[Main]: 530: vec3 viewVec = normalize(worldPosition + cameraOffset - cameraPosition);
- 2025-11-15 07:39:46: WARNING[Main]: 531:
- 2025-11-15 07:39:46: WARNING[Main]: 532: // Water reflections
- 2025-11-15 07:39:46: WARNING[Main]: 533: #if (defined(ENABLE_WATER_REFLECTIONS) && MATERIAL_WATER_REFLECTIONS && ENABLE_WAVING_WATER)
- 2025-11-15 07:39:46: WARNING[Main]: 534: vec3 wavePos = worldPosition * vec3(2.0, 0.0, 2.0);
- 2025-11-15 07:39:46: WARNING[Main]: 535: float off = animationTimer * WATER_WAVE_SPEED * 10.0;
- 2025-11-15 07:39:46: WARNING[Main]: 536: wavePos.x /= WATER_WAVE_LENGTH * 3.0;
- 2025-11-15 07:39:46: WARNING[Main]: 537: wavePos.z /= WATER_WAVE_LENGTH * 2.0;
- 2025-11-15 07:39:46: WARNING[Main]: 538:
- 2025-11-15 07:39:46: WARNING[Main]: 539: // This is an analogous method to the bumpmap, except we get the gradient information directly from gnoise.
- 2025-11-15 07:39:46: WARNING[Main]: 540: vec2 gradient = wave_noise(wavePos, off);
- 2025-11-15 07:39:46: WARNING[Main]: 541: fNormal = normalize(normalize(fNormal) + vec3(gradient.x, 0., gradient.y) * WATER_WAVE_HEIGHT * abs(fNormal.y) * 0.25);
- 2025-11-15 07:39:46: WARNING[Main]: 542: reflect_ray = -normalize(v_LightDirection - fNormal * dot(v_LightDirection, fNormal) * 2.0);
- 2025-11-15 07:39:46: WARNING[Main]: 543: float fresnel_factor = dot(fNormal, viewVec);
- 2025-11-15 07:39:46: WARNING[Main]: 544:
- 2025-11-15 07:39:46: WARNING[Main]: 545: float brightness_factor = 1.0 - adjusted_night_ratio;
- 2025-11-15 07:39:46: WARNING[Main]: 546:
- 2025-11-15 07:39:46: WARNING[Main]: 547: // A little trig hack. We go from the dot product of viewVec and normal to the dot product of viewVec and tangent to apply a fresnel effect.
- 2025-11-15 07:39:46: WARNING[Main]: 548: fresnel_factor = clamp(pow(1.0 - fresnel_factor * fresnel_factor, 8.0), 0.0, 1.0) * 0.8 + 0.2;
- 2025-11-15 07:39:46: WARNING[Main]: 549: col.rgb *= 0.5;
- 2025-11-15 07:39:46: WARNING[Main]: 550: vec3 reflection_color = mix(vec3(max(fogColor.r, max(fogColor.g, fogColor.b))), fogColor.rgb, f_shadow_strength);
- 2025-11-15 07:39:46: WARNING[Main]: 551:
- 2025-11-15 07:39:46: WARNING[Main]: 552: // Sky reflection
- 2025-11-15 07:39:46: WARNING[Main]: 553: col.rgb += reflection_color * pow(fresnel_factor, 2.0) * 0.5 * brightness_factor;
- 2025-11-15 07:39:46: WARNING[Main]: 554: vec3 water_reflect_color = 12.0 * dayLight * fresnel_factor * mtsmoothstep(0.85, 0.9, pow(clamp(dot(reflect_ray, viewVec), 0.0, 1.0), 32.0)) * max(1.0 - shadow_uncorrected, 0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 555:
- 2025-11-15 07:39:46: WARNING[Main]: 556: // This line exists to prevent ridiculously bright reflection colors.
- 2025-11-15 07:39:46: WARNING[Main]: 557: water_reflect_color /= clamp(max(water_reflect_color.r, max(water_reflect_color.g, water_reflect_color.b)) * 0.375, 1.0, 400.0);
- 2025-11-15 07:39:46: WARNING[Main]: 558: col.rgb += water_reflect_color * f_adj_shadow_strength * brightness_factor;
- 2025-11-15 07:39:46: WARNING[Main]: 559: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 560:
- 2025-11-15 07:39:46: WARNING[Main]: 561: #if (defined(ENABLE_NODE_SPECULAR) && !MATERIAL_WATER_REFLECTIONS)
- 2025-11-15 07:39:46: WARNING[Main]: 562: // Apply specular to blocks.
- 2025-11-15 07:39:46: WARNING[Main]: 563: if (dot(v_LightDirection, vNormal) < 0.0) {
- 2025-11-15 07:39:46: WARNING[Main]: 564: float intensity = 2.0 * (1.0 - (base.r * varColor.r));
- 2025-11-15 07:39:46: WARNING[Main]: 565: const float specular_exponent = 5.0;
- 2025-11-15 07:39:46: WARNING[Main]: 566: const float fresnel_exponent = 4.0;
- 2025-11-15 07:39:46: WARNING[Main]: 567:
- 2025-11-15 07:39:46: WARNING[Main]: 568: col.rgb +=
- 2025-11-15 07:39:46: WARNING[Main]: 569: intensity * dayLight * (1.0 - nightRatio) * (1.0 - shadow_uncorrected) * f_adj_shadow_strength *
- 2025-11-15 07:39:46: WARNING[Main]: 570: pow(max(dot(reflect_ray, viewVec), 0.0), fresnel_exponent) * pow(1.0 - abs(dot(viewVec, fNormal)), specular_exponent);
- 2025-11-15 07:39:46: WARNING[Main]: 571: }
- 2025-11-15 07:39:46: WARNING[Main]: 572: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 573:
- 2025-11-15 07:39:46: WARNING[Main]: 574: #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES) && defined(ENABLE_TRANSLUCENT_FOLIAGE)
- 2025-11-15 07:39:46: WARNING[Main]: 575: // Simulate translucent foliage.
- 2025-11-15 07:39:46: WARNING[Main]: 576: col.rgb += 4.0 * dayLight * base.rgb * normalize(base.rgb * varColor.rgb * varColor.rgb) * f_adj_shadow_strength * pow(max(-dot(v_LightDirection, viewVec), 0.0), 4.0) * max(1.0 - shadow_uncorrected, 0.0);
- 2025-11-15 07:39:46: WARNING[Main]: 577: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 578: }
- 2025-11-15 07:39:46: WARNING[Main]: 579: #endif
- 2025-11-15 07:39:46: WARNING[Main]: 580:
- 2025-11-15 07:39:46: WARNING[Main]: 581: // Due to a bug in some (older ?) graphics stacks (possibly in the glsl compiler ?),
- 2025-11-15 07:39:46: WARNING[Main]: 582: // the fog will only be rendered correctly if the last operation before the
- 2025-11-15 07:39:46: WARNING[Main]: 583: // clamp() is an addition. Else, the clamp() seems to be ignored.
- 2025-11-15 07:39:46: WARNING[Main]: 584: // E.g. the following won't work:
- 2025-11-15 07:39:46: WARNING[Main]: 585: // float clarity = clamp(fogShadingParameter
- 2025-11-15 07:39:46: WARNING[Main]: 586: // * (fogDistance - length(eyeVec)) / fogDistance), 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 587: // As additions usually come for free following a multiplication, the new formula
- 2025-11-15 07:39:46: WARNING[Main]: 588: // should be more efficient as well.
- 2025-11-15 07:39:46: WARNING[Main]: 589: // Note: clarity = (1 - fogginess)
- 2025-11-15 07:39:46: WARNING[Main]: 590: float clarity = clamp(fogShadingParameter
- 2025-11-15 07:39:46: WARNING[Main]: 591: - fogShadingParameter * length(eyeVec) / fogDistance, 0.0, 1.0);
- 2025-11-15 07:39:46: WARNING[Main]: 592: float fogColorMax = max(max(fogColor.r, fogColor.g), fogColor.b);
- 2025-11-15 07:39:46: WARNING[Main]: 593: // Prevent zero division.
- 2025-11-15 07:39:46: WARNING[Main]: 594: if (fogColorMax < 0.0000001) fogColorMax = 1.0;
- 2025-11-15 07:39:46: WARNING[Main]: 595: // For high clarity (light fog) we tint the fog color.
- 2025-11-15 07:39:46: WARNING[Main]: 596: // For this to not make the fog color artificially dark we need to normalize using the
- 2025-11-15 07:39:46: WARNING[Main]: 597: // fog color's brightest value. We then blend our base color with this to make the fog.
- 2025-11-15 07:39:46: WARNING[Main]: 598: col = mix(fogColor * pow(fogColor / fogColorMax, vec4(2.0 * clarity)), col, clarity);
- 2025-11-15 07:39:46: WARNING[Main]: 599: col = vec4(col.rgb, base.a);
- 2025-11-15 07:39:46: WARNING[Main]: 600:
- 2025-11-15 07:39:46: WARNING[Main]: 601: gl_FragColor = col;
- 2025-11-15 07:39:46: WARNING[Main]: 602: }
- 2025-11-15 07:39:46: WARNING[Main]: 603:
- 2025-11-15 07:39:46: WARNING[Main]: End of fragment shader program.
- 2025-11-15 07:39:46: WARNING[Main]:
- 2025-11-15 07:39:46: ERROR[Main]: Failed to compile the "nodes_shader MATERIAL_TYPE=6 USE_ARRAY_TEXTURE=1" shader.
- 2025-11-15 07:39:46: ERROR[Main]: Check debug.txt for details.
- 2025-11-15 07:39:46: ACTION[ServerStop]: Server: Shutting down
Advertisement
Add Comment
Please, Sign In to add comment