stevenarella/src/render/shaders/get_light.glsl

28 lines
677 B
GLSL

vec3 getLight(vec2 light) {
vec2 li = pow(vec2(lightLevel), 15.0 - light);
float skyTint = skyOffset * 0.95 + 0.05;
float bl = li.x;
float sk = li.y * skyTint;
float skyRed = sk * (skyOffset * 0.65 + 0.35);
float skyGreen = sk * (skyOffset * 0.65 + 0.35);
float blockGreen = bl * ((bl * 0.6 + 0.4) * 0.6 + 0.4);
float blockBlue = bl * (bl * bl * 0.6 + 0.4);
vec3 col = vec3(
skyRed + bl,
skyGreen + blockGreen,
sk + blockBlue
);
col = col * 0.96 + 0.03;
float gamma = 0.0;
vec3 invCol = 1.0 - col;
invCol = 1.0 - invCol * invCol * invCol * invCol;
col = col * (1.0 - gamma) + invCol * gamma;
col = col * 0.96 + 0.03;
return clamp(col, 0.0, 1.0);
}