Sistemas de coordenadas

Em seus núcleos, os aplicativos de realidade misturada coloca hologramas em seu mundo que parecem e soam objetos reais. Isso envolve posicionar e orientar esses hologramas precisamente em locais significativos do mundo, independentemente de o mundo ser sua sala física ou um realm virtual que você criou. Windows fornece vários sistemas de coordenadas do mundo real para expressar geometria, que é conhecida como sistemas de coordenadas espaciais. Você pode usar sistemas de coordenadas espaciais para raciais sobre posição, orientação, raio de olhar ou posições de mão do holograma.


Suporte a dispositivos

Recurso HoloLens (1ª geração) HoloLens 2 Headsets imersivos
Quadro estacionário de referência ✔️ ✔️ ✔️
Quadro anexado de referência ✔️ ✔️ ✔️
Quadro de estágio de referência Ainda sem suporte Ainda sem suporte ✔️
Âncoras espaciais ✔️ ✔️ ✔️
Mapeamento espacial ✔️ ✔️
Reconhecimento de cena ✔️

Escalas de experiência de realidade misturada

Você pode criar aplicativos de realidade misturada para uma ampla variedade de experiências do usuário, desde visualizadores de vídeo de 360 graus usando a orientação do headset até jogos e aplicativos de escala mundial completos usando mapeamento espacial e âncoras espaciais:


Escala de experiência Requisitos Experiência de exemplo
Somente orientação Orientação do headset (alinhado à gravidade) Visualizador de vídeo de 360°
Escala de setada Acima mais posição do headset com base na posição zero Simulador de espaço ou jogo de corrida
Escala em posição Acima mais a origem do piso de estágio Jogo de ação em que você faz o patinho e a bola no lugar
Escala de sala Acima de mais o polígono de limites de estágio Jogo de quebra-cabeça em que você vai ao redor do quebra-cabeça
Escala mundial Âncoras espaciais (e normalmente mapeamento espacial) Jogo com adversários provenientes de suas paredes reais, como RoboRaid

As escalas de experiência acima seguem um modelo de "aninhamento de aninhamento". O princípio de design principal para Windows Mixed Reality é um determinado headset que dá suporte a aplicativos construídos para uma escala de experiência de destino e todas as escalas menores:


Acompanhamento de 6DOF Piso definido Acompanhamento de 360° Limites definidos Âncoras espaciais Experiência máxima
No - - - - Somente orientação
Sim Não - - - Sentado
Sim Sim Não - - Em espera – para frente
Sim Sim Sim Não - Em pé – 360°
Sim Sim Sim Sim Não Quarto
Sim Sim Sim Sim Sim Mundo

O quadro estágio de referência ainda não tem suporte no HoloLens. Atualmente, um aplicativo de escala de sala HoloLens precisa usar o mapeamento espacial ou a compreensão da cena para encontrar o piso e as paredes do usuário.

Sistemas de coordenadas espaciais

Todos os aplicativos gráficos 3D usam sistemas de coordenadas cartesianas para raciocínio sobre as posições e orientações dos objetos virtuais. Esses sistemas de coordenadas estabelecem três eixos ao longo dos quais posicionar objetos: um eixo X, Y e Z.

Na realidade misturada, seus aplicativos explicam os sistemas de coordenadas físicas e virtuais. Windows chama um sistema de coordenadas que tem significado real no mundo físico de um sistema de coordenadas espaciais.

Sistemas de coordenadas espaciais expressam seus valores de coordenadas em metros. Isso significa que os objetos colocados duas unidades separadas no eixo X, Y ou Z aparecerão a 2 metros um do outro quando renderizados em realidade misturada. Sabendo disso, você pode facilmente renderizar objetos e ambientes em escala do mundo real.

Em geral, os sistemas de coordenadas cartesianas podem ser de direita ou de esquerda. Os sistemas de coordenadas espaciais no Windows são sempre de direita, o que significa que o eixo X positivo aponta para a direita, o eixo Y positivo aponta para cima (alinhado à gravidade) e o eixo Z positivo aponta para você.

