如何在相交射线刚刚击中的平面上得到平行向量?

时间:2013-10-07 12:04:33

标签: html5 math three.js webgl shader

我的问题: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

有人看到我认为错在哪里吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

"vec3 v = dot( u, n ) * n / ( length( n ) * length( n ) );",