如何返回THREE.Perspective相机的视锥并将其存储为变量?

时间:2019-02-20 22:06:47

标签: three.js camera frustum

我正在查看Three.js API,发现Frustum用于摄像机可见区域。我想知道是否可以访问PerspectiveCamera的视图视锥并将该视锥声明为对象。基本上,我的目标是为相机的视锥细胞着色。

Image

1 个答案:

答案 0 :(得分:2)

如果您想可视化摄像机的截锥体,则可以使用THREE.CameraHelper。它实质上完成了您在问题中所描述的内容:它使您可以为平截头体着色,以便对其进行可视化处理。

要实现它,您只需要使用相机作为参数将其初始化,然后将其添加到场景中即可:

var camera = new THREE.PerspectiveCamera( 75, camRatio, 0.1, 1000 );
var helper = new THREE.CameraHelper( camera );
scene.add( helper );

您可以阅读有关in the docs的更多信息,并可以在实际的on the right side of this example中查看它

更新:

如果要读取用于构建帮助器的数据,则可以访问其.pointmap属性。它有很多点可以确定近平面(n1, n2, n3...),远平面(f1, f2, f3...),目标等的位置。要更好地了解每个键的含义,可以{{3 }},从第38行到第83行。其中的代码非常有据可查。