Threejs CameraHelper点坐标

时间:2016-02-15 10:59:00

标签: javascript camera three.js

我想在three.js中获得相机渲染量的控制点

可以使用带有属性pointMap的camera example中的相机助手来访问它

console.log(cameraOrthoHelper.pointMap);

返回:

c, cf1, cf2, cf3,cf4, cn1, cn2, cn3, cn4, f1, f2, f3, f4, n1, n2, n3, n4, p, t, u1, u2, u3

Threejs camera helper

我感兴趣的是n1 ... n4和f1 ... f4(橙色立方体)

但价值似乎是错误的。 我需要做些什么来利用现实世界坐标中的值?

1 个答案:

答案 0 :(得分:2)

使用相机的属性设置这些点。

new THREE.OrthographicCamera( left, right, top, bottom, near, far );

所以,如果你想改变“橙色盒子”,你应该改变相机,你的助手也会改变......

更新

您可以获取相机辅助矩阵并将其应用于您感兴趣的顶点。 如果你想要橙色框,这意味着你需要四个近点和四个点:

近点:

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]

将相机辅助矩阵应用于点,并将它们放在世界空间中。在你这样做之前你还要更新正交相机的worldMatrix,看来cameraHelper矩阵依赖于它:

camera.updateMatrixWorld();
point.applyMatrix4( cameraHelper.matrix );

检查 a fiddle here ,证明上述代码有效。