ARKit 네임스페이스
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ARKit 네임스페이스는 컴퓨터에서 생성된 이미지를 비디오 스트림에 프로젝션하기 위한 상위 및 하위 수준 API를 포함하여 증강 현실 세션을 지원합니다.
클래스
ARAnchor |
증강 현실 개체를 연결할 수 있는 실제 세계에 있는 위치, 방향 및 배율입니다. |
ARBlendShapeLocationOptions |
DictionaryContainerARKit.ARBlendShapeLocation 에서 사용할 수 있는 기능을 정의하는 입니다. |
ARCamera |
증강 현실 프레임을 캡처한 카메라의 위치 및 방향에 대한 정보입니다. |
ARConfiguration |
증강 현실 세션에 대한 구성 정보입니다. |
ARDirectionalLightEstimate |
얼굴에 떨어지는 실제 조명을 추정합니다. |
AREnvironmentProbeAnchor |
환경 기반 조명의 소스입니다. |
ARErrorCodeExtensions |
ARKit.ARErrorCode 열거형에 대한 확장 메서드입니다. |
ARFaceAnchor |
ARAnchor AR 세션의 월드 좌표에서 감지된 얼굴을 찾는 입니다. |
ARFaceGeometry |
셰이프 및 식을 포함하여 인식된 얼굴을 나타내는 메시입니다. |
ARFaceTrackingConfiguration |
ARConfiguration 얼굴을 인식하고 추적하기 위한 입니다. |
ARFrame |
증강 현실 세션의 프레임입니다. |
ARHitTestResult |
메서드에서 생성된 결과입니다 HitTest(CGPoint, ARHitTestResultType) . |
ARImageAnchor |
ARAnchor 실제 세계에서 검색된 이미지를 추적하는 입니다. |
ARImageTrackingConfiguration |
ARConfiguration 월드 추적의 기준으로 인식된 이미지를 사용하는 서브클래스입니다. |
ARLightEstimate |
실제 조명 환경의 추정치입니다. |
ARObjectAnchor |
ARAnchor 인식된 실제 3D 개체를 추적하는 서브클래스입니다. |
ARObjectScanningConfiguration |
개발 중에 데이터를 만드는 ARReferenceObject 데 사용되는 리소스를 많이 ARConfiguration 사용하는 입니다. |
AROrientationTrackingConfiguration |
ARConfiguration 디바이스 방향만 추적하고 디바이스의 후방 카메라를 사용하는 입니다. |
ARPlaneAnchor |
실제 평면 표면을 나타내는 데 사용되는 의 ARAnchor 하위 클래스입니다. |
ARPlaneGeometry |
실제 세계에서 감지된 평면을 나타내는 기하 도형입니다. |
ARPointCloud |
물리적 표면의 고정된 실제 지점에 대한 이미지 처리의 믿음을 나타내는 3차원 점 집합입니다. |
ARReferenceImage |
실제 환경에서 인식할 미리 처리된 이미지가 포함된 이미지 리소스입니다. |
ARReferenceObject |
실제 세계에서 검색할 3D 개체의 디지털 표현입니다. |
ARSCNDebugOptions |
의 속성ARSCNView과 함께 DebugOptions 사용할 시각화 옵션입니다. |
ARSCNFaceGeometry |
얼굴을 나타내는 SceneKit 기하 도형입니다. |
ARSCNPlaneGeometry |
ARKit 네임스페이스는 컴퓨터에서 생성된 이미지를 비디오 스트림에 프로젝션하기 위한 상위 및 하위 수준 API를 포함하여 증강 현실 세션을 지원합니다. |
ARSCNView |
증강 현실 콘텐츠를 지원하는 의 SCNView 하위 클래스입니다. |
ARSCNView.ARSCNViewAppearance |
형식의 개체에 대한 모양 클래스입니다 ARSCNView. |
ARSCNViewDelegate |
개체에 대한 ARSCNView 대리자 개체입니다. |
ARSCNViewDelegate_Extensions |
프로토콜의 모든 메서드를 IARSCNViewDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 ARSCNViewDelegate . |
ARSession |
혼합 현실 환경을 만드는 데 필요한 카메라 캡처, 동작 처리 및 이미지 분석을 관리합니다. |
ARSessionDelegate |
개체에 대한 개체를 ARSession 위임하여 개발자가 증강 현실 세션과 관련된 이벤트에 응답할 수 있도록 합니다. |
ARSessionDelegate_Extensions |
프로토콜의 모든 메서드를 IARSessionDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 ARSessionDelegate . |
ARSessionObserver_Extensions |
인터페이스의 선택적 메서드입니다 IARSessionObserver . |
ARSKView |
스프라이트 키트 개체를 증강 현실 세션에 배치하는 의 SKView 하위 클래스입니다. |
ARSKView.ARSKViewAppearance |
형식의 개체에 대한 모양 클래스입니다 ARSKView. |
ARSKViewDelegate |
개발자가 에 관련된 이벤트에 응답할 수 있도록 개체를 위임합니다 ARSKView. |
ARSKViewDelegate_Extensions |
프로토콜의 모든 메서드를 IARSKViewDelegate 지원하기 위해 인터페이스에 대한 확장 메서드입니다 ARSKViewDelegate . |
ARVideoFormat |
AR 시뮬레이션에 사용되는 비디오 피드에 대한 요약 정보입니다. |
ARWorldMap |
실제 공간 데이터 요소와 혼합 현실 앵커의 직렬화 가능하고 공유할 수 있는 조합입니다. |
ARWorldTrackingConfiguration |
디바이스 위치 및 방향을 추적하고 선택적으로 수평 표면을 검색하는 세션에 대한 구성입니다. |
인터페이스
IARAnchorCopying |
ARKit 네임스페이스는 컴퓨터에서 생성된 이미지를 비디오 스트림에 프로젝션하기 위한 상위 및 하위 수준 API를 포함하여 증강 현실 세션을 지원합니다. |
IARSCNViewDelegate |
프로토콜 ARSCNViewDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다. |
IARSessionDelegate |
프로토콜 ARSessionDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다. |
IARSessionObserver |
의 이벤트에 응답하는 메서드를 정의하는 인터페이스입니다 ARSession. |
IARSKViewDelegate |
프로토콜 ARSKViewDelegate의 필수 메서드(있는 경우)를 나타내는 인터페이스입니다. |
IARTrackable |
ARKit에서 추적할 수 있는 실제 개체에 대한 인터페이스입니다. |
열거형
AREnvironmentTexturing | |
ARErrorCode |
오류의 원인을 열거합니다 ARSession . |
ARHitTestResultType |
메서드에서 검색된 HitTest(CGPoint, ARHitTestResultType) 개체의 종류를 열거합니다. |
ARPlaneAnchorAlignment |
의 ARPlaneAnchor 방향입니다(현재 가로로 제한됨). |
ARPlaneClassification |
ARKit 네임스페이스는 컴퓨터에서 생성된 이미지를 비디오 스트림에 프로젝션하기 위한 상위 및 하위 수준 API를 포함하여 증강 현실 세션을 지원합니다. |
ARPlaneClassificationStatus |
ARKit 네임스페이스는 컴퓨터에서 생성된 이미지를 비디오 스트림에 프로젝션하기 위한 상위 및 하위 수준 API를 포함하여 증강 현실 세션을 지원합니다. |
ARPlaneDetection |
감지된 평면의 유효한 방향을 열거합니다(현재 가로만 해당). |
ARSessionRunOptions |
에 대한 호출 Run(ARConfiguration, ARSessionRunOptions)의 옵션을 열거합니다. |
ARTrackingState |
증강 현실 에서 실제 추적의 품질을 열거합니다 ARSession. |
ARTrackingStateReason |
의 Limited원인을 열거합니다. |
ARWorldAlignment |
월드 좌표계를 만드는 방법에 대한 옵션을 열거합니다. |
ARWorldMappingStatus |
세계 매핑 세션의 상태를 열거합니다. |
설명
ARKit는 iOS 11에 추가되었으며 카메라 입력과 실제 세계에 "연결"된 것처럼 보이는 컴퓨터 생성 이미지를 결합하는 혼합 현실 세션을 제공합니다.
ARKit은 A9 및 더 강력한 프로세서를 실행하는 장치에서만 사용할 수 있습니다: 본질적으로 iPhone 6S 이상, iPad Pros 및 iPads는 2017년 이전에 출시되지 않았습니다.
ARKit 앱은 시뮬레이터에서 실행되지 않습니다.
개발자는 AR 장면을 렌더링하기 위한 세 가지 선택 항목이 있습니다.
클래스 | 사용 사례 |
---|---|
ARSCNView | Video와 SceneKit 3D 기하 도형 결합 |
SpriteKit 2D 이미지를 비디오와 결합 | |
에서 "renderer:updateAtTime:"을 내보냅니다 IARSCNViewDelegate. | 전체 사용자 지정 렌더링을 허용합니다. |
ARKit 좌표계 및 변환
ARKit은 디바이스 동작 및 "시각적 냄새 분석"을 사용하여 가상 좌표계와 관련하여 디바이스 카메라 및 실제 "기능 지점"의 모델을 만듭니다. 좌표계는 미터를 단위로 사용합니다. 가상 좌표계에는 가 시작될 때 카메라의 위치로 계산된 원점이 ARSession 있습니다. ARKit 내의 위치 및 방향은 주로 "네이티브 행렬"을 사용하여 NMatrix4 표시됩니다. ARKit의 경우 열 중심 변환은 다음과 같습니다.
위치 또는 변환은 , M24및 M34에 M14있습니다. 에 의해 M11M33 정의된 3x3 행렬은 회전 행렬입니다.
SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);
초기화
개체는 ARSession 전체 증강 현실 프로세스를 관리합니다. 메서드는 Run 아래와 같이 및 ARSessionRunOptions 개체를 사용합니다ARConfiguration.
ARSCNView SceneView = ... // initialized in Storyboard, `ViewDidLoad`, etc.
// Create a session configuration
var configuration = new ARWorldTrackingConfiguration {
PlaneDetection = ARPlaneDetection.Horizontal,
LightEstimationEnabled = true
};
// Run the view's session
SceneView.Session.Run(configuration, ARSessionRunOptions.ResetTracking);
가 ARSession 실행되면 속성은 CurrentFrame 활성 ARFrame를 보유합니다. 시스템이 초당 60프레인에서 ARKit을 실행하려고 하기 때문에 를 참조 CurrentFrame 하는 개발자는 손실된 후 프레임을 Dispose
확인해야 합니다.
시스템은 카메라 보기에서 고대비 "기능 지점"을 추적합니다. 이러한 개체는 개발자가 에서 RawFeaturePoints읽을 수 있는 개체로 ARPointCloud 사용할 수 있습니다. 그러나 일반적으로 개발자는 평면이나 사람의 얼굴과 같은 더 높은 수준의 기능을 식별하기 위해 시스템에 의존합니다. 시스템에서 이러한 상위 수준 기능을 식별하면 속성이 세계 좌표계에 있는 개체를 추가 ARAnchor 합니다. 개발자는 , DidUpdateNode및 DidRemoveNode 메서드를 사용하여 DidAddNode이러한 이벤트에 대응하고 실제 기능에 사용자 지정 기하 도형을 연결할 수 있습니다.
증강 현실 좌표는 시각적 냄새 분석 및 디바이스의 동작 관리자를 사용하여 유지 관리됩니다. 실험적으로, 추적은 연속 세션에서 적어도 수십 미터의 거리에 걸쳐 매우 단단한 것 같다.