three.js 코드에 문제가 있습니다.두 개의 개별 객체에서 Three.JS의면 정렬 문제.
두 개의면을 선택하여 두 개의 객체를 정렬하고 두 번째면 (및 객체)이 첫 번째 객체의 선택된면의 법선 벡터와 일치하도록 정렬하려고합니다.
지금까지 내가 가진 :
var normalMatrix = new THREE.Matrix3().getNormalMatrix(object.matrixWorld);
var worldNormal = face.normal.clone().applyMatrix3(normalMatrix).normalize();
var normalMatrixRef = new THREE.Matrix3().getNormalMatrix(objectRef.matrixWorld);
var worldNormalRef = faceRef.normal.clone().applyMatrix3(normalMatrixRef).normalize();
여기서 객체가 회전됩니다 내 목적은, 얼굴은 객체의 선택한면이 objectref도가 고정 객체 참조이며, faceRef 개체의 정상 나는 일치시키고 싶다.
object.lookAt(worldNormalRef);
일에
이전에, 나는
object.up = new THREE.Vector3(0,0,1);
object.up = worldNormal;
object.up = face.normal;
과도 작업 중 하나를 시도하고있다.
object.up 사례가 제대로 작동하지 않습니다. 액션을 수행 할 때 대상 객체 (회전 대상 객체)는 회전하지만면을 올바르게 정렬하지 않습니다. 그것은 임의적이지만 어떤 식 으로든 현재의 회전 (예 : 때때로 (0,1,0) 또는 simliar를 따라 회전 함)에 연결됩니다. 객체를 미리 회전 시키면 조금 회전합니다.
이론적으로 볼 때 나는 올바르게 '최대', 그것은 작동해야하지만이 나던 설정으로 내 faceRef만큼, 그리고 세계 벡터를 사용합니다.
어떤 아이디어?