Three.js MultiplyVector3已弃用如何更换

时间:2013-05-25 15:14:59

标签: javascript three.js webgl

我有一个代码,在控制台中的three.js中说:

  

已弃用:Matrix4的.multiplyVector3()已被删除。使用vector.applyMatrix4(矩阵)或vector.applyProjection(矩阵)代替。

但我不知道该怎么做。

这是我的代码:

 var rotation_matrixc = new THREE.Matrix4();
 rotation_matrixc.extractRotation(CHROMEboyPC.matrix);
 var cam_vectorc = new THREE.Vector3(    100 ,  30 ,  5);
 var   final_cam_vectorc = rotation_matrixc.multiplyVector3(cam_vectorc);
 camera.position.copy(CHROMEboy.position ).add(final_cam_vectorc   );
 camera.lookAt(CHROMEboy.position);

如何使用建议的方法编写等效代码。

2 个答案:

答案 0 :(得分:6)

您使用相反的表示法:

使用矢量.applyMatrix3或.applyMatrix4函数旋转矢量

var final_cam_vectorc = cam_vectorc.applyMatrix4( rotation_matrixc );

答案 1 :(得分:0)

要替换multipleVector3,请简化遵循方法并稍微澄清前面的答案:

cameraOffset是一个Vector,其中包含摄像机相对于后跟摄像机的相对位置。

“玩家”是跟随的对象。您可能需要增加偏移量。

        var cameraOffset = new THREE.Vector3(0, 1, 2.5);

        // modify it relative to the followed object
        var new_cam_position = cameraOffset.applyMatrix4( player.matrix );

        // copy the new position vector to the camera
        camera.position.copy(new_cam_position);

        // look at
        camera.lookAt(player.position);