THREE.JS 大坐标交点偏斜

THREE.JS Intersection skew with large coordinates

我正在使用 THREE.js 构建游戏。

目前我在这个位置有一个对象:

(-83645, 476450, 412912)

我正在尝试对此对象进行点击检测。
但是,当我使用 THREE.js 示例站点上所示的光线投射器时,我的光线总是偏斜的。如果我将所有坐标向下倾斜 100,则光线投射效果很好。

我想这可能与规范化期间的除法问题有关,也可能与某处某个除法发生的溢出错误有关。

目前,我正在缩小坐标,但是,在较长的 运行 中,我们希望坐标保持不变。

有人知道为什么大坐标会扭曲我们的光线吗?提前致谢!

编辑: 这是一个快速 fiddle: http://jsfiddle.net/88ehm1yf/

this answer 中所述,您需要增加相机 near 平面距离以避免精度问题。

此外,在您的 CSS 中设置 body { margin: 0 },或参阅 this answer 以了解在使用 Raycaster 时如何计算 canvas 偏移量。

three.js r.73