add 'sky_tint', 'clouds_tint', 'min_sky_light' weather parameters

This commit is contained in:
MihailRis 2026-02-12 20:27:29 +03:00
parent 1194379f99
commit e037462615
22 changed files with 80 additions and 31 deletions

View file

@ -31,7 +31,7 @@ void main() {
a_texCoord = v_texCoord;
a_dir = a_modelpos.xyz - u_cameraPos;
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime, u_minSkyLight);
a_skyLight = skyLightColor.rgb*v_light.a;
mat4 viewmodel = u_view * u_model;

View file

@ -28,7 +28,7 @@ void main() {
a_texCoord = v_texCoord;
a_dir = a_modelpos.xyz - u_cameraPos;
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime, u_minSkyLight);
a_color.rgb = max(a_color.rgb, skyLightColor.rgb * v_light.a) * v_color;
a_color.a = u_opacity;

View file

@ -10,7 +10,6 @@
// lighting
#define SKY_LIGHT_MUL 2.5
#define SKY_LIGHT_TINT (vec3(1.0, 0.75, 0.6) * 2.0)
#define MIN_SKY_LIGHT vec3(0.2, 0.25, 0.33)
// fog
#define FOG_POS_SCALE vec3(1.0, 0.2, 1.0)

View file

@ -3,12 +3,12 @@
#include <constants>
vec3 pick_sky_color(samplerCube cubemap, float dayTime) {
vec3 pick_sky_color(samplerCube cubemap, float dayTime, vec3 minSkyLight) {
float elevation = sin(dayTime * PI2) * 0.2;
vec3 skyLightColor = texture(cubemap, vec3(0.0f, elevation, -0.4f)).rgb;
skyLightColor *= SKY_LIGHT_TINT;
skyLightColor = min(vec3(1.0f), skyLightColor * SKY_LIGHT_MUL);
skyLightColor = max(MIN_SKY_LIGHT, skyLightColor);
skyLightColor = max(minSkyLight, skyLightColor);
return skyLightColor;
}

View file

@ -11,5 +11,6 @@ uniform float u_timer;
uniform samplerCube u_skybox;
uniform vec3 u_torchlightColor;
uniform float u_torchlightDistance;
uniform vec3 u_minSkyLight;
#endif // GLSL_WORLD_UNIFORMS_

View file

@ -27,7 +27,7 @@ void main() {
a_texCoord = v_texCoord;
a_dir = a_modelpos.xyz - u_cameraPos;
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime, u_minSkyLight);
a_skyLight = skyLightColor.rgb*v_light.a;
mat4 viewmodel = u_view * u_model;

View file

@ -241,6 +241,8 @@ uniform vec3 u_xaxis;
uniform vec3 u_yaxis;
uniform vec3 u_zaxis;
uniform vec3 u_lightDir;
uniform vec3 u_tint;
uniform vec3 u_hightlight;
uniform int u_quality;
uniform float u_mie;
uniform float u_fog;
@ -295,5 +297,5 @@ void main() {
col = 1.0 - exp(-col);
col = min(col, vec3(1.0));
// Output to screen
f_color = vec4(col, 1.0);
f_color = vec4(col * u_tint + u_hightlight, 1.0);
}

View file

@ -27,7 +27,7 @@ void main() {
a_texCoord = v_texCoord;
a_dir = a_modelpos.xyz - u_cameraPos;
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime);
vec3 skyLightColor = pick_sky_color(u_skybox, u_dayTime, u_minSkyLight);
a_skyLight = skyLightColor.rgb*v_light.a;
mat4 viewmodel = u_view * u_model;