Raycaster交叉点到网格的距离有时会出错。 Three.js 72dev

问题描述 投票:0回答:1

我想要到网格交叉点的距离。网格是一个加载了ObjectLoader的导入json。

    trnek.set(pozTravcex,0,pozTravcez);
    sidro.set(pozTravcex,100,pozTravcez);
    sidro.normalize();
    plovc.set(trnek,sidro);
    scene.updateMatrixWorld();
    visinaTravce = plovc.intersectObjects(scene.children,true);
    var point=0;
    for (var j=0; j < visinaTravce.length; j++){
        if (visinaTravce[j].object.name == "tla"){
                pozTravcey = visinaTravce[j].distance; //plovc.ray.origin.distanceTo(visinaTravce[0].point);
            point = visinaTravce[j].point;
            console.log("razdalja je: ",visinaTravce[j].point.y);
  • 我得到它的工作,如果我在导出之前缩小网格。 (所以我的坐标<2.0。
  • 缩放网格会给raycaster带来问题(我更新了场景matrixWorld。)

所以底线是。如果物体超小,我会得到正确的y距离。如果我调整大小并将其导出,那么测得的距离就会越远离中心越远。

http://s000.tinyupload.com/?file_id=51927245638674467144

在左侧,图片草接近0,0,0,测量的距离(y)是正确的。距离越来越远。如果我收缩物体,一切都已到位。

这可能是个错误吗?

three.js distance intersection raycasting
1个回答
0
投票

哦,我在使用Raycaster时犯了一个错误。第二个参数就是方向。我把它设置为0,1,0并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.