엔티티 앵커와 카메라 사이의 거리 가져 오기

HeySaiK

ARView하나의 엔티티가 포함 된 장면을 추가하고 있습니다. 엔티티의 앵커와 카메라 사이의 거리를 어떻게 얻을 수 있을지 궁금했습니다. 카메라의 현재 위치를 얻는 방법을 알고 있지만 arScene두 위치를 모두 빼도 올바른 위치가 나오지 않기 때문에 내가 얻는 위치가 잘못되었을 것입니다. 다음은 몇 가지 코드입니다.

import RealityKit

class ViewController: UIViewController, ARSessionDelegate {
  let arScene = try! TestProj.loadScene()
  @IBOutlet var sceneView: ARView!

  override func viewDidLoad() {
    ...
    sceneView.scene.addAnchor(arScene)
    ...
  }

  func session(_ session: ARSession, didUpdate frame: ARFrame) {
    // Calculate distance here
    let cameraPos = frame.camera.transform.columns.3
    let entityPos = // Position of entity's anchor
    let distance = // Find distance here
  }
}
앤디 페도로프

Convex Raycast두 끝점 사이의 광선에 대해 RealityKit 장면의 모든 지오메트리에 대해을 수행해야합니다 .

import UIKit
import RealityKit

class ViewController: UIViewController {

    @IBOutlet var arView: ARView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let entity = ModelEntity(mesh: .generateBox(size: 0.4))
        entity.name = "Cube"

        let anchor = AnchorEntity(world: [0,0,0])
        anchor.addChild(entity)
        arView.scene.anchors.append(anchor)
    
        // For every entity that could be hit,
        // we must generate a collision shape.
        entity.generateCollisionShapes(recursive: true)
    }

    @IBAction func onTap(_ sender: UITapGestureRecognizer) {

        let query: CollisionCastQueryType = .nearest
        let mask: CollisionGroup = .default

        let camera = arView.session.currentFrame?.camera
        let x = (camera?.transform.columns.3.x)!
        let y = (camera?.transform.columns.3.y)!
        let z = (camera?.transform.columns.3.z)!

        let transform: SIMD3<Float> = [x, y, z]
           
        let raycasts: [CollisionCastHit] = arView.scene.raycast(
                                                           from: transform, 
                                                             to: [0, 0, 0], 
                                                          query: query, 
                                                           mask: mask, 
                                                     relativeTo: nil)
    
        guard let raycast: CollisionCastHit = raycasts.first
        else { return }
    
        print(raycast.distance)     // Distance from the ray origin to the hit
        print(raycast.entity.name)  // The entity that was hit
        print(raycast.position)     // The position of the hit
    }    
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

커스텀 유효성 검사기에서 엔티티 관리자 가져 오기

분류에서Dev

SPARQL / DBPedia : 엔티티 페이지 URI를 몰라도 속성을 통해 엔티티 가져 오기

분류에서Dev

Angular Ionic 가져 오기 네이티브 카메라

분류에서Dev

배열 열거 중 핵심 데이터 가져 오기 엔티티

분류에서Dev

Symfony2 다른 엔티티에있는 엔티티의 엔티티 가져 오기

분류에서Dev

엔티티 관리자가 관리하는 엔티티는 힙 메모리에 2 개의 오브젝트가 있습니까?

분류에서Dev

클래스 라이브러리 데이터 엔티티 모델의 웹 구성에서 연결 문자열 가져 오기

분류에서Dev

카메라 사진에 스티커 오버레이를 추가하는 방법

분류에서Dev

Hibernate-전체 엔티티를 가져 오지 않고 엔티티의 속성 가져 오기

분류에서Dev

DXF 파일-레이블 텍스트가있는 "AcDbText"엔티티를 지오메트리 엔티티 (AcDbPolyline)에 링크하려면 어떻게해야합니까?

분류에서Dev

CoreData : NSFetchedResultController를 사용하여 여러 엔티티 가져 오기

분류에서Dev

Linq의 문자 값을 엔티티로 가져 오기

분류에서Dev

modelsim에서 vhdl 엔티티의 종속성 가져 오기

분류에서Dev

Serializer : 엔티티의 직렬화 그룹 가져 오기

분류에서Dev

Entity Framework : 특정 유형의 모든 엔티티 가져 오기

분류에서Dev

Breeze 엔티티에있는 속성 이름 가져 오기

분류에서Dev

이름으로 엔티티 요소 가져 오기

분류에서Dev

핵심 데이터 : 관련 엔티티의 속성을 기반으로 엔티티를 가져 오는 방법

분류에서Dev

