1
我想根据使用three.js的轴对齐边界框来计算相机的近距离和远距离。 我试着这样说:基于包围盒计算相机的近距离和远距离
getNearFar = function(camera, box) {
var view_matrix = new THREE.Matrix4();
view_matrix.copy(camera.matrixWorldInverse.getInverse(camera.matrixWorld));
var minz = +Infinity; var maxz = -Infinity;
for (var i = 0; i < 8; i++) {
var x = i & 1 ? box.min.x : box.max.x;
var y = i & 2 ? box.min.y : box.max.y;
var z = i & 4 ? box.min.z : box.max.z;
var p = new THREE.Vector3(x, y, z);
p.applyMatrix3(view_matrix);
z = -p.z;
if (z > maxz) maxz = z;
if (z < minz) minz = z;
}
return {'near':minz, 'far':maxz};
};
我所做的是让摄像机视图矩阵,与箱体的8个点转换为相机的空间。近和远的距离应该是最小值和最大值z。但它没有给出正确的答案。我哪里做错了?
删除的问题。 – WestLangley