Sistemas de coordenadas
Em seu núcleo, aplicativos de realidade misturada colocam hologramas em seu mundo que se parecem e soam objetos reais. Isso envolve posicionar e orientar precisamente esses hologramas em lugares significativos do mundo, seja a sala física ou um reino virtual que você criou. O Windows fornece vários sistemas de coordenadas do mundo real para expressar geometria. Eles são conhecidos como sistemas de coordenadas espaciais. Você pode usar esses sistemas para raciocinar sobre posição do holograma, orientação, raio de foco 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 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 gama de experiências do usuário, desde visualizadores de vídeo de 360 graus usando orientação de fone de ouvido até aplicativos e jogos em escala mundial completo usando mapeamento espacial e âncoras espaciais:
Escala de experiência | Requisitos | Experiência de exemplo |
---|---|---|
Somente orientação | Orientação do fone de ouvido (alinhada à gravidade) | Visualizador de vídeo 360° |
Escala sentada | Acima mais a posição do fone de ouvido com base na posição zero | Jogo de corrida ou simulador de espaço |
Escala em pé | Acima de mais origem do piso do estágio | Jogo de ação onde você se abaixa e se esquiva no lugar |
Escala de sala | Polígono acima de limites de estágio | Jogo de quebra-cabeça onde você anda ao redor do quebra-cabeça |
Escala mundial | Âncoras espaciais (e, normalmente , mapeamento espacial) | Jogo com inimigos vindos de suas paredes reais, como RoboRaid |
As escalas de experiência acima seguem um modelo de "bonecas aninhando". O principal princípio de design para Windows Mixed Reality é o seguinte: um determinado headset dá suporte a aplicativos criados para uma escala de experiência de destino e todas as escalas menores.
Acompanhamento 6DOF | Piso definido | Acompanhamento de 360° | Limites definidos | Âncoras espaciais | Experiência máxima |
---|---|---|---|---|---|
Não | - | - | - | - | Somente orientação |
Sim | Não | - | - | - | Sentado |
Sim | Sim | Não | - | - | Em pé - Avançar |
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 no 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 Cartesian 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 um significado real no mundo físico de um sistema de coordenadas espaciais , que expressa seus valores de coordenadas em metros. Isso significa que os objetos colocados duas unidades separadas 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 renderizar facilmente objetos e ambientes em escala real.
Em geral, os sistemas de coordenadas cartesianos são chamados de "destros" ou "canhotos", pois você pode usar posições manuais 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ê.
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 canhota e destro sejam os sistemas mais comuns, há outros sistemas de coordenadas usados no software 3D. Por exemplo, não é incomum que aplicativos de modelagem 3D usem um sistema de coordenadas no qual o eixo Y aponta para cima ou para longe do visualizador e o eixo Z aponta para cima.
Criando uma experiência de escala sentada ou somente orientação
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 de cabeça previsto. Você pode criar experiências de escala sentada que respeitam as alterações na posição da cabeça do usuário e na orientação da cabeça usando um quadro de referência estacionário.
Alguns conteúdos devem ignorar as atualizações de posição de cabeçalho, mantendo-se fixo em um título escolhido e a distância do usuário sempre. O exemplo principal é o vídeo de 360 graus: como o vídeo é capturado de uma única perspectiva fixa, arruinaria a ilusão de que a posição de exibição se movesse com base no conteúdo, mesmo que a orientação de exibição mude conforme o usuário olha ao redor. Você pode criar essas experiências somente 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ável possível com base no mundo, respeitando as alterações 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 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 colocado no mundo, mesmo enquanto o usuário anda por aí, é conhecido como conteúdo bloqueado pelo 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 apenas começar a colocar conteúdo com base na origem, que estará na posição inicial e na orientação do usuário. Se o usuário mudar para um novo local e quiser continuar sua experiência de escala sentada, você poderá usar 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 mais longas do que o sistema acreditava anteriormente. 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 pode observar descompasso no local observado desses hologramas. Se sua experiência tiver usuários vagando além de 5 metros, você está criando uma experiência de 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 anda por aí, com um título fixo definido quando o aplicativo cria o quadro pela primeira vez. Isso permite que o usuário examine confortavelmente 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 ele 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á-los no mundo. Os aplicativos que são de escala sentada ou superior devem incluir um fallback somente orientação para ajudar o usuário a começar novamente, com interface do usuário semelhante à mostrada na Realidade Misturada página inicial.
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 permanente, você pode usar o quadro de referência de estágio.
Para fornecer uma experiência de escala de sala, permitindo que os usuários andem dentro do limite de 5 metros predefinido, você também pode marcar para limites de estágio.
Quadro de estágio de referência
Ao configurar um headset imersivo pela primeira vez, o usuário define um estágio, que representa a sala na qual 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 pelo usuário e na orientação de encaminhamento em que ele pretende usar o dispositivo. Ao colocar conteúdo neste 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 de estágio
O usuário também pode, opcionalmente, definir limites de estágio, uma área dentro da sala que ele limpou para se mover em realidade misturada. Nesse caso, o aplicativo pode criar uma experiência de 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 fixas no qual colocar conteúdo relativo ao piso, é o caminho mais fácil para portar aplicativos de escala permanente e de escala de sala desenvolvidos para headsets de realidade virtual. No entanto, como nessas plataformas VR, um único sistema de coordenadas só pode estabilizar o conteúdo com cerca de 5 metros de diâmetro, antes que os efeitos do braço da alavanca causem o conteúdo longe do centro para mudar visivelmente à medida que o sistema se ajusta. Para ir além de 5 metros, âncoras espaciais são necessárias.
Criando uma experiência em escala mundial
O HoloLens permite experiências verdadeiras em escala mundial que permitem que os usuários perambulem 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 de 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 do mundo absoluto para o qual todas as outras coordenadas podem ser mapeadas 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 sempre permaneceriam 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. Os aplicativos VR em escala de sala hoje normalmente estabelecem esse tipo de sistema de coordenadas de escala de sala absoluta com sua origem no chão.
Por outro lado, um dispositivo de realidade misturada sem conexão, como o HoloLens, tem uma compreensão dinâmica orientada por sensores do mundo, ajustando continuamente seu conhecimento ao longo do tempo dos arredores do usuário à medida que caminham muitos metros por um andar inteiro de um edifício. Em uma experiência de escala mundial, se você colocasse todos os hologramas em um único sistema de coordenadas rígidas, esses hologramas necessariamente derivariam ao longo do tempo, seja com base no mundo ou uns nos outros.
Por exemplo, o fone de ouvido pode acreditar atualmente que dois locais no mundo têm 4 metros de distância e, em seguida, 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 precisamente 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 uns nos outros é 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 derivar com base no mundo para garantir que os hologramas ao lado do usuário pareçam estáveis.
Os hologramas colocados no quadro de estágio de referência também mantêm uma relação rígida entre si. Em contraste com o quadro estacionário, 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ó parecerá estável enquanto o usuário estiver dentro desse limite.
Hologramas colocados usando uma âncora espacial podem derivar 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.
Ao contrário de um quadro de referência estacionário, que sempre otimiza para estabilidade próximo ao usuário, o quadro de estágio de referência e âncoras espaciais 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 no braço da alavanca. Isso ocorre porque pequenos ajustes na posição e na orientação do estágio ou da âncora são ampliados proporcionalmente à distância dessa âncora.
Uma boa regra geral é garantir que qualquer coisa que você renderize 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 aumentado afetará apenas hologramas pequenos 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 lembre-se de um local importante mesmo depois que seu aplicativo é suspenso ou o dispositivo é desligado.
Você pode salvar em disco as âncoras espaciais que seu aplicativo cria e carregá-las novamente mais tarde, mantendo-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 mais tarde. 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-os no armazenamento local do aplicativo e associe-os à chave escolhida.
Ao manter âncoras na loja, seus 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 do seu aplicativo.
Você também pode usar âncoras espaciais do Azure para persistência de holograma assíncrona em dispositivos HoloLens, iOS e Android. Ao compartilhar uma âncora espacial de nuvem durável, vários dispositivos podem observar o mesmo holograma persistente ao longo do tempo, mesmo que esses dispositivos não estejam 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 dispositivos HoloLens, iOS e 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 bloqueio de cabeça
Desencorajamos fortemente a renderização de conteúdo com bloqueio de cabeça, que permanece em um ponto fixo na exibição (como um HUD). Em geral, o conteúdo com bloqueio de cabeça é desconfortável para os usuários e não se sente como uma parte natural de seu mundo.
O conteúdo com bloqueio de cabeça geralmente deve ser substituído por hologramas anexados ao usuário ou colocados no próprio mundo. Por exemplo, os cursores geralmente devem ser enviados 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 que um fone de ouvido usando o rastreamento interno se localize corretamente no mundo. Isso pode levar os hologramas a não aparecerem ou aparecerem em locais incorretos se forem 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 headset não pode rastrear devido a dados insuficientes do sensor
Às vezes, os sensores do fone de ouvido não são capazes de descobrir onde está o fone de ouvido. Isso pode ocorrer 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 headset não poderá acompanhar sua posição com precisão suficiente para renderizar hologramas com bloqueio mundial. Você não pode descobrir onde uma âncora espacial, quadro estacionário ou quadro de estágio é baseado no dispositivo. No entanto, você ainda pode renderizar o conteúdo bloqueado pelo corpo no quadro de referência anexado.
Seu aplicativo deve informar ao usuário como obter o acompanhamento posicional de volta, renderizando algum conteúdo bloqueado pelo corpo de fallback que descreve algumas dicas, como descobrir os sensores e ativar mais luzes.
O headset rastreia 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 andando pela sala. Nesse caso, os hologramas podem parecer saltar ou descompassar à medida que o dispositivo tenta se rastrear nesse ambiente dinâmico. É recomendável usar o dispositivo em um ambiente menos dinâmico se você atingir esse cenário.
O headset 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, deslocamentos 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 saltar 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, é recomendável incentivar os usuários a substituir os hologramas fixados no mundo se eles não estiverem aparecendo onde o 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 cobrem 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, é recomendá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á ocorrer novamente se o dispositivo ficar confuso entre as áreas idênticas novamente.