测角函数在GLSL中起作用

时间:2015-09-17 03:07:52

标签: opengl glsl

几何着色器的输出与预期的输出大不相同。

这个问题很可能与我经历过的测角函数的奇怪行为有关。

计算S时,传递给片段着色器,结果为

float e = u - 3.14159 / 2;
float f = v - 3.14159 / 2;

float p = (- sin (f) * a - cos (f) * b) / D;

vec2 S = A + vec2 (-sin (u), - cos (u)) * p;

float p = (cos (v) * a - sin (v) * b) / D;

vec2 S = A + vec2 (sin (u), - cos (u)) * p;

是不同的,他们显然不应该这样。

1 个答案:

答案 0 :(得分:3)

结果不同并不明显。 p以两种不同的方式计算,S。在代数上,它们变成了不同的东西。

方法1:

S = A + vec2(-sin(u)*(-sin(f)*a - cos(f)*b)/D, -cos(u)*(-sin(f)*a - cos(f)*b)/D);

方法2:

S = A + vec2( sin(u)*( cos(v)*a - sin(v)*b)/D, -cos(u)*( cos(v)*a - sin(v)*b)/D);

您的uvef不匹配。