为什么相同的2D点和相机会产生不同的光线投射器结果?

时间:2019-05-20 07:57:32

标签: three.js

我希望直接在脚本中执行的代码和在工作者中执行的代码都是相同的。

var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( m, camera );

我已经通过控制台转储检查过了

console.log(JSON.stringify(camera));
console.log(JSON.stringify(m));

mcamera似乎都一样。

但是在工人那里

console.log(JSON.stringify(raycaster.ray));

产生此:

{
  "origin": {
    "x": 0,
    "y": 0,
    "z": 0
  },
  "direction": {
    "x": 0.03775438809497666,
    "y": -0.048541356122112495,
    "z": -0.9981073804583355
  }
}

并在脚本中生成以下内容:

{
  "origin": {
    "x": 0,
    "y": 3.061616997868383e-15,
    "z": 50
  },
  "direction": {
    "x": 0.03775438809497641,
    "y": -0.048541356122112224,
    "z": -0.9981073804583351
  }
}

我认为这是随后对raycaster.intersectObjects的调用产生不同结果的原因。

我看了Raycaster.js中的代码,看来setFromCamera与2d点和摄影机无关。

有任何线索吗?

0 个答案:

没有答案