Partilhar via


Âncoras espaciais

Uma âncora espacial representa um ponto importante no mundo que o sistema rastreia ao longo do tempo. Cada âncora tem um sistema de coordenadas ajustável, baseado em outras âncoras ou quadros de referência, para garantir que os hologramas ancorados permaneçam precisamente no lugar. A renderização de um holograma no sistema de coordenadas de uma âncora oferece o posicionamento mais preciso para esse holograma a qualquer momento. Isso ocorre ao custo de pequenos ajustes ao longo do tempo na posição do holograma, à medida que o sistema continuamente o move de volta ao lugar com base no mundo real.

Você também pode persistir e compartilhar âncoras espaciais entre sessões de aplicativos: salvando âncoras espaciais locais no disco e carregando-as de volta mais tarde, seu aplicativo pode calcular o mesmo local no mundo real em várias sessões de aplicativos em um único HoloLens.

Para experiências em escala permanente ou em escala de sala para fones de ouvido de mesa presos que permanecerão dentro de um diâmetro de 5 metros, normalmente você pode usar o quadro de referência do palco em vez de âncoras espaciais, que fornecem um único sistema de coordenadas para renderizar todo o conteúdo. No entanto, se seu aplicativo permitir que os usuários vagueiem além de 5 metros no HoloLens, talvez operando em um andar inteiro de um edifício, você 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 que uma âncora é colocada, ela não pode ser movida. Existem alternativas às âncoras que são mais apropriadas para hologramas dinâmicos que marcam junto com o usuário. É melhor posicionar hologramas dinâmicos usando um quadro de referência estacionário (a base para as coordenadas mundiais de Unity) ou um quadro de referência anexado.

Melhores práticas

Estas diretrizes de ancoragem espacial irão ajudá-lo a renderizar hologramas estáveis que rastreiam com precisão o mundo real.

Crie âncoras espaciais onde os usuários as colocam

Normalmente, os usuários são aqueles que colocam explicitamente âncoras espaciais.

Por exemplo, no HoloLens, um aplicativo pode cruzar o raio de olhar do usuário com a malha de mapeamento espacial para permitir que o usuário decida onde colocar um holograma. Quando o usuário 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 e eficientes de criar. O sistema combina dados internos se várias âncoras puderem compartilhar os dados do sensor subjacente. Recomendamos a criação de uma nova âncora espacial local para cada holograma que um usuário coloca explicitamente, exceto nos casos descritos abaixo, como grupos rígidos de hologramas.

Renderize sempre hologramas ancorados dentro de 3 metros de sua âncora

As âncoras espaciais estabilizam seu sistema de coordenadas perto da origem da âncora. Se você renderizar hologramas a mais de 3 metros da origem, os hologramas podem experimentar erros posicionais percetíveis em proporção à sua distância dessa origem devido a efeitos de alavanca-braço. Isso funciona se o usuário estiver perto da âncora, já que o holograma também está longe do usuário. Em outras palavras, o erro angular do holograma distante será pequeno. No entanto, se o usuário caminhar até aquele holograma distante, ele será grande em sua visão, tornando óbvios os efeitos de alavanca-braço da origem da âncora distante.

Hologramas de grupo que devem formar um aglomerado rígido

Vários hologramas podem compartilhar a mesma âncora espacial se o aplicativo espera que esses hologramas mantenham relações fixas entre si.

Por exemplo, se você estiver animando um sistema solar holográfico em uma sala, é melhor amarrar todos os objetos do sistema solar a uma única âncora no centro. Dessa forma, eles se moverão suavemente com base um no outro. Neste caso, é o sistema solar como um todo que está ancorado, embora suas partes componentes estejam se movendo dinamicamente ao redor da âncora.

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

Renderize hologramas altamente dinâmicos usando o quadro de referência estacionário em vez de uma âncora espacial local

Se você tiver um holograma altamente dinâmico, como um personagem andando por uma sala ou uma interface do usuário flutuante que segue ao longo da parede perto do usuário, é melhor pular âncoras espaciais locais e renderizar esses hologramas diretamente no sistema de coordenadas fornecido pelo quadro de referência estacionário. Em Unity, você consegue isso colocando hologramas diretamente nas coordenadas do mundo sem um WorldAnchor. Hologramas em um quadro de referência estacionário podem experimentar deriva quando o usuário está longe do holograma. Mas isso é menos provável de ser percetível para hologramas dinâmicos: ou o holograma está em constante movimento de qualquer maneira ou seu movimento constantemente o mantém perto do usuário, onde a deriva será minimizada.

Um caso interessante de hologramas dinâmicos é um objeto que está animando de um sistema de coordenadas ancorado para outro. Por exemplo, você pode ter dois castelos a 10 metros de distância, cada um em sua própria âncora espacial com um castelo disparando uma bala de canhão no outro castelo. Quando a bala de canhão é disparada, você pode renderizá-la no local apropriado no quadro de referência estacionário para coincidir com o canhão no sistema de coordenadas ancorado do primeiro castelo. Ele pode então seguir sua trajetória no quadro de referência estacionário enquanto voa 10 metros pelo ar. À medida que a bala de canhão atinge o outro castelo, você 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 você estiver compartilhando um holograma altamente dinâmico entre dispositivos, escolha alguma âncora espacial na nuvem para atuar como pai, pois os quadros de referência estacionários não podem ser compartilhados entre dispositivos. No entanto, você deve garantir que o holograma dinâmico ou os dispositivos que o visualizam permaneçam dentro do raio de 3 metros da âncora para que o holograma pareça estável em todos os dispositivos.

Evite criar uma grade de âncoras espaciais

Você pode ficar tentado a fazer com que seu aplicativo solte uma grade regular de âncoras espaciais enquanto o usuário caminha, fazendo a transição de objetos dinâmicos de âncora para âncora à medida que se movem. No entanto, isso envolve mais gerenciamento para sua aplicação, sem o benefício dos dados profundos do sensor que o próprio sistema mantém internamente. Para esses casos, você obterá melhores resultados colocando seus hologramas no quadro de referência estacionário, conforme descrito na seção acima. Quando você estiver pré-posicionando um conjunto de âncoras espaciais de nuvem em torno de um espaço estático, considere colocar as âncoras espaciais nos locais dos hologramas principais que o usuário encontra de acordo com o princípio acima, em vez de criar uma grade arbitrária de âncoras. Isso garante que você terá a máxima estabilidade para esses hologramas chave.

Solte âncoras espaciais locais que você não precisa mais

Enquanto uma âncora espacial local está ativa, o sistema prioriza manter os dados do sensor que estão perto dessa âncora. Se você não estiver mais usando uma âncora espacial, pare de acessar seu sistema de coordenadas. Isso permite que os dados do sensor subjacente sejam removidos conforme necessário.

Isso é especialmente importante para âncoras locais que você persistiu para o armazenamento de âncoras espaciais. Os dados do sensor por trás dessas âncoras serão mantidos permanentemente para permitir que seu aplicativo encontre essa âncora em sessões futuras, o que reduz o espaço disponível para rastrear outras âncoras. Apenas persista âncoras locais que você precisa encontrar novamente em sessões futuras. Recomendamos removê-los da loja quando não forem mais significativos para o usuário.

Para âncoras espaciais na nuvem, seu armazenamento pode ser dimensionado conforme o cenário exigir. Você pode armazenar quantas âncoras de nuvem precisar, liberando-as quando souber que seus usuários não precisarão da âncora novamente.

Consulte também