728x90

RealityKit is…
ARKit 위에 구축된, 증강 현실을 위한 고수준 프레임워크.
자체적인 ARView를 사용하여 AR 콘텐츠를 표시하며, 이 ARView는 내부적으로 ARSession을 사용하여 ARKit과 통신한다.
ARView
RealityKit에서 AR 경험을 제공하기 위해 사용되는 뷰이다.
- 뷰는 단일 Scene 인스턴스를 가지며, Scene 인스턴스에는 실제 세계의 어떤 것에 콘텐츠를 고정시키는 AnchorEntity 인스턴스를 추가할 수 있다.
- 각 AnchorEntity에는 Scene의 컨텐츠를 구성하는 Entity, Entity 계층이 추가될 수 있다.

Entity
RealityKit에서는 Scene 내의 모든 요소가 Entity라는 단 하나의 클래스에서 파생된다.
Entity는 여러 면에서 SceneKit의SCNNode의 새로운 대안으로 볼 수 있다고 한다.
Entity 인스턴스를 생성하고 ARView와 연결된 Scene 인스턴스에 추가하는 방식으로 실제세계에 객체를 배치한다.

예시 코드
- 생성한 상자 Entity를 앵커 엔티티 자식으로 추가
- arView.scene.addAnchor()
ARScene에 AnchorEntity 추가.

결과

궁금증
Entity 는 HasHierarchy 프로토콜의 구현체라는 것을 위에서 확인하였다.
동시에 HasHierarchy 프로토콜은 Entity를 상속받는다.
지금까진 프로토콜이 클래스를 상속받는 구조를 생각해본 적이 거의 없다.


이것은 HasHierarchy 프로토콜이 Entity의 기능을 요구하며, Entity 타입만이 HasHierarchy를 구현할 수 있음을 의미한다.
다른 타입의 클래스는 HasHierarchy의 구현체가 될 수 없다.
Scene 내의 모든 요소가 Entity라는 단 하나의 클래스로부터 파생된다고 하였으므로, 모든 것을 일관되게 처리하려고 이런식으로 제한을 둔 것 같다.
728x90
'IOS' 카테고리의 다른 글
[iOS] RealityKit, ARKit - MotionCapture 예제 (2) | 2024.02.14 |
---|---|
[iOS] SIMD3 (0) | 2024.02.06 |
[iOS] ARKit(1) - OverView, Setting (2) | 2024.01.21 |
Observer 패턴 vs Publisher/Subscriber 패턴 (1) (0) | 2023.11.07 |
[iOS] Compositional Layout & Sticky Header를 적용하면서(UIKit) (0) | 2023.03.10 |
댓글