Em ambos os tipos de sistemas de coordenadas, o eixo X positivo aponta para a direita e o eixo Y positivo aponta para cima. A diferença é se o eixo Z positivo aponta para você ou para longe de você. Lembre-se de qual direção o eixo Z positivo aponta apontando os dedos da mão esquerda ou direita na direção X positiva e ondulando-os para a direção Y positiva. A direção que seu thumb aponta, em direção ou longe de você, é a direção que o eixo Z positivo aponta para esse sistema de coordenadas.

Criando uma experiência somente de orientação ou de escala de seada

A chave para a renderização holográfica é alterar a exibição de seus hologramas de cada quadro à medida que o usuário se move, para corresponder ao movimento de cabeça previsto. Você pode criar experiências de escala de setada que respeitam as alterações na posição da cabeça e na orientação da cabeça do usuário usando um quadro de referência estacionário.

Algum conteúdo deve ignorar atualizações de posição de cabeça, mantendo-se fixo em um título escolhido e na distância do usuário sempre. O exemplo principal é um vídeo de 360 graus: como o vídeo é capturado de uma única perspectiva fixa, ele destruiria a ilusão para a posição de exibição se mover com base no conteúdo, mesmo que a orientação da exibição mude conforme o usuário procura. Você pode criar essas experiências somente orientação usando um quadro anexado de referência.

Quadro estacionário de referência

O sistema de coordenadas fornecido por um quadro de referência estacionário funciona para manter as posições dos objetos próximos ao usuário o mais estável possível com base no mundo, respeitando as alterações na posição da cabeça do usuário.

Para experiências de escala em um mecanismo de jogos como o Unity, um quadro de referência estacionário é o que define a "origem do mundo" do mecanismo. Objetos colocados em uma coordenada de mundo específica usam o quadro estacionário de referência para definir sua posição no mundo real usando essas mesmas coordenadas. O conteúdo que permanece colocado no mundo, mesmo que o usuário ande por aí, é conhecido como conteúdo bloqueado pelo mundo.

Um aplicativo normalmente criará um quadro estacionário de referência na inicialização e usará seu sistema de coordenadas durante todo o tempo de vida do aplicativo. Como desenvolvedor de aplicativos no Unity, você pode apenas começar a colocar conteúdo com base na origem, que estará na posição inicial da cabeça e na orientação do usuário. Se o usuário mudar para um novo local e quiser continuar sua experiência de escala de banco de dados, você poderá experimentar a origem do mundo nesse local.

Ao longo do tempo, à medida que o sistema aprende mais sobre o ambiente do usuário, ele pode determinar que as distâncias entre vários pontos no mundo real são mais curtas ou maiores do que o sistema previamente informado. Se você renderizar hologramas em um quadro estacionário de referência para um aplicativo no HoloLens em que os usuários vão além de uma área de cerca de 5 metros de largura, seu aplicativo poderá observar o desmando no local observado desses hologramas. Se sua experiência tiver usuários com mais de 5 metros, você criará uma experiência de escala mundial, o que exigirá outras técnicas para manter os hologramas estáveis, conforme descrito abaixo.

Quadro anexado de referência

Um quadro anexado de referência se move com o usuário enquanto ele se movimenta, com um título fixo definido quando o aplicativo cria o quadro pela primeira vez. Isso permite que o usuário veja ao redor o conteúdo colocado dentro desse quadro de referência. O conteúdo renderizado dessa maneira relativa ao usuário é chamado de conteúdo bloqueado por corpo.

Quando o headset não consegue descobrir onde ele está no mundo, um quadro anexado de referência fornece o único sistema de coordenadas, que pode ser usado para renderizar hologramas. Isso torna ideal exibir a interface do usuário de fallback para dizer ao usuário que seu dispositivo não pode encontrá-los no mundo. Os aplicativos que são em escala de seta ou superior devem incluir um fallback somente orientação para ajudar o usuário a começar a trabalhar novamente, com uma interface do usuário semelhante à mostrada na página Realidade Misturada página inicial.

Criação de uma experiência de escala permanente ou de escala de sala

Para ir além da escala de sated em um headset imersivo e criar uma experiência de escala permanente, você pode usar o quadro de estágio de referência.

