2017-12-22 2 views
1

현재 내 코드는 3D 모델에서로드되고 해당 모델을 사용하여 노드를 만들고 장면에 노드를 표시합니다. 노드의 축척/회전 (오일러 각)을 설정하면 문제가 없습니다. 그러나, 나는 세계 원점을 기준으로 노드의 위치를 ​​설정하려고 시도하고 있으며 노드를 평면에 부착하지 않으려합니다.ARKit - 세계 원점을 기준으로 월드에 노드 위치 지정

내가 node.position과 아무 소용이 node.worldPosition를 설정하려고했습니다; 노드의 위치가 변경 되더라도 카메라가 움직이면 노드는 정적으로 유지되지 않고 카메라와 함께 이동합니다. 나는 ARKit을 처음 사용하기 때문에 아마도 어리석은 짓을하고있을 것이지만, 내가해야 할 일이 무엇인지 알 수 없으므로 도움이된다면 많은 도움이 될 것입니다.

편집 : 이상한 일은 SCNVector3 (0, 3, 0)이라고 말하도록 좌표를 설정하면 문제가되지 않지만 특정 수의 미터를 넘으면 실패 할 것입니다. 예상됩니까

답변

0

첫째, 이러한 일반적인 문제로 인해 월드 트래킹이 불량 할 수 있습니다.

  1. 불량 인 결부.

  2. 추적 원인 흐릿한 이미지를 원인빠른 운동이 실패

    을 추적하는 특징점의 낮은 번호를 사용할 수 원인 질감의

  3. 부족을 추적하는 특징점의 낮은 번호를 사용할 수 원인

그러나, 당신의 경우 (디버깅하는 것이 좀 더 까다 롭습니다)에서 일어난 일은 ...로드 된 모델을 탐지 할 가능성이 가장 높습니까? 현장의 수평면. 환언

, 당신은 음 Y 수평 검출면 아래의 노드를 배치하고

가의 Y 위치를 설정하려고 cameraView에게 변경에 따라 모델이 표류되게되는 좌표 사용 SCNNode 위치 수도 노드는 0 또는 0.1 미터와 같은 작은 양수 값으로 노드

node.position = SCNVector3(0, 0, -1) // SceneKit/AR coordinates are in meters 

sceneView.scene.rootNode.addChildNode(node) 

z = -1 카메라 뷰 앞에 SCNNode 1 미터를 배치합니다.

참고 : 테스트 목적으로 사용하는 놀이터를 사용하여 직접이 문제를 확인했습니다.

+0

답해 주셔서 감사합니다. 안타깝게도 ARTrackingState 검사를 사용하고있어 문제가 아니라 문제가 1, 2 또는 3이라고 생각합니다. 정상이며, 음수 -Y 좌표를 사용하여 절대로 노드를 배치하지 않습니다. 이상한 점은 좌표를 SCNVector3 (0, 3, 0)이라고 말하도록 설정하면 괜찮 으면 좋겠지 만 특정 수의 미터를 초과하면 실패하는 것 같습니다. 예상 되나요? 아, 축하해 주시면 기쁜 성탄입니다! – Henry

+0

안녕 헨리, 메리 크리스마스 ... 나는 시드니 호주에 있기 때문에 우리는 그것을 예스테이 레이션했다! 나는 추적이 정말로 일반적으로 훌륭하다는 것을 알았다. 나는 노드가 1 픽셀만큼 작아지고 마침내 스크린에서 사라질 때까지 거리와 1km 높이로 2km 떨어져 헬리콥터를 조종 할 수있는 헬리콥터 시뮬레이터 앱을 만들었습니다. 모든 테스트에서 나는 정말로 인상적인 추적을 발견했다. – Ash

+0

노드 (헬리콥터)는 화면 (1 픽셀보다 작음)에서 사라져서 다시 이동할 때 노드가 1 픽셀보다 커지도록 다시 나타납니다. – Ash

관련 문제