Âncoras espaciais

Uma âncora espacial representa um ponto importante no mundo que o sistema controla ao longo do tempo. Cada âncora tem um sistema de coordenadas ajustável, com base noutras âncoras ou molduras de referência, para garantir que os hologramas ancorados permanecem exatamente no local. Compor um holograma no sistema de coordenadas de uma âncora dá-lhe o posicionamento mais preciso desse holograma a qualquer momento. Isto tem o custo de pequenos ajustes ao longo do tempo para a posição do holograma, uma vez que o sistema continuamente move-o de volta para o lugar com base no mundo real.

Também pode manter e partilhar âncoras espaciais entre sessões de aplicações e dispositivos:

  • Ao guardar âncoras espaciais locais no disco e carregá-las novamente mais tarde, a sua aplicação pode calcular a mesma localização no mundo real em várias sessões de aplicações num único HoloLens.
  • Ao utilizar o Azure Spatial Anchors para criar uma âncora na cloud, a sua aplicação pode partilhar uma âncora espacial em vários dispositivos HoloLens, iOS e Android. Se cada dispositivo compor um holograma com a mesma âncora espacial, os utilizadores verão o holograma aparecer no mesmo local do mundo real. Isto permite experiências partilhadas em tempo real.
  • Também pode utilizar âncoras espaciais do Azure para persistência de hologramas assíncronos em dispositivos HoloLens, iOS e Android. Ao partilhar uma âncora espacial na cloud durável, vários dispositivos podem observar o mesmo holograma persistente ao longo do tempo, mesmo que esses dispositivos não estejam presentes em conjunto ao mesmo tempo.

Para experiências de escalamento permanente ou à escala de salas para auscultadores de ambiente de trabalho amarrados que permanecerão dentro de um diâmetro de 5 metros, normalmente pode utilizar o quadro de referência de fase em vez de âncoras espaciais, o que lhe fornece um único sistema de coordenadas para compor todo o conteúdo. No entanto, se a sua aplicação permitir que os utilizadores vagueiem mais de 5 metros no HoloLens, talvez operando em todo o piso de um edifício, precisará de âncoras espaciais para manter o conteúdo estável.

Embora as âncoras espaciais sejam ótimas para hologramas que devem permanecer fixos no mundo, uma vez colocada uma âncora, não pode ser movida. Existem alternativas às âncoras mais adequadas para hologramas dinâmicos que etiquetam juntamente com o utilizador. É melhor posicionar hologramas dinâmicos com um quadro estacionário de referência (a base das coordenadas mundiais do Unity) ou um quadro de referência anexado.

Melhores práticas

Estas diretrizes de âncora espacial irão ajudá-lo a compor hologramas estáveis que controlam com precisão o mundo real.

Criar âncoras espaciais onde os utilizadores as colocam

Normalmente, os utilizadores são os que colocam explicitamente âncoras espaciais.

Por exemplo, no HoloLens, uma aplicação pode intercalar o raio de olhar do utilizador com a malha de mapeamento espacial para permitir que o utilizador decida onde colocar um holograma. Quando o utilizador tocar para colocar esse holograma, crie uma âncora espacial no ponto de interseção e, em seguida, coloque o holograma na origem do sistema de coordenadas dessa âncora.

As âncoras espaciais locais são fáceis de criar e executantes. O sistema combina dados internos se várias âncoras puderem partilhar os dados do sensor subjacentes. Recomendamos a criação de uma nova âncora espacial local para cada holograma que um utilizador coloca explicitamente, exceto nos casos descritos abaixo, como grupos rígidos de hologramas.

Compor sempre hologramas ancorados a 3 metros da âncora

As âncoras espaciais estabilizam o sistema de coordenadas junto à origem da âncora. Se compor hologramas a mais de 3 metros da origem, os hologramas poderão deparar-se com erros posicionais visíveis proporcionalmente à distância dessa origem devido aos efeitos do braço-alavanca. Isto funciona se o utilizador estiver perto da âncora, uma vez que o holograma também está longe do utilizador. Por outras palavras, o erro angular do holograma distante será pequeno. No entanto, se o utilizador chegar a esse holograma distante, será grande na sua vista, tornando óbvios os efeitos do braço-alavanca da origem de âncora distante.

Agrupar hologramas que devem formar um cluster rígido

Vários hologramas podem partilhar a mesma âncora espacial se a aplicação esperar que esses hologramas mantenham relações fixas entre si.