Para fornecer uma experiência de escala de sala, permitir que os usuários andem dentro do limite de 5 metros que eles definiram previamente, você também pode verificar se há limites de estágio.

Quadro de estágio de referência

Ao configurar pela primeira vez um headset imersivo, o usuário define um estágio, que representa a sala na qual ele experimentará a realidade misturada. O estágio define minimamente uma origem de estágio, um sistema de coordenadas espaciais centralizado na posição de piso escolhida do usuário e na orientação de encaminhamento em que pretende usar o dispositivo. Ao colocar o conteúdo neste sistema de coordenadas de estágio no plano de piso Y=0, você pode garantir que seus hologramas pareçam insosso no chão quando o usuário estiver em pé, fornecendo aos usuários uma experiência em escala permanente.

Limites de estágio

O usuário também pode, opcionalmente , definir limites de estágio, uma área dentro da sala que ele desapurou para se mover na realidade misturada. Nesse caso, o aplicativo pode criar uma experiência em escala de sala, usando esses limites para garantir que os hologramas sejam sempre colocados onde o usuário possa alcançá-los.

Como o quadro de estágio de referência fornece um único sistema de coordenadas fixa no qual colocar o conteúdo relativo do chão, esse é o caminho mais fácil para portar aplicativos em escala permanente e de escala de sala desenvolvidos para headsets de realidade virtual. No entanto, assim como ocorre com essas plataformas de VR, um único sistema de coordenadas só pode estabilizar o conteúdo em cerca de 5 metros (16 pés), antes que os efeitos da alavanca arm causem o deslocamento do conteúdo para longe do centro visivelmente à medida que o sistema se ajusta. Para ir além de 5 metros, são necessárias âncoras espaciais.

Criando uma experiência de escala mundial

HoloLens permite experiências reais de escala mundial que permitem que os usuários andem além de 5 metros. Para criar um aplicativo de escala mundial, você precisará de novas técnicas além daquelas usadas para experiências em escala de sala.

Por que um único sistema de coordenadas rígida não pode ser usado além de 5 metros

Hoje, ao escrever jogos, aplicativos de visualização de dados ou aplicativos de realidade virtual, a abordagem típica é estabelecer um sistema de coordenadas de mundo absoluto para o qual todas as outras coordenadas possam mapear de forma confiável. Nesse ambiente, você sempre pode encontrar uma transformação estável que define uma relação entre dois objetos nesse mundo. Se você não mover esses objetos, suas transformação relativas sempre permanecerão as mesmas. Esse tipo de sistema de coordenadas global funciona bem ao renderizar um mundo puramente virtual em que você conhece toda a geometria com antecedência. Atualmente, os aplicativos VR de escala de sala estabelecem esse tipo de sistema de coordenadas de escala de sala absoluto com sua origem no chão.

Por outro lado, um dispositivo de realidade misturada não conectado, como o HoloLens, tem uma compreensão dinâmica orientada por sensor do mundo, ajustando continuamente seu conhecimento ao longo do tempo do ambiente do usuário enquanto ele anda muitos metros em um andar inteiro de um prédio. Em uma experiência de escala mundial, se você coloca todos os hologramas em um único sistema de coordenadas rígido, esses hologramas necessariamente se desmando ao longo do tempo, com base no mundo ou entre si.

Por exemplo, o headset pode atualmente acreditar que dois locais no mundo estão a 4 metros de distância e, em seguida, refinar esse entendimento, aprendendo que os locais estão, na verdade, a 3,9 metros de distância. Se esses hologramas tivessem sido inicialmente colocados a 4 metros de distância em um único sistema de coordenadas rígida, um deles sempre aparecerá a 0,1 metros do mundo real.

Âncoras espaciais

Windows Mixed Reality resolve o problema descrito na seção anterior, o que permite que você crie âncoras espaciais para marcar pontos importantes no mundo em que o usuário colocou hologramas. Uma âncora espacial representa um ponto importante no mundo que o sistema deve acompanhar ao longo do tempo.

À medida que o dispositivo aprende sobre o mundo, essas âncoras espaciais podem ajustar sua posição com base uma na outra conforme necessário para garantir que cada âncora permaneça exatamente onde foi colocada com base no mundo real. Ao colocar uma âncora espacial no local em que o usuário coloca um holograma e, em seguida, posiciona esse holograma com base em sua âncora espacial, você pode garantir que o holograma mantenha a estabilidade ideal, mesmo que o usuário percorram dezenas de metros.

Esse ajuste contínuo de âncoras espaciais com base umas nas outras é a principal diferença entre sistemas de coordenadas de âncoras espaciais e quadros estacionários de referência:

  • Hologramas colocados no quadro estacionário de referência mantêm uma relação rígida entre si. No entanto, à medida que o usuário percorre longas distâncias, o sistema de coordenadas desse quadro pode se desdolar com base no mundo para garantir que os hologramas ao lado do usuário pareçam estáveis.

  • Hologramas colocado no quadro de estágio de referência também mantêm uma relação rígida entre si. Ao contrário do quadro fixo, o quadro de estágio sempre permanece fixo no local com base em sua origem física definida. No entanto, o conteúdo renderizado no sistema de coordenadas do estágio além do limite de 5 metros só aparecerá estável enquanto o usuário estiver dentro desse limite.

  • Hologramas colocado usando uma âncora espacial pode desacorr com base em hologramas colocados usando outra âncora espacial. Isso permite que Windows melhore sua compreensão da posição de cada âncora espacial, mesmo se, por exemplo, uma âncora precisar se ajustar à esquerda e outra âncora precisar se ajustar à direita.

Ao contrário de um quadro de referência estacionário, que sempre otimiza a estabilidade perto do usuário, o quadro de estágio das âncoras espaciais e de referência garante a estabilidade perto de suas origens. Isso ajuda esses hologramas a permanecerem precisamente no lugar ao longo do tempo, mas também significa que os hologramas renderizados muito longe da origem do sistema de coordenadas experimentarão efeitos cada vez mais graves do controle de alavanca. Isso porque pequenos ajustes na posição e na orientação do estágio ou âncora são ampliados proporcionalmente à distância dessa âncora.

Uma boa regra geral é garantir que tudo o que você renderizar com base no sistema de coordenadas de uma âncora espacial distante esteja a cerca de 3 metros de sua origem. Para uma origem de estágio próxima, renderizar conteúdo distante é OK, pois qualquer erro posicional maior afetará apenas pequenos hologramas que não mudarão muito na exibição do usuário.

Persistência de âncora espacial

Âncoras espaciais também podem permitir que seu aplicativo se lembre de um local importante, mesmo depois que o aplicativo é suspenso ou o dispositivo é desligado.

Você pode salvar em disco as âncoras espaciais que seu aplicativo cria e carregá-las novamente mais tarde, persistindo-as no armazenamento de âncoras espaciais do aplicativo. Ao salvar ou carregar uma âncora, você fornece uma chave de cadeia de caracteres significativa para seu aplicativo, para identificar a âncora mais tarde. Pense nessa chave como o nome de arquivo para sua âncora. Se você quiser associar outros dados a essa âncora, como um modelo 3D que o usuário colocou nesse local, salve-o no armazenamento local do aplicativo e associá-lo à chave escolhida.

Ao persistir âncoras na loja, os usuários podem colocar hologramas individuais ou colocar um workspace em torno do qual um aplicativo colocará seus vários hologramas e, em seguida, encontrar esses hologramas mais tarde, onde eles esperam, em muitos usos de seu aplicativo.

Você também pode usar as Âncoras Espaciais do Azure para persistência de holograma assíncrona em HoloLens, iOS e Dispositivos Android. Ao compartilhar uma âncora espacial de nuvem durável, vários dispositivos podem observar o mesmo holograma persistente ao longo do tempo, mesmo se esses dispositivos não estão presentes juntos ao mesmo tempo.

Compartilhamento de âncora espacial

Seu aplicativo também pode compartilhar uma âncora espacial em tempo real com outros dispositivos, permitindo experiências compartilhadas em tempo real.

Usando Âncoras Espaciais do Azure, seu aplicativo pode compartilhar uma âncora espacial em vários HoloLens, iOS e Dispositivos Android. Ao fazer cada dispositivo renderizar um holograma usando a mesma âncora espacial, todos os usuários verão o holograma aparecer no mesmo lugar no mundo real.

Evitar conteúdo com a cabeça bloqueada

Não é possível renderizar o conteúdo com a cabeça bloqueada, que permanece em um ponto fixo na exibição (como um VISOR). Em geral, o conteúdo com a cabeça bloqueada é insuceso para os usuários e não se parece com uma parte natural do mundo deles.

O conteúdo com a cabeça bloqueada geralmente deve ser substituído por hologramas anexados ao usuário ou colocados no próprio mundo. Por exemplo, cursores geralmente devem ser pressionados para fora do mundo, dimensionando naturalmente para refletir a posição e a distância do objeto sob o olhar do usuário.

Tratamento de erros de acompanhamento

Em alguns ambientes, como escuros, pode não ser possível que um headset usando o acompanhamento interno se localize corretamente no mundo. Isso pode levar os hologramas a não aparecerem ou aparecerem em locais incorretos se manipulados incorretamente. Agora discutiremos as condições em que isso pode acontecer, seu impacto na experiência do usuário e dicas para lidar melhor com essa situação.

O headset não pode acompanhar devido a dados de sensor insuficientes

Às vezes, os sensores do headset não conseguem descobrir onde o headset está. Isso pode ocorrer se:

  • A sala está escura
  • Se os sensores são cobertos por pelos ou mãos
  • Se o ambiente não tiver textura suficiente.

Quando isso acontecer, o headset não poderá acompanhar sua posição com precisão suficiente para renderizar hologramas bloqueados pelo mundo. Não é possível descobrir onde uma âncora espacial, quadro estacionário ou quadro de estágio se baseia no dispositivo. No entanto, você ainda pode renderizar o conteúdo bloqueado pelo corpo no quadro anexado de referência.

Seu aplicativo deve dizer ao usuário como obter o acompanhamento posicional de volta, renderizar algum conteúdo bloqueado pelo corpo de fallback que descreve algumas dicas, como descobrir os sensores e ligar mais luzes.

O headset acompanha incorretamente devido a alterações dinâmicas no ambiente

O dispositivo não poderá acompanhar corretamente se houver muitas alterações dinâmicas no ambiente, como muitas pessoas que andam pela sala. Nesse caso, os hologramas podem parecer pular ou desmando conforme o dispositivo tenta rastrear a si mesmo nesse ambiente dinâmico. É recomendável usar o dispositivo em um ambiente menos dinâmico se você atingir esse cenário.

O headset é controlado incorretamente porque o ambiente mudou significativamente ao longo do tempo

Quando você começa a usar um headset em um ambiente em que móveis, suspensos de parede e assim por diante, foram movidos, é possível que alguns hologramas apareçam deslocados de seus locais originais. Os hologramas anteriores também podem pular conforme o usuário se move no novo espaço porque a compreensão do sistema sobre seu espaço não é mais verdadeira. Em seguida, o sistema tenta remapear o ambiente enquanto também tenta reconciliar os recursos da sala. Nesse cenário, é aconselhável incentivar os usuários a substituir hologramas fixados no mundo se não aparecerem onde esperado.

O headset rastreia incorretamente devido a espaços idênticos em um ambiente

Às vezes, uma casa ou outro espaço pode ter duas áreas idênticas. Por exemplo, duas salas de conferência idênticas, duas áreas de canto idênticas, dois cartazes idênticos grandes que abrangem o campo de exibição do dispositivo. Nesses cenários, o dispositivo pode, às vezes, ficar confuso entre as partes idênticas e marcá-las como as mesmas em sua representação interna. Isso pode fazer com que os hologramas de algumas áreas apareçam em outros locais. O dispositivo pode começar a perder o controle com frequência, pois sua representação interna do ambiente foi corrompida. Nesse caso, é aconselhável redefinir a compreensão ambiental do sistema. Redefinir o mapa leva à perda de todos os posicionamentos de âncora espacial. Isso fará com que o headset acompanhe bem as áreas exclusivas do ambiente. No entanto, o problema poderá se repetir se o dispositivo ficar confuso entre as áreas idênticas novamente.

Confira também