Symfony2 : 사용자 엔티티에서 그룹의 역할을 가져 오지만 엔티티 내부 쿼리는 피합니다.

분류에서Dev

SpringData를 사용하여 엔티티 ID로 엔티티에서 임베디드 오브젝트 가져 오기

분류에서Dev

Dynamics CRM에서 모든 엔터티 메타 데이터 가져 오기

분류에서Dev

linq를 엔티티에 사용하여 관련 엔티티를 기반으로 레코드 가져 오기

분류에서Dev

jQuery에서 양식 제출시 엔티티의 하위 엔티티 가져 오기

분류에서Dev

하위 엔티티의 필드를 기반으로 Hazelcast 맵에서 엔티티를 가져 오는 방법

분류에서Dev

동일한 엔티티의 내부 조인에서 Hibernate 엔티티 가져 오기

분류에서Dev

사용자의 아바타 엔티티를 가져와 Symfony2에서 제거 할 수 없습니다.

분류에서Dev

양식 이벤트 리스너에서 기본 데이터 엔티티를 형성하도록 링크 된 엔티티를 가져올 수 없습니다.

분류에서Dev

C #을 사용하여 dynamics crm의 각 엔티티에서 연락처와 관련된 필드 이름 가져 오기

분류에서Dev

CoreData 엔티티 가져 오기 요청

Related 관련 기사

  1. 1

    커스텀 유효성 검사기에서 엔티티 관리자 가져 오기

  2. 2

    SPARQL / DBPedia : 엔티티 페이지 URI를 몰라도 속성을 통해 엔티티 가져 오기

  3. 3

    Angular Ionic 가져 오기 네이티브 카메라

  4. 4

    배열 열거 중 핵심 데이터 가져 오기 엔티티

  5. 5

    Symfony2 다른 엔티티에있는 엔티티의 엔티티 가져 오기

  6. 6

    엔티티 관리자가 관리하는 엔티티는 힙 메모리에 2 개의 오브젝트가 있습니까?

  7. 7

    클래스 라이브러리 데이터 엔티티 모델의 웹 구성에서 연결 문자열 가져 오기

  8. 8

    카메라 사진에 스티커 오버레이를 추가하는 방법

  9. 9

    Hibernate-전체 엔티티를 가져 오지 않고 엔티티의 속성 가져 오기

  10. 10

    DXF 파일-레이블 텍스트가있는 "AcDbText"엔티티를 지오메트리 엔티티 (AcDbPolyline)에 링크하려면 어떻게해야합니까?

  11. 11

    CoreData : NSFetchedResultController를 사용하여 여러 엔티티 가져 오기

  12. 12

    Linq의 문자 값을 엔티티로 가져 오기

  13. 13

    modelsim에서 vhdl 엔티티의 종속성 가져 오기

  14. 14

    Serializer : 엔티티의 직렬화 그룹 가져 오기

  15. 15

    Entity Framework : 특정 유형의 모든 엔티티 가져 오기

  16. 16

    Breeze 엔티티에있는 속성 이름 가져 오기

  17. 17

    이름으로 엔티티 요소 가져 오기

  18. 18

    핵심 데이터 : 관련 엔티티의 속성을 기반으로 엔티티를 가져 오는 방법

  19. 19

    Symfony2 : 사용자 엔티티에서 그룹의 역할을 가져 오지만 엔티티 내부 쿼리는 피합니다.

  20. 20

    SpringData를 사용하여 엔티티 ID로 엔티티에서 임베디드 오브젝트 가져 오기

  21. 21

    Dynamics CRM에서 모든 엔터티 메타 데이터 가져 오기

  22. 22

    linq를 엔티티에 사용하여 관련 엔티티를 기반으로 레코드 가져 오기

  23. 23

    jQuery에서 양식 제출시 엔티티의 하위 엔티티 가져 오기

  24. 24

    하위 엔티티의 필드를 기반으로 Hazelcast 맵에서 엔티티를 가져 오는 방법

  25. 25

    동일한 엔티티의 내부 조인에서 Hibernate 엔티티 가져 오기

  26. 26

    사용자의 아바타 엔티티를 가져와 Symfony2에서 제거 할 수 없습니다.

  27. 27

    양식 이벤트 리스너에서 기본 데이터 엔티티를 형성하도록 링크 된 엔티티를 가져올 수 없습니다.

  28. 28

    C #을 사용하여 dynamics crm의 각 엔티티에서 연락처와 관련된 필드 이름 가져 오기

  29. 29

    CoreData 엔티티 가져 오기 요청

뜨겁다태그

보관