【问题标题】:THREE.JS Intersection skew with large coordinatesTHREE.JS 交点偏斜与大坐标
【发布时间】:2015-08-12 22:28:45
【问题描述】:

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

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

(-83645, 476450, 412912)

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

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

目前,我正在缩小坐标,但从长远来看,我们希望坐标保持不变。

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

编辑: 这是一个快速的小提琴: http://jsfiddle.net/88ehm1yf/

【问题讨论】:

  • 你能创建一个简单的测试用例来重现这个问题吗?
  • @Blaise 绝对是,现在附上了一个小提琴。
  • 您的问题在这里得到解答:stackoverflow.com/questions/26049182/…。另外,请确保您设置了body { margin: 0 }。小提琴:jsfiddle.net/88ehm1yf/1
  • @WestLangley 刚刚注意到我从未将其标记为正确。如果您提交答案,我会标记它。
  • @WestLangley 刚刚注意到我从未将其标记为正确。如果您提交答案,我会标记它。

标签: javascript three.js raycasting


【解决方案1】:

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

另外,在您的 CSS 中,设置 body { margin: 0 },或参阅 this answer,了解如何在使用 Raycaster 时考虑画布偏移。

three.js r.73

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2023-03-08
    • 2021-08-04
    • 2011-10-13
    相关资源
    最近更新 更多