javascript - 从内部转换时,Raycast 不会击中网格

标签 javascript three.js raycasting

我设置了一个简单的场景,我的相机位于球体几何体中

var mat = new THREE.MeshBasicMaterial({map: THREE.ImageUtils.loadTexture('0.jpg') , overdraw:true,  color: 0xffffff, wireframe: false });
        var sphereGeo = new THREE.SphereGeometry(1000,50,50);
        var sphere = new THREE.Mesh(sphereGeo,mat);
        sphere.scale.x = -1;
        sphere.doubleSided = false;
        scene.add(sphere);

我设置了一个功能,我可以在其中环顾球体内部,我的目的是能够在鼠标按下时转换光线,击中球体并获得击中发生的坐标。我正在转换光线,但交叉点仍然是空的。

var vector = new THREE.Vector3();
      vector.set( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
      vector.unproject( camera );

      raycaster.ray.set( camera.position, vector.sub( camera.position ).normalize());

var intersects = raycaster.intersectObjects(scene.children, true);

一切都适用于也放在我的球体中的测试立方体。 我的问题是,你是否从内部击中物体有关系吗?因为那是我想到的唯一解释。

提前致谢。

最佳答案

sphere.doubleSided 几年前更改为 sphere.material.side = THREE.DoubleSide

关于javascript - 从内部转换时,Raycast 不会击中网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29534613/

相关文章:

javascript - 单击展开,单击外部折叠

javascript - 如何触发到达页面中特定div的事件滚动

c++ - 更改矩形大小时重新计算光线追踪/转换成本

javascript - 将值从 iOS 传递到 uiWebView

三个js中旋转不正确

javascript - 如何在 three.js 中从 BufferGeometry 绘制 2D/3D 网格

three.js - 在 Three.js 中挤出缓冲区几何图形?

javascript - 通过 coords x, y Fabric js 发出点击事件

c++ - 光线追踪:转换问题

javascript - 如何使用 JavaScript 重置文本字段值?