다음을 통해 공유


ARKit 네임스페이스

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 기하 도형 결합

T:ARKit.ARSCKView

SpriteKit 2D 이미지를 비디오와 결합
에서 "renderer:updateAtTime:"을 내보냅니다 IARSCNViewDelegate.전체 사용자 지정 렌더링을 허용합니다.

ARKit 좌표계 및 변환

ARKit은 디바이스 동작 및 "시각적 냄새 분석"을 사용하여 가상 좌표계와 관련하여 디바이스 카메라 및 실제 "기능 지점"의 모델을 만듭니다. 좌표계는 미터를 단위로 사용합니다. 가상 좌표계에는 가 시작될 때 카메라의 위치로 계산된 원점이 ARSession 있습니다. ARKit 내의 위치 및 방향은 주로 "네이티브 행렬"을 사용하여 NMatrix4 표시됩니다. ARKit의 경우 열 중심 변환은 다음과 같습니다.

위치 또는 변환은 , M24M34M14있습니다. 에 의해 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 합니다. 개발자는 , DidUpdateNodeDidRemoveNode 메서드를 사용하여 DidAddNode이러한 이벤트에 대응하고 실제 기능에 사용자 지정 기하 도형을 연결할 수 있습니다.

증강 현실 좌표는 시각적 냄새 분석 및 디바이스의 동작 관리자를 사용하여 유지 관리됩니다. 실험적으로, 추적은 연속 세션에서 적어도 수십 미터의 거리에 걸쳐 매우 단단한 것 같다.

추가 정보