ARKit Namespace

O namespace arkit fornece suporte para sessões de realidade aumentada, incluindo APIs de alto e baixo nível para projetar imagens geradas por computador em um fluxo de vídeo.

Classes

ARAnchor

Uma posição, orientação e escala localizadas no mundo real à qual objetos de realidade aumentada podem ser anexados.

ARBlendShapeLocationOptions

Um DictionaryContainer que define os recursos disponíveis em T:ARKit.ARBlendShapeLocation .

ARCamera

Informações sobre o local e a orientação da câmera que capturaram um quadro de realidade aumentada.

ARConfiguration

Informações de configuração para sessões de realidade aumentada.

ARDirectionalLightEstimate

Estima a iluminação do mundo real caindo sobre um rosto.

AREnvironmentProbeAnchor

Origem para iluminação ambiental.

ARErrorCodeExtensions

Métodos de extensão para a enumeração ARKit.ARErrorCode.

ARFaceAnchor

Um ARAnchor que localiza um rosto detectado nas coordenadas mundiais da sessão ar.

ARFaceGeometry

Uma malha que representa um rosto reconhecido, incluindo forma e expressão.

ARFaceTrackingConfiguration

Um ARConfiguration para reconhecer e rastrear rostos.

ARFrame

Um quadro em uma sessão de realidade aumentada.

ARHitTestResult

Um resultado gerado pelo HitTest(CGPoint, ARHitTestResultType) método .

ARImageAnchor

Um ARAnchor que rastreia uma imagem detectada no mundo real.

ARImageTrackingConfiguration

ARConfiguration subclasse que usa uma imagem reconhecida como base para o acompanhamento mundial.

ARLightEstimate

Uma estimativa do ambiente de iluminação do mundo real.

ARObjectAnchor

ARAnchor subclasse que rastreia um objeto 3D reconhecido do mundo real.

ARObjectScanningConfiguration

Um recurso com uso intensivo ARConfiguration de recursos usado durante o desenvolvimento para criar ARReferenceObject dados.

AROrientationTrackingConfiguration

Um ARConfiguration que rastreia apenas a orientação do dispositivo e usa as câmeras traseiras do dispositivo.

ARPlaneAnchor

Uma subclasse de ARAnchor usada para representar superfícies planas do mundo real.

ARPlaneGeometry

Geometria que representa um plano detectado no mundo real.

ARPointCloud

Um conjunto de pontos tridimensionais, indicando a crença do processamento de imagens em um ponto fixo do mundo real em uma superfície física.

ARReferenceImage

Um recurso de imagem que contém imagens pré-processadas a serem reconhecidas no mundo real.

ARReferenceObject

Representação digital de um objeto 3D a ser detectado no mundo real.

ARSCNDebugOptions

Opções de visualização para uso com a DebugOptions propriedade de ARSCNView.

ARSCNFaceGeometry

Geometria do SceneKit que representa um rosto.

ARSCNPlaneGeometry

O namespace arkit fornece suporte para sessões de realidade aumentada, incluindo APIs de alto e baixo nível para projetar imagens geradas por computador em um fluxo de vídeo.

ARSCNView

Uma subclasse de SCNView que dá suporte ao conteúdo de realidade aumentada.

ARSCNView.ARSCNViewAppearance

Classe de aparência para objetos do tipo ARSCNView.

ARSCNViewDelegate

Objeto delegate para ARSCNView objetos.

ARSCNViewDelegate_Extensions

Métodos de extensão para a IARSCNViewDelegate interface para dar suporte a todos os métodos do ARSCNViewDelegate protocolo.

ARSession

Gerencia a captura da câmera, o processamento de movimento e a análise de imagem necessários para criar uma experiência de realidade misturada.

ARSessionDelegate

Delegar objeto para o ARSession objeto , permitindo que o desenvolvedor responda a eventos relacionados à sessão de realidade aumentada.

ARSessionDelegate_Extensions

Métodos de extensão para a IARSessionDelegate interface para dar suporte a todos os métodos do ARSessionDelegate protocolo.

ARSessionObserver_Extensions

Métodos opcionais da IARSessionObserver interface.

ARSKView

Uma subclasse de SKView que coloca objetos Sprite Kit em uma sessão de realidade aumentada.

ARSKView.ARSKViewAppearance

Classe de aparência para objetos do tipo ARSKView.

ARSKViewDelegate

Objeto delegate permitindo que o desenvolvedor responda a eventos relacionados a um ARSKView.

ARSKViewDelegate_Extensions

Métodos de extensão para a IARSKViewDelegate interface para dar suporte a todos os métodos do ARSKViewDelegate protocolo.

ARVideoFormat

Informações resumidas sobre o feed de vídeo usado na simulação de AR.

ARWorldMap

Uma combinação serializável e compartilhável de pontos de dados espaciais do mundo real e âncoras de realidade misturada.

ARWorldTrackingConfiguration

Configuração de uma sessão que rastreia a posição e a orientação do dispositivo e, opcionalmente, detecta superfícies horizontais.

Interfaces

IARAnchorCopying

O namespace arkit fornece suporte para sessões de realidade aumentada, incluindo APIs de alto e baixo nível para projetar imagens geradas por computador em um fluxo de vídeo.

IARSCNViewDelegate

Interface que representa os métodos necessários (se houver) do protocolo ARSCNViewDelegate.

IARSessionDelegate

Interface que representa os métodos necessários (se houver) do protocolo ARSessionDelegate.

IARSessionObserver

Interface que define métodos que respondem a eventos em um ARSession.

IARSKViewDelegate

Interface que representa os métodos necessários (se houver) do protocolo ARSKViewDelegate.

IARTrackable

Interface para objetos do mundo real que podem ser rastreados pelo ARKit.

Enumerações

AREnvironmentTexturing

Enumera estratégias de texturização ambiental usadas com objetos T:ARKit.ARWorldTrackingProbeAnchor .

ARErrorCode

Enumerar causas para uma ARSession falha.

ARHitTestResultType

Enumera os tipos de objetos detectados pelo HitTest(CGPoint, ARHitTestResultType) método .

ARPlaneAnchorAlignment

A orientação de um ARPlaneAnchor (atualmente restrito à horizontal).

ARPlaneClassification

O namespace arkit fornece suporte para sessões de realidade aumentada, incluindo APIs de alto e baixo nível para projetar imagens geradas por computador em um fluxo de vídeo.

ARPlaneClassificationStatus

O namespace arkit fornece suporte para sessões de realidade aumentada, incluindo APIs de alto e baixo nível para projetar imagens geradas por computador em um fluxo de vídeo.

ARPlaneDetection

Enumera as orientações válidas para planos detectados (atualmente, apenas horizontal).

ARSessionRunOptions

Enumera opções em chamadas para Run(ARConfiguration, ARSessionRunOptions).

ARTrackingState

Enumera a qualidade do rastreamento do mundo real em uma realidade ARSessionaumentada.

ARTrackingStateReason

Enumera as causas de Limited.

ARWorldAlignment

Enumera opções de como o sistema de coordenadas do mundo é criado.

ARWorldMappingStatus

Enumera os estados de uma sessão de mapeamento mundial.

Comentários

O ARKit foi adicionado ao iOS 11 e fornece sessões de realidade misturada que combinam a entrada da câmera com imagens geradas por computador que aparecem "anexadas" ao mundo real.

O ARKit só está disponível em dispositivos que executam processadores A9 e mais avançados: essencialmente iPhone 6S e mais recentes, iPad Pros e iPads lançados não antes de 2017.

Os aplicativos ARKit não são executados no Simulador.

Os desenvolvedores têm três opções para renderizar cenas de AR:

ClasseCaso de uso
ARSCNView Combinar geometria 3D do SceneKit com vídeo

T:ARKit.ARSCKView

Combinar imagens 2D do SpriteKit com vídeo
Exporte "renderer:updateAtTime:" de seu IARSCNViewDelegate.Permite a renderização personalizada completa.

Sistemas e transformações de coordenadas ARKit

O ARKit usa movimento do dispositivo e "odômetro visual" para criar um modelo da câmera do dispositivo e "pontos de recurso" do mundo real em relação a um sistema de coordenadas virtuais. O sistema de coordenadas usa medidores como suas unidades. O sistema de coordenadas virtuais tem uma origem calculada para ser o local da câmera no momento em que o ARSession foi iniciado. A localização e a orientação no ARKit são representadas principalmente usando NMatrix4 "matrizes nativas". No caso do ARKit, são transformações importantes de coluna:

A posição ou a tradução está em M14, M24e M34. A matriz 3x3 definida por M11 para M33 é a matriz de rotação.

SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);          

Inicialização

O ARSession objeto gerencia o processo geral de realidade aumentada. O Run método usa um ARConfiguration objeto e ARSessionRunOptions , conforme mostrado abaixo:

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);

Depois que um ARSession estiver em execução, sua CurrentFrame propriedade conterá o ativo ARFrame. Como o sistema tenta executar o ARKit a 60 quadros por segundo, os desenvolvedores que referenciam o CurrentFrame devem ter certeza Dispose do quadro depois de tê-lo perdido.

O sistema rastreia "pontos de recurso" de alto contraste na exibição da câmera. Eles estão disponíveis para o desenvolvedor como um ARPointCloud objeto que pode ser lido em RawFeaturePoints. Geralmente, no entanto, os desenvolvedores dependem do sistema para identificar recursos de nível superior, como planos ou rostos humanos. Quando o sistema identifica esses recursos de nível superior, ele adiciona ARAnchor objetos cujas propriedades P:ARKit.ARAnchor.Position estão no sistema de coordenadas mundiais. Os desenvolvedores podem usar os DidAddNodemétodos , DidUpdateNodee DidRemoveNode para reagir a esses eventos e anexar sua geometria personalizada aos recursos do mundo real.

As coordenadas de realidade aumentada são mantidas usando o odômetro visual e o gerenciador de movimentos do dispositivo. Experimentalmente, o rastreamento parece muito sólido em distâncias de pelo menos dezenas de metros em uma sessão contínua.

Confira também