Handle SSR transition better

This commit is contained in:
Joshua Barretto 2022-10-10 20:58:32 +01:00
parent 9285e48ff0
commit d4c81cf8b8

View File

@ -172,11 +172,11 @@ void main() {
new_uv = clamp(new_uv, vec2(0), vec2(1)); new_uv = clamp(new_uv, vec2(0), vec2(1));
vec3 new_wpos = wpos_at(new_uv);; vec3 new_wpos = wpos_at(new_uv);
float new_dist = distance(wpos_at(new_uv), cam_pos.xyz); float new_dist = distance(new_wpos, cam_pos.xyz);
float merge = min( float merge = min(
// Off-screen merge factor // Off-screen merge factor
clamp((1.0 - abs(new_uv.y - 0.5) * 2) * 2.0, 0, 0.75), clamp((1.0 - abs(new_uv.y - 0.5) * 2) * 3.0, 0, 0.75),
// Depth merge factor // Depth merge factor
min( min(
clamp((new_dist - dist * 0.5) / (dist * 0.5), 0.0, 1.0), clamp((new_dist - dist * 0.5) / (dist * 0.5), 0.0, 1.0),
@ -184,12 +184,14 @@ void main() {
) )
); );
color.rgb = mix(color.rgb, texture(sampler2D(t_src_color, s_src_color), new_uv).rgb, merge); if (merge > 0.0) {
wpos = new_wpos; color.rgb = mix(color.rgb, texture(sampler2D(t_src_color, s_src_color), new_uv).rgb, merge);
dist = distance(wpos, cam_pos.xyz); wpos = new_wpos;
dir = (wpos - cam_pos.xyz) / dist; dist = distance(wpos, cam_pos.xyz);
cloud_blend = min(merge * 2.0, 1.0); dir = (wpos - cam_pos.xyz) / dist;
is_reflection = true; cloud_blend = merge;
is_reflection = true;
}
} else { } else {
#else #else
{ {