2
0
Эх сурвалжийг харах

Use separate atan and atan2 functions

Lubos Lenco 4 жил өмнө
parent
commit
9a59acf0d2

+ 2 - 2
Sources/arm/shader/MaterialParser.hx

@@ -1455,7 +1455,7 @@ class MaterialParser {
 				out_val = 'atan($val1)';
 			}
 			else if (op == "ARCTAN2") {
-				out_val = 'atan($val2, $val1)';
+				out_val = 'atan2($val1, $val2)';
 			}
 			if (use_clamp) {
 				return 'clamp($out_val, 0.0, 1.0)';
@@ -1599,7 +1599,7 @@ class MaterialParser {
 			return '($co.x + $co.y) * 0.5';
 		}
 		else if (grad == "RADIAL") {
-			return 'atan($co.y, $co.x) / (3.141592 * 2.0) + 0.5';
+			return 'atan2($co.x, $co.y) / (3.141592 * 2.0) + 0.5';
 		}
 		else if (grad == "QUADRATIC_SPHERE") {
 			return "0.0";

+ 1 - 2
Sources/arm/shader/NodeShader.hx

@@ -201,7 +201,6 @@ class NodeShader {
 		s += '#define fract frac\n';
 		s += '#define mix lerp\n';
 		// s += '#define fma mad\n';
-		s += '#define atan(x, y) atan2(y, x)\n';
 		// s += '#define clamp(x, 0.0, 1.0) saturate(x)\n';
 
 		s += header;
@@ -386,7 +385,6 @@ class NodeShader {
 		s += '#define dFdx dfdx\n';
 		s += '#define dFdy dfdy\n';
 		s += '#define inversesqrt rsqrt\n';
-		s += '#define atan(x, y) atan2(y, x)\n';
 		s += '#define mul(a, b) b * a\n';
 		s += '#define discard discard_fragment()\n';
 
@@ -598,6 +596,7 @@ class NodeShader {
 		s += '#define mul(a, b) b * a\n';
 		s += '#define textureShared texture\n';
 		s += '#define textureLodShared textureLod\n';
+		s += '#define atan2(x, y) atan(y, x)\n';
 		s += header;
 
 		var in_ext = '';

+ 1 - 1
Sources/arm/shader/ShaderFunctions.hx

@@ -385,7 +385,7 @@ vec2 envMapEquirect(const vec3 normal, const float angle) {
 	const float PI = 3.1415926535;
 	const float PI2 = PI * 2.0;
 	float phi = acos(normal.z);
-	float theta = atan(-normal.y, normal.x) + PI + angle;
+	float theta = atan2(-normal.y, normal.x) + PI + angle;
 	return vec2(theta / PI2, phi / PI);
 }
 ";