ARKit Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
Classe | Caso de uso |
---|---|
ARSCNView | Combinar geometria 3D do SceneKit com vídeo |
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.