小编use*_*022的帖子

Three.js 以相机为原点的光线投射

我试图确定空间中的某个点是否对相机可见或隐藏在场景中其他对象后面。我通过从相机位置向空间中的该点投射光线并测试该光线是否与一组可相交的对象相交来实现此目的。

我的问题是,在相机位置本身与可相交对象集中的一个对象相交之前,不会发生相交。

我创建了一个 jsfiddle,其中如果检测到交叉点,则会从相机位置到我正在测试可见性的空间位置绘制一条线。目前我认为,该线仅在相机位置与可相交对象集相交的特定点处绘制。

如何让相交按应有的方式进行注册,而不必使相机位置与可相交对象集中的对象相交?

代码:

    var container;
    var camera, controls, scene, renderer;

    init();
    animate();

    function init() {

        camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
        camera.position.z = 1000;

        controls = new THREE.OrbitControls(camera);

        controls.rotateSpeed = 1.0;
        controls.zoomSpeed = 1.2;
        controls.panSpeed = 0.8;

        controls.noZoom = false;
        controls.noPan = false;

        controls.staticMoving = true;
        controls.dynamicDampingFactor = 0.3;

        controls.keys = [65, 83, 68];

        controls.addEventListener('change', render);

        // world

        scene = new THREE.Scene();

        var testObject_G = new THREE.CubeGeometry(100, 100, 5);
        var testObject_M = new THREE.MeshBasicMaterial({ …
Run Code Online (Sandbox Code Playgroud)

three.js raycasting

2
推荐指数
1
解决办法
6616
查看次数

标签 统计

raycasting ×1

three.js ×1