From 561c8e975c35ac95f672a36968e035462856daf6 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 3 Sep 2019 08:27:39 +0200 Subject: [PATCH] reduced glitches in slr --- nonisotropic.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nonisotropic.cpp b/nonisotropic.cpp index df6bfde5..9ecc4b58 100644 --- a/nonisotropic.cpp +++ b/nonisotropic.cpp @@ -1056,6 +1056,9 @@ EX namespace slr { "float lo_gphi = gphi;" "float lo_s = s;" "float lo_alpha = PI/4.;" + "float lx_gphi = gphi;" + "float lx_s = s;" + "float lx_alpha = PI/4.;" "float hi_gphi = gphi;" "float hi_s = s;" "float hi_alpha = PI/4.;" @@ -1084,7 +1087,7 @@ EX namespace slr { " s = asin(sinh(r) * c / cos(alpha)) / c;" " gphi = 2.*sin(alpha)*s - atan(sin(alpha) * tan(c*s) / c);" " if(gphi > phi) { next_nan = 0; maxa = alpha; hi_gphi = gphi; hi_s = s; hi_alpha = alpha; }" - " else { mina = alpha; lo_gphi = gphi; lo_s = s; lo_alpha = alpha; }" + " else { mina = alpha; lx_gphi = lo_gphi; lx_s = lo_s; lx_alpha = lo_alpha; lo_gphi = gphi; lo_s = s; lo_alpha = alpha; }" " }" " if(next_nan != 0) {" " mina = PI/4.; " @@ -1101,11 +1104,10 @@ EX namespace slr { " }" " }" " }" - "if(hi_alpha < 9.) {" + "if(hi_alpha <= 9.) { hi_gphi = lx_gphi; hi_s = lx_s; hi_alpha = lx_alpha; } " "float fr = (phi-lo_gphi) / (hi_gphi-lo_gphi);" "alpha = lo_alpha + (hi_alpha-lo_alpha) * fr;" "s = lo_s + (hi_s-lo_s) * fr;" - "}" "beta = theta - phi + 2.*sin(alpha)*s;" "alpha = alpha * sgn; beta = beta * sgn;" "return vec4(s * cos(beta) * cos(alpha), s * sin(beta) * cos(alpha), s * sin(alpha), 1.);"