Shaders: Fix OpenGL < 4.3 compatibility

master
SmallJoker 2020-02-16 14:08:48 +01:00
parent 3f675490df
commit 478e753298
1 changed files with 6 additions and 8 deletions

View File

@ -46,9 +46,8 @@ float smoothTriangleWave(float x)
return smoothCurve(triangleWave(x)) * 2.0 - 1.0; return smoothCurve(triangleWave(x)) * 2.0 - 1.0;
} }
#if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || \ // OpenGL < 4.3 does not support continued preprocessor lines
MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || \ #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER
MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER
// //
// Simple, fast noise function. // Simple, fast noise function.
@ -115,9 +114,8 @@ float disp_z;
worldPosition = (mWorld * gl_Vertex).xyz; worldPosition = (mWorld * gl_Vertex).xyz;
#if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || \ // OpenGL < 4.3 does not support continued preprocessor lines
MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || \ #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER
MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER
// Generate waves with Perlin-type noise. // Generate waves with Perlin-type noise.
// The constants are calibrated such that they roughly // The constants are calibrated such that they roughly
// correspond to the old sine waves. // correspond to the old sine waves.
@ -188,12 +186,12 @@ float disp_z;
color.rgb = gl_Color.rgb * (gl_Color.a * dayLight.rgb + color.rgb = gl_Color.rgb * (gl_Color.a * dayLight.rgb +
nightRatio * artificialLight.rgb) * 2; nightRatio * artificialLight.rgb) * 2;
color.a = 1; color.a = 1;
// Emphase blue a bit in darker places // Emphase blue a bit in darker places
// See C++ implementation in mapblock_mesh.cpp final_color_blend() // See C++ implementation in mapblock_mesh.cpp final_color_blend()
float brightness = (color.r + color.g + color.b) / 3; float brightness = (color.r + color.g + color.b) / 3;
color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) + color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) +
0.07 * brightness); 0.07 * brightness);
gl_FrontColor = gl_BackColor = clamp(color, 0.0, 1.0); gl_FrontColor = gl_BackColor = clamp(color, 0.0, 1.0);
} }