0

我的问题:http: //i.imgur.com/fphNzcV.jpg

我所拥有的:intersect, n, p。其中 p 是空间中的一个随机点。N 是飞机的法线。

我所寻求的:w

我如何尝试在我的着色器中解决它:

"vec3 n = normalize(faceNormal);",
"vec3 p = vec3(1.0);",
"vec3 u = p - intersect;",
"vec3 absNormal = abs(n);",
"vec3 v = dot(u, n) * n / (absNormal * absNormal);",
"vec3 w = u - v;",

并且矢量不会与平面平行:http: //i.imgur.com/9omScb6.png

有人看到我哪里想错了吗?

谢谢!

4

1 回答 1

0

abs()是绝对值。您应该使用该length()功能。

"vec3 v = dot( u, n ) * n / ( length( n ) * length( n ) );",
于 2013-10-07T17:23:06.977 回答