Threejs CameraHelper点坐标
Threejs CameraHelper point coordinate
我想在three.js
中获取相机渲染体积的控制点
可以使用像 camera example 中带有属性 pointMap
的相机助手来访问它
console.log(cameraOrthoHelper.pointMap);
return :
c, cf1, cf2, cf3,cf4, cn1, cn2, cn3, cn4, f1, f2, f3, f4, n1, n2, n3, n4, p, t, u1, u2, u3
我感兴趣的是 n1...n4 和 f1...f4(橙色立方体)
但是这个值好像不对。
我需要做什么才能利用现实世界坐标中的这些值?
这些点是使用相机的属性设置的。
new THREE.OrthographicCamera( left, right, top, bottom, near, far );
所以如果你想改变 "orange box" 你应该只改变相机,你的助手也会改变...
更新
您可以获得相机辅助矩阵并将其应用于您感兴趣的顶点。
如果你想要橙色框,这意味着你需要四个近点和四个远点:
近点:
cameraHelper.pointMap[n1][0]
cameraHelper.pointMap[n2][0]
cameraHelper.pointMap[n3][0]
cameraHelper.pointMap[n4][0]
远点:
cameraHelper.pointMap[f1][0]
cameraHelper.pointMap[f2][0]
cameraHelper.pointMap[f3][0]
cameraHelper.pointMap[f4][0]
将相机辅助矩阵应用到点上,您就在世界中拥有了它们 space。在你这样做之前,你还必须更新正交相机的 worldMatrix,似乎 cameraHelper 矩阵依赖于它:
camera.updateMatrixWorld();
point.applyMatrix4( cameraHelper.matrix );
检查 a fiddle here 以证明上面的代码有效。
我想在three.js
中获取相机渲染体积的控制点可以使用像 camera example 中带有属性 pointMap
的相机助手来访问它console.log(cameraOrthoHelper.pointMap);
return :
c, cf1, cf2, cf3,cf4, cn1, cn2, cn3, cn4, f1, f2, f3, f4, n1, n2, n3, n4, p, t, u1, u2, u3
我感兴趣的是 n1...n4 和 f1...f4(橙色立方体)
但是这个值好像不对。 我需要做什么才能利用现实世界坐标中的这些值?
这些点是使用相机的属性设置的。
new THREE.OrthographicCamera( left, right, top, bottom, near, far );
所以如果你想改变 "orange box" 你应该只改变相机,你的助手也会改变...
更新
您可以获得相机辅助矩阵并将其应用于您感兴趣的顶点。 如果你想要橙色框,这意味着你需要四个近点和四个远点:
近点:
cameraHelper.pointMap[n1][0]
cameraHelper.pointMap[n2][0]
cameraHelper.pointMap[n3][0]
cameraHelper.pointMap[n4][0]
远点:
cameraHelper.pointMap[f1][0]
cameraHelper.pointMap[f2][0]
cameraHelper.pointMap[f3][0]
cameraHelper.pointMap[f4][0]
将相机辅助矩阵应用到点上,您就在世界中拥有了它们 space。在你这样做之前,你还必须更新正交相机的 worldMatrix,似乎 cameraHelper 矩阵依赖于它:
camera.updateMatrixWorld();
point.applyMatrix4( cameraHelper.matrix );
检查 a fiddle here 以证明上面的代码有效。