2017-11-24 1 views
0

.dae 모델로 SCNNode를 만듭니다. ARKit dae 모델 위치

let node = SCNNode() 
    let scene = SCNScene(named: "scene.scnassets/scene.dae")! 
    for child in scene.rootNode.childNodes 
    { 
     node.addChildNode(child) 
    } 

그런 다음 simbTransform을 추가하고 내가 카메라 노드가 부착되어 이동하면 AR 장면

var translation = matrix_identity_float4x4 
    translation.columns.3.z = -1 
    node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation) 
    self.sceneView.scene.rootNode.addChildNode(node) 

에 노드를 추가 할 수 있습니다. 그래서 저는 노드 주위를 걸을 수 없으며 가까이 다가 갈 수 없습니다.

하지만 내가 그런 것을 할 때, 예상대로 작동합니다.

let node = SCNNode(geometry: SCNBox(width: 0.5, height: 0.5, length: 0.5, chamferRadius: 0)) 
    var translation = matrix_identity_float4x4 
    translation.columns.3.z = -1 
    node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation) 
    self.sceneView.scene.rootNode.addChildNode(node) 

그래서 어떻게 위치를 지정하는 .dae 만 모델이 아닌 카메라로 노드를 연결할 수 있습니다.

답변

0

이 코드를 수행하는 방법은 무엇입니까?
var translation = matrix_identity_float4x4 translation.columns.3.z = -1 node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation) self.sceneView.scene.rootNode.addChildNode(node)

AR 세션의 업데이트 방법에서 이렇게하면 카메라가 움직일 때마다 개체의 변형이 변경되므로 논리적입니다. 장면 설정 중에 한 번만 호출해야합니다.