我有一架飞机,使用Threejs将其添加到场景中。我正在使用用户界面控件调整位置和旋转,如果位置或旋转发生变化,那么我正在运行以下代码来获取更新的平面/立方体顶点和矩阵值:
plane.updateMatrixWorld();
plane.updateMatrix();
plane.geometry.applyMatrix( plane.matrix );
plane.matrix.identity();
console.log(plane.matrix); // using this to get matrix values
console.log(plane.geometry.vertices); //using this to get plane vertices.
当我在上面的代码中运行时,场景中平面/立方体/网格的位置偏移面临问题。
尝试添加以下代码以使其动态更新到顶点,但不起作用:
plane.verticesNeedUpdate = true;
plane.elementsNeedUpdate = true;
plane.morphTargetsNeedUpdate = true;
plane.uvsNeedUpdate = true;
plane.normalsNeedUpdate = true;
plane.colorsNeedUpdate = true;
plane.tangentsNeedUpdate = true;
是的,得到了解决方案,当代码下面的位置/旋转位置发生变化时。
var plane_vector;
function updateVertices(){
plane.updateMatrixWorld();
console.log("plane Vertices: ");
for(i = 0; i<=(plane.geometry.vertices.length-1); i++){
plane_vector[i] =
plane.geometry.vertices[i].clone();
plane_vector[i].applyMatrix4(
plane.matrixWorld );
}
console.log(plane.matrix);
}