Por exemplo, se estiver a animar um sistema solar holográfico numa sala, é melhor associar todos os objetos do sistema solar a uma única âncora no centro. Dessa forma, vão mover-se sem problemas com base uns nos outros. Neste caso, é o sistema solar como um todo que está ancorado, mesmo que as suas partes componentes estejam a mover-se dinamicamente à volta da âncora.

A principal ressalva para manter a estabilidade do holograma é seguir a regra de 3 metros acima.

Compor hologramas altamente dinâmicos com o fotograma estacionário de referência em vez de uma âncora espacial local

Se tiver um holograma altamente dinâmico, como um caráter que anda por uma sala ou uma IU flutuante que se segue ao longo da parede perto do utilizador, é melhor ignorar âncoras espaciais locais e compor esses hologramas diretamente no sistema de coordenadas fornecido pela moldura estacionária de referência. No Unity, pode fazê-lo ao colocar hologramas diretamente em coordenadas mundiais sem um WorldAnchor. Os hologramas num fotograma estacionário de referência podem ocorrer desfasamento quando o utilizador está longe do holograma. No entanto, é menos provável que isto seja perceptível para hologramas dinâmicos: ou o holograma está constantemente a mover-se de qualquer forma ou o seu movimento mantém-no constantemente perto do utilizador onde a deriva será minimizada.

Um caso interessante de hologramas dinâmicos é um objeto que está a animar de um sistema de coordenadas ancorado para outro. Por exemplo, você pode ter dois castelos a 10 metros de distância, cada um na sua própria âncora espacial com um castelo disparando uma bola de canhão no outro castelo. Quando a bola de canhão é acionada, pode compor na localização apropriada na moldura estacionária de referência para coincidir com o canhão no sistema de coordenadas ancorado do primeiro castelo. Pode então seguir a sua trajectória no quadro estacionário de referência, uma vez que voa 10 metros pelo ar. À medida que a bola de canhão chega ao outro castelo, pode movê-la para o sistema de coordenadas ancorado do segundo castelo para permitir cálculos físicos com os corpos rígidos desse castelo.

Se estiver a partilhar um holograma altamente dinâmico entre dispositivos, selecione alguma âncora espacial na cloud para agir como principal, porque não é possível partilhar fotogramas de referência estacionários entre dispositivos. No entanto, deve garantir que o holograma dinâmico ou os dispositivos que o visualizam permanecem no raio de 3 metros da âncora para que o holograma apareça estável em todos os dispositivos.

Evitar criar uma grelha de âncoras espaciais

Poderá sentir-se tentado a fazer com que a sua aplicação largue uma grelha regular de âncoras espaciais à medida que o utilizador anda por aí, efetua a transição de objetos dinâmicos da âncora para a âncora à medida que se deslocam. No entanto, isto envolve mais gestão para a sua aplicação, sem o benefício dos dados de sensores profundos que o próprio sistema mantém internamente. Nestes casos, obterá melhores resultados ao colocar os hologramas no fotograma estacionário de referência, conforme descrito na secção acima. Quando estiver a pré-posicionar um conjunto de âncoras espaciais na cloud à volta de um espaço estático, considere colocar as âncoras espaciais nas localizações dos hologramas principais que o utilizador encontra de acordo com o princípio acima, em vez de criar uma grelha arbitrária de âncoras. Isto garante que obterá a estabilidade máxima para esses hologramas principais.

Libertar âncoras espaciais locais de que já não precisa

Enquanto uma âncora espacial local está ativa, o sistema prioriza a manutenção dos dados do sensor próximos dessa âncora. Se já não estiver a utilizar uma âncora espacial, deixe de aceder ao respetivo sistema de coordenadas. Isto permite que os dados do sensor subjacentes sejam removidos conforme necessário.

Isto é especialmente importante para âncoras locais que tenha mantido no arquivo de âncora espacial. Os dados do sensor por trás destas âncoras serão mantidos permanentemente para permitir que a sua aplicação encontre essa âncora em sessões futuras, o que reduz o espaço disponível para controlar outras âncoras. Mantenha apenas as âncoras locais que precisa de encontrar novamente em sessões futuras. Recomendamos que os remova da loja quando já não tiverem significado para o utilizador.

Para âncoras espaciais na cloud, o seu armazenamento pode ser dimensionado conforme o seu cenário requer. Pode armazenar o número de âncoras na cloud que precisar, lançando-as quando souber que os seus utilizadores não vão precisar da âncora novamente.

Ver também