mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Made rain look better
This commit is contained in:
parent
99c76be297
commit
86814eba04
@ -102,9 +102,9 @@ void main() {
|
||||
#ifdef EXPERIMENTAL_RAIN
|
||||
vec3 old_color = color.rgb;
|
||||
|
||||
float fall_rate = 40.0;
|
||||
float fall_rate = 70.0;
|
||||
|
||||
dir.xy += wind_vel * dir.z / fall_rate;
|
||||
dir.xy += wind_vel * dir.z / fall_rate * 0;
|
||||
dir = normalize(dir);
|
||||
|
||||
float z = (-1 / (abs(dir.z) - 1) - 1) * sign(dir.z);
|
||||
@ -114,8 +114,8 @@ void main() {
|
||||
vec3 cam_wpos = cam_pos.xyz + focus_off.xyz;
|
||||
float rain_density = rain_density_at(cam_wpos.xy) * 10.0;
|
||||
if (rain_density > 0) {
|
||||
float rain_dist = 50.0;
|
||||
for (int i = 0; i < 5; i ++) {
|
||||
float rain_dist = 150.0;
|
||||
for (int i = 0; i < 6; i ++) {
|
||||
rain_dist *= 0.3;
|
||||
|
||||
vec3 rpos = vec3(vec2(dir_2d), view_pos.y) * rain_dist;
|
||||
@ -125,8 +125,12 @@ void main() {
|
||||
continue;
|
||||
}
|
||||
|
||||
vec2 drop_density = vec2(30, 3);
|
||||
vec2 drop_size = vec2(0.0015, 0.17);
|
||||
if (dot(rpos * vec3(1, 1, 0.3), rpos) < 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
vec2 drop_density = vec2(30, 1);
|
||||
vec2 drop_size = vec2(0.0008, 0.05);
|
||||
|
||||
vec2 rain_pos = (view_pos * rain_dist);
|
||||
rain_pos += vec2(0, tick.x * fall_rate + cam_wpos.z);
|
||||
@ -137,8 +141,8 @@ void main() {
|
||||
}
|
||||
vec2 near_drop = cell + (vec2(0.5) + (vec2(hash(vec4(cell, 0, 0)), 0.5) - 0.5) * vec2(2, 0)) / drop_density;
|
||||
|
||||
float avg_alpha = (drop_size.x * drop_size.y) / 1;
|
||||
float alpha = sign(max(1 - length((rain_pos - near_drop) / drop_size), 0));
|
||||
float avg_alpha = (drop_size.x * drop_size.y) * 10 / 1;
|
||||
float alpha = sign(max(1 - length((rain_pos - near_drop) / drop_size * 0.1), 0));
|
||||
float light = sqrt(dot(old_color, vec3(1))) + (get_sun_brightness() + get_moon_brightness()) * 0.01;
|
||||
color.rgb = mix(color.rgb, vec3(0.3, 0.4, 0.5) * light, mix(avg_alpha, alpha, min(1000 / dist_to_rain, 1)) * 0.25);
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ void main() {
|
||||
);
|
||||
|
||||
#ifdef EXPERIMENTAL_RAIN
|
||||
float rain_density = rain_density_at(cam_pos.xy + focus_off.xy) * 100.0;
|
||||
float rain_density = rain_density_at(cam_pos.xy + focus_off.xy) * 50.0;
|
||||
if (rain_density > 0 && surf_norm.z > 0.5) {
|
||||
vec3 drop_density = vec3(2, 2, 2);
|
||||
vec3 drop_pos = wave_pos + vec3(0, 0, -time_of_day.x * 0.025);
|
||||
|
@ -232,7 +232,7 @@ void main() {
|
||||
vec3 k_s = vec3(R_s);
|
||||
|
||||
#ifdef EXPERIMENTAL_RAIN
|
||||
float rain_density = rain_density_at(cam_pos.xy + focus_off.xy) * 100.0;
|
||||
float rain_density = rain_density_at(cam_pos.xy + focus_off.xy) * 50.0;
|
||||
if (rain_density > 0 && !faces_fluid && f_norm.z > 0.5) {
|
||||
vec3 pos = f_pos + focus_off.xyz;
|
||||
vec3 drop_density = vec3(2, 2, 2);
|
||||
|
Loading…
Reference in New Issue
Block a user