Raycaster在Three.js中缺少半架飞机-错误吗?

时间:2018-11-05 17:24:27

标签: three.js

为了拉伸2D圆角矩形而不会变形,我将矩形朝一个方向(例如,向左)重新定位了所需的量,并将该量添加到最右边的顶点以补偿并显得已拉伸。 问题是现在raycaster缺少矩形的右半部分。

I made the following jsfiddle stretching a normal rectangle:

http://jsfiddle.net/vser1n2u/5/
如果将鼠标悬停在矩形上,您将看到raycaster正常工作(“ TRUE”指示)。如果单击矩形,它将向左扩展。现在,如果您将鼠标悬停,您将看到它仅在一半时起作用(“ FALSE”指示)。

我是否缺少某些东西,或者这是一个Three.js错误?

1 个答案:

答案 0 :(得分:1)

在渲染几何体的顶点后对其进行修改时,需要重新计算边界球体,以使光线投射和平截头体剔除正常工作。

所以在您的情况下,

o.m.geometry.computeBoundingSphere();

更新的小提琴:http://jsfiddle.net/vser1n2u/6/

three.js r.98