我的问题: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
有人看到我认为错在哪里吗?
谢谢!
答案 0 :(得分:0)
abs()
是绝对值。您应该使用length()
功能。
"vec3 v = dot( u, n ) * n / ( length( n ) * length( n ) );",