Three.js,中心摄像头,可以查看场景中的所有对象

时间:2015-06-04 15:07:37

标签: three.js frustum

我写了一个算法,可以通过双击然后爆炸(折叠和展开)机械设置。

但我想在此后向前或向后移动相机以查看fov中的所有物体。 我正在尝试使用视锥体来计算平截头体和物体之间的交点,但我不知道如何使用平面。 我正在使用OrthographicCamera。

我做什么:

  1. 在每一帧我重新计算新的视锥体(当相机移动时):

    projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
    frustum.setFromMatrix(projScreenMatrix);
    
  2. 然后我在场景中所有对象的6个平面和边界框上做一个循环:

    for (var i = 0; i < planes.length; i++) {
            var plane = planes[i];
            for (var j = 0; j < boxs.length; j++) {
                var box = boxs[j];
                var line = new THREE.Line3(box.min, nox.max);
                //console.log({'plane': plane, 'line': line});
                if (plane.isIntersectionLine(line))
                    // move camera
            };
    };
    
  3. plane.isIntersectionLine(line)始终为false。

    你有什么想法吗?

    由于

0 个答案:

没有答案