Compartilhar via


Sistemas de coordenadas

Em sua essência, os aplicativos de realidade misturada colocam hologramas em seu mundo que se parecem e soam com objetos reais. Isso envolve posicionar e orientar com precisão esses hologramas em lugares significativos no mundo, seja o mundo sua sala física ou um reino virtual que você criou. O Windows fornece vários sistemas de coordenadas do mundo real para expressar a geometria – eles são conhecidos como sistemas de coordenadas espaciais. Você pode usar esses sistemas para raciocinar sobre a posição do holograma, orientação, raio de olhar ou posições das mãos.

Suporte a dispositivos

Recurso HoloLens (1ª geração) HoloLens 2 Headsets imersivos
Quadro de referência estacionário ✔️ ✔️ ✔️
Quadro de referência anexado ✔️ ✔️ ✔️
Quadro de referência do estágio Ainda não há suporte Ainda não há 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 fone de ouvido até aplicativos e jogos de escala mundial completa usando mapeamento espacial e âncoras espaciais:


Escala de experiência Requisitos Exemplo de experiência
Somente orientação Orientação do fone de ouvido (alinhado à gravidade) Visualizador de vídeo 360°
Balança sentada Acima mais a posição do fone de ouvido com base na posição zero Jogo de corrida ou simulador espacial
Escala de pé Acima mais a origem do piso do palco Jogo de ação onde você se abaixa e se esquiva no lugar
Escala de sala Polígono acima dos limites do estágio Jogo de quebra-cabeça onde você anda pelo quebra-cabeça
Escala mundial Âncoras espaciais (e normalmente mapeamento espacial) Jogue com inimigos vindos de suas paredes reais, como RoboRaid

As escalas de experiência acima seguem um modelo de "bonecas aninhadas". O principal princípio de design do Windows Mixed Reality é o seguinte: um determinado fone de ouvido dá suporte a aplicativos criados para uma escala de experiência de destino e todas as escalas menores.


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

O quadro de referência do Stage ainda não tem suporte no HoloLens. Um aplicativo em escala de sala no HoloLens atualmente precisa usar o mapeamento espacial ou a compreensão de 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 raciocinar sobre as posições e orientações de objetos virtuais. Esses sistemas de coordenadas estabelecem três eixos perpendiculares: X, Y e Z. Cada objeto que você adicionar a uma cena terá uma posição XYZ em seu sistema de coordenadas. O Windows chama um sistema de coordenadas que tem significado real no mundo físico de sistema de coordenadas espaciais , que expressa seus valores de coordenadas em metros. Isso significa que os objetos colocados a duas unidades de distância no eixo X, Y ou Z aparecerão a dois metros de distância um do outro quando renderizados em realidade misturada. Sabendo disso, você pode facilmente renderizar objetos e ambientes em escala real.

Em geral, os sistemas de coordenadas cartesianas são chamados de "destros" ou "canhotos" porque você pode usar as posições das mãos para indicar as direções dos eixos XYZ. Em ambos os sistemas de coordenadas, o eixo X positivo aponta para a direita e o eixo Y positivo aponta para cima. A diferença entre os dois é que, no sistema de coordenadas destro, o eixo Z aponta para você, enquanto no sistema de coordenadas canhoto, o eixo Z aponta para longe de você.

Imagem da mão direita de uma pessoa demonstrando o sistema de coordenadas destro

Imagem da mão esquerda de uma pessoa demonstrando o sistema de coordenadas canhoto

Os sistemas de coordenadas espaciais no Windows (e, portanto, Windows Mixed Reality) são sempre destros.

[!NOTES]

  • Unity e Unreal usam o sistema de coordenadas canhoto.
  • Embora as coordenadas para canhotos e destros sejam os sistemas mais comuns, existem outros sistemas de coordenadas usados em software 3D. Por exemplo, não é incomum que aplicativos de modelagem 3D usem um sistema de coordenadas no qual o eixo Y aponta para perto ou para longe do visualizador e o eixo Z aponta para cima.

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

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

Alguns conteúdos devem ignorar as atualizações de posição da cabeça, permanecendo sempre fixos em uma direção escolhida e distantes do usuário. O exemplo principal é o vídeo em 360 graus: como o vídeo é capturado de uma única perspectiva fixa, ele arruinaria a ilusão de que a posição da exibição se movesse com base no conteúdo, mesmo que a orientação da exibição mude à medida que o usuário olha ao redor. Você pode criar essas experiências somente de orientação usando um quadro de referência anexado.

Quadro de referência estacionário

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áveis possível com base no mundo, respeitando as mudanças na posição da cabeça do usuário.

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

Um aplicativo normalmente criará um quadro de referência estacionário 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 simplesmente começar a colocar conteúdo com base na origem, que estará na posição e orientação inicial do usuário. Se o usuário se mudar para um novo local e quiser continuar sua experiência em escala sentada, você poderá recentralizar a origem do mundo nesse local.

Com o 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 menores ou maiores do que o sistema acreditava anteriormente. Se você renderizar hologramas em um quadro de referência estacionário para um aplicativo no HoloLens em que os usuários vagam além de uma área de cerca de 5 metros de largura, seu aplicativo poderá observar desvio no local observado desses hologramas. Se sua experiência tiver usuários vagando além de 5 metros, você estará criando uma experiência em escala mundial, o que exigirá outras técnicas para manter os hologramas estáveis, conforme descrito abaixo.

Quadro de referência anexado

Um quadro de referência anexado se move com o usuário enquanto ele caminha, com um título fixo definido quando o aplicativo cria o quadro pela primeira vez. Isso permite que o usuário olhe confortavelmente ao redor para 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 pelo corpo.

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

Criando uma experiência em escala permanente ou em escala de sala

Para ir além da escala sentada em um headset imersivo e criar uma experiência em escala estacionária, você pode usar o quadro de referência do palco.

Para fornecer uma experiência em escala de sala, permitindo que os usuários andem dentro do limite de 5 metros predefinido, você também pode verificar os limites do estágio.

Quadro de referência do estágio

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

Limites do palco

O usuário também pode, opcionalmente, definir limites de estágio, uma área dentro da sala que ele limpou 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 referência do estágio fornece um único sistema de coordenadas fixas para colocar o conteúdo relativo ao piso, é o caminho mais fácil para portar aplicativos em escala permanente e em escala de sala desenvolvidos para fones de ouvido de realidade virtual. No entanto, como acontece com essas plataformas de RV, um único sistema de coordenadas só pode estabilizar o conteúdo em cerca de 5 metros (16 pés) de diâmetro, antes que os efeitos do braço de alavanca façam com que o conteúdo longe do centro se desloque visivelmente à medida que o sistema se ajusta. Para ir além de 5 metros, são necessárias âncoras espaciais.

Construindo uma experiência em escala mundial

O HoloLens permite experiências reais em escala mundial que permitem que os usuários vagueiem além de 5 metros. Para criar um aplicativo em 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ígidas 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 mundial 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 movesse esses objetos, suas transformações relativas permaneceriam sempre as mesmas. Esse tipo de sistema de coordenadas global funciona bem ao renderizar um mundo puramente virtual onde você conhece toda a geometria com antecedência. Os aplicativos de RV em escala de sala hoje normalmente estabelecem esse tipo de sistema de coordenadas absoluto em escala de sala com sua origem no chão.

Por outro lado, um dispositivo de realidade misturada sem restrições, como o HoloLens, tem uma compreensão dinâmica do mundo orientada por sensores, ajustando continuamente seu conhecimento ao longo do tempo sobre os arredores do usuário à medida que ele caminha muitos metros por um andar inteiro de um edifício. Em uma experiência em escala mundial, se você colocasse todos os hologramas em um único sistema de coordenadas rígidas, esses hologramas necessariamente se desviariam ao longo do tempo, com base no mundo ou entre si.

Por exemplo, o fone de ouvido pode atualmente acreditar que dois locais no mundo estão a 4 metros de distância e, posteriormente, refinar esse entendimento, aprendendo que os locais estão de fato 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ígidas, um deles sempre apareceria a 0,1 metros do mundo real.

Âncoras espaciais

Windows Mixed Reality resolve o problema descrito na seção anterior, permitindo 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 umas nas outras, 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 onde o usuário coloca um holograma e, em seguida, posicionar esse holograma com base em sua âncora espacial, você pode garantir que o holograma mantenha a estabilidade ideal, mesmo quando o usuário percorre dezenas de metros.

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

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

  • Os hologramas colocados no quadro de referência do estágio também mantêm uma relação rígida entre si. Em contraste com o quadro estacionário, o quadro do palco sempre permanece fixo no lugar com base em sua origem física definida. No entanto, o conteúdo renderizado no sistema de coordenadas do estágio além de seu limite de 5 metros só parecerá estável enquanto o usuário estiver dentro desse limite.

  • Os hologramas colocados usando uma âncora espacial podem ser desviados com base em hologramas colocados usando outra âncora espacial. Isso permite que o Windows melhore sua compreensão da posição de cada âncora espacial, mesmo que, por exemplo, uma âncora precise se ajustar à esquerda e outra âncora precise se ajustar à direita.

Em contraste com um quadro de referência estacionário, que sempre otimiza a estabilidade perto do usuário, o quadro de referência de estágio e as âncoras espaciais garantem 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 de seu sistema de coordenadas experimentarão efeitos de braço de alavanca cada vez mais graves. Isso ocorre porque pequenos ajustes na posição e orientação do palco ou âncora são ampliados proporcionalmente à distância dessa âncora.

Uma boa regra é 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, a renderização de conteúdo distante é OK, pois qualquer erro posicional aumentado afetará apenas pequenos hologramas que não mudarão muito na exibição do usuário.

Persistência de âncora espacial

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

Você pode salvar em disco as âncoras espaciais que seu aplicativo cria e, em seguida, carregá-las novamente mais tarde, persistindo-as no repositório de âncoras espaciais do aplicativo. Ao salvar ou carregar uma âncora, você fornece uma chave de cadeia de caracteres que é significativa para seu aplicativo, para identificar a âncora posteriormente. Pense nessa chave como o nome do arquivo da â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 seu aplicativo e associe-o à chave escolhida.

Ao persistir âncoras na loja, os usuários podem colocar hologramas individuais ou colocar um espaço de trabalho 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 do seu aplicativo.

Evite conteúdo com bloqueio de cabeça

Desencorajamos fortemente a renderização de conteúdo com bloqueio de cabeça, que permanece em um ponto fixo na tela (como um HUD). Em geral, o conteúdo bloqueado é desconfortável para os usuários e não parece uma parte natural de seu mundo.

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

Tratamento de erros de rastreamento

Em alguns ambientes, como corredores escuros, pode não ser possível para um fone de ouvido usando rastreamento de dentro para fora se localizar corretamente no mundo. Isso pode fazer com que os hologramas não apareçam ou apareçam em locais incorretos se tratados incorretamente. Agora discutimos 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 fone de ouvido não pode rastrear devido a dados insuficientes do sensor

Às vezes, os sensores do fone de ouvido não conseguem descobrir onde o fone de ouvido está. Isso pode acontecer se:

  • O quarto está escuro
  • Se os sensores estiverem cobertos por cabelos ou mãos
  • Se o ambiente não tiver textura suficiente.

Quando isso acontecer, o fone de ouvido não poderá rastrear sua posição com precisão suficiente para renderizar hologramas bloqueados pelo mundo. Você não pode descobrir onde uma âncora espacial, quadro estacionário ou quadro de palco é baseado no dispositivo. No entanto, você ainda pode renderizar o conteúdo bloqueado por corpo no quadro de referência anexado.

Seu aplicativo deve informar ao usuário como recuperar o rastreamento posicional, renderizando algum conteúdo de fallback bloqueado pelo corpo que descreve algumas dicas, como descobrir os sensores e acender mais luzes.

O fone de ouvido rastreia incorretamente devido a alterações dinâmicas no ambiente

O dispositivo não pode rastrear corretamente se houver muitas mudanças dinâmicas no ambiente, como muitas pessoas andando pela sala. Nesse caso, os hologramas podem parecer saltar ou derivar à medida que o dispositivo tenta se rastrear nesse ambiente dinâmico. Recomendamos usar o dispositivo em um ambiente menos dinâmico se você atingir esse cenário.

O fone de ouvido rastreia incorretamente porque o ambiente mudou significativamente ao longo do tempo

Quando você começa a usar um fone de ouvido em um ambiente onde móveis, tapeçarias e assim por diante foram movidos, é possível que alguns hologramas apareçam deslocados de seus locais originais. Os hologramas anteriores também podem saltar à medida que o usuário se move no novo espaço porque a compreensão do sistema sobre seu espaço não é mais verdadeira. O sistema então tenta remapear o ambiente enquanto também tenta reconciliar os recursos da sala. Nesse cenário, é recomendável incentivar os usuários a substituir os hologramas fixados no mundo se eles não estiverem aparecendo onde o esperado.

O fone de ouvido 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 grandes pôsteres idênticos que cobrem o campo de visão do dispositivo. Em tais cenários, o dispositivo pode, às vezes, ficar confuso entre as partes idênticas e marcá-las como iguais 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 rastreamento com frequência, pois sua representação interna do ambiente foi corrompida. Nesse caso, é aconselhável redefinir a compreensão ambiental do sistema. A redefinição do mapa leva à perda de todos os posicionamentos de âncoras espaciais. Isso fará com que o fone de ouvido rastreie bem nas áreas exclusivas do ambiente. No entanto, o problema pode ocorrer novamente se o dispositivo ficar confuso entre as áreas idênticas novamente.

Confira também