mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	reduced glitches in slr
This commit is contained in:
		| @@ -1056,6 +1056,9 @@ EX namespace slr { | |||||||
|       "float lo_gphi = gphi;" |       "float lo_gphi = gphi;" | ||||||
|       "float lo_s = s;" |       "float lo_s = s;" | ||||||
|       "float lo_alpha = PI/4.;" |       "float lo_alpha = PI/4.;" | ||||||
|  |       "float lx_gphi = gphi;" | ||||||
|  |       "float lx_s = s;" | ||||||
|  |       "float lx_alpha = PI/4.;" | ||||||
|       "float hi_gphi = gphi;" |       "float hi_gphi = gphi;" | ||||||
|       "float hi_s = s;" |       "float hi_s = s;" | ||||||
|       "float hi_alpha = PI/4.;" |       "float hi_alpha = PI/4.;" | ||||||
| @@ -1084,7 +1087,7 @@ EX namespace slr { | |||||||
|       "    s = asin(sinh(r) * c / cos(alpha)) / c;" |       "    s = asin(sinh(r) * c / cos(alpha)) / c;" | ||||||
|       "    gphi = 2.*sin(alpha)*s - atan(sin(alpha) * tan(c*s) / 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; }" |       "    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) {" |       "  if(next_nan != 0) {" | ||||||
|       "    mina = PI/4.; " |       "    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);" |         "float fr = (phi-lo_gphi) / (hi_gphi-lo_gphi);" | ||||||
|         "alpha = lo_alpha + (hi_alpha-lo_alpha) * fr;" |         "alpha = lo_alpha + (hi_alpha-lo_alpha) * fr;" | ||||||
|         "s = lo_s + (hi_s-lo_s) * fr;" |         "s = lo_s + (hi_s-lo_s) * fr;" | ||||||
|         "}" |  | ||||||
|       "beta = theta - phi + 2.*sin(alpha)*s;" |       "beta = theta - phi + 2.*sin(alpha)*s;" | ||||||
|       "alpha = alpha * sgn; beta = beta * sgn;" |       "alpha = alpha * sgn; beta = beta * sgn;" | ||||||
|       "return vec4(s * cos(beta) * cos(alpha), s * sin(beta) * cos(alpha), s * sin(alpha), 1.);" |       "return vec4(s * cos(beta) * cos(alpha), s * sin(beta) * cos(alpha), s * sin(alpha), 1.);" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue