【发布时间】:2014-06-17 19:29:51
【问题描述】:
我对 three.js 比较陌生,我正在尝试定位和操纵平面对象,以产生覆盖在球体对象(或任何其他对象)表面上的效果,以便平面采用以下形式物体表面。目的是稍后能够在表面上移动飞机。
我将平面定位在球体的前面,并通过平面的顶点向球体投射光线以检测与球体的交点。然后我尝试更改所述顶点的 z 位置,但它没有达到预期的结果。谁能给我一些关于如何让这个工作的指导,或者确实建议另一种方法?
这就是我尝试更改顶点的方式(偏移量为 1 以在球体表面“可见”);
planeMesh.geometry.vertices[vertexIndex].z = collisionResults[0].distance - 1;
确保在渲染之前设置以下内容;
planeMesh.geometry.verticesNeedUpdate = true;
planeMesh.geometry.normalsNeedUpdate = true;
我有一个显示我在哪里的小提琴,在这里我将我的光线投射到 z 并且我没有与球体相交(碰撞),并且不能以我希望的方式改变平面。
http://jsfiddle.net/stokewoggle/vuezL/
您可以使用左右箭头(无论如何在 chrome 中)围绕场景旋转相机以查看平面的形状。我已经让球体透视,因为我发现更好地看到飞机很有用。
编辑:更新小提琴并更正描述错误。
【问题讨论】:
标签: javascript 3d three.js collision-detection raycasting