我有一个向量,我试图保持长度,但在与屏幕边缘碰撞时旋转90度,但它给我一个奇怪的效果...不知道我可以做什么穿但是它发生在我尝试应用矩阵和欧拉变换...同样对于屏幕检测,我有什么可以检测开关屏幕,但知道它是底部,顶部,右边还是左边边是很方便的...任何线索?谢谢!
var direction = new THREE.Vector3(-0.2, -0.2, 0);
var a = new THREE.Euler( (Math.PI/2), 0, 0, 'XYZ' );
direction.applyEuler(a);
碰撞;我正在使用以下内容:
camera.updateMatrixWorld(); // make sure the camera matrix is updated
camera.matrixWorldInverse.getInverse( camera.matrixWorld );
cameraViewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
frustum.setFromMatrix( cameraViewProjectionMatrix );
console.log(frustum.intersectsObject(textMesh));
答案 0 :(得分:0)
我删除了线以获得反转的相机投影矩阵。
屏幕边缘有效地变成了一个对象"外面"我的view frustum
,我的对象现在可以主动与之碰撞。通过现在是一个消极的视锥,除了我们看到的所有东西都是一个围墙的对象'这限制了截头体本身。