Autodesk Forge Viewer에서 카메라를 제어하려고합니다. 목표와 위치 설정은 잘 작동하는 것처럼 보이지만 회전 또는 쿼터니언을 설정하려고하면 아무 효과가 없습니다.Forge 뷰어에서 카메라 제어
카메라를 얻으려면 매개 변수를 설정하려고 시도한 후에 getCamera 함수를 사용한 다음 applyCamera를 사용합니다.
내가 달성하려는 것은 휴대용 장치에서 장치 방향을 사용하여 모델을 회전하는 것입니다. 알파와 베타를 사용하여 목표를 설정하는 것은 순조로운 경험이 아닙니다.
// get camera
var cam = _viewer.getCamera();
// get position
var vecPos = cam.position;
// get view vector
var vecViewDir = new THREE.Vector3();
vecViewDir.subVectors(cam.target,cam.position);
// get length of view vector
var length = vecViewDir.length();
// rotate alpha
var vec = new THREE.Vector3();
vec.y = length;
var zAxis = new THREE.Vector3(0,0,1);
vec.applyAxisAngle(zAxis,THREE.Math.degToRad(alpha));
// rotate beta
var vec2 = new THREE.Vector3(vec.x,vec.y,vec.z);
vec2.normalize();
vec2.negate();
vec2.cross(zAxis);
vec.applyAxisAngle(vec2,THREE.Math.degToRad(beta) + Math.PI/2);
// add to camera
cam.target.addVectors(vecPos,vec);
_viewer.applyCamera(cam,false);
안녕하세요, 작년에 모바일 장치로 뷰어의 카메라를 구동하는 실험을했습니다. 이것은 그것에 관한 블로그입니다. https://forge.autodesk.com/cloud_and_mobile/2016/11/remotely-connect-forge-viewer-with-mobile-sensor-and-touch-by-javascript.html. Viewer3D.js 코드를 복사하여 카메라를 회전 시켰습니다. 좀 도와 줄 수 있니? 그렇지 않은 경우 Google에서 조사 할 코드 스 니펫을 제공 할 수 있습니까? –
안녕하세요. 내가 처음으로 질문 한 것에 대한 코드 스 니펫을 추가했습니다. 쿼터니언을 사용하여 코드를 변경하려고했지만 여전히 좋지 않습니다. 내 장치의 알파 및 베타 값은 매우 "불안정"합니다. Chrome에서 시뮬레이션 된 기기 방향으로 실행하면 잘 보입니다. – FrodeTo