Sistemas de coordenadas
Em sua essência, os aplicativos de realidade mista colocam hologramas em seu mundo que se parecem e soam como objetos reais. Isso envolve posicionar e orientar com precisão esses hologramas em lugares significativos do mundo, seja o mundo físico ou um reino virtual que você criou. O Windows fornece vários sistemas de coordenadas do mundo real para expressar geometria - estes 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 de dispositivos
Funcionalidade | HoloLens (1ª geração) | HoloLens 2 | Auriculares imersivos |
Quadro de referência fixo | ✔️ | ✔️ | ✔️ |
Quadro de referência em anexo | ✔️ | ✔️ | ✔️ |
Quadro de referência da fase | Não suportada ainda | Não suportada ainda | ✔️ |
Âncoras espaciais | ✔️ | ✔️ | ✔️ |
Mapeamento espacial | ✔️ | ✔️ | ❌ |
Compreensão de cena | ❌ | ✔️ | ❌ |
Escalas de experiência de realidade mista
Você pode projetar aplicativos de realidade mista 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 completa usando mapeamento espacial e âncoras espaciais:
Escala de experiência | Requisitos | Exemplo de experiência |
---|---|---|
Apenas orientação | Orientação do auricular (alinhada com a 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 espacial |
Escala em pé | Acima mais a origem do piso do palco | Jogo de ação onde você pato e esquiva no lugar |
Escala da sala | Polígono acima dos limites do estágio | Jogo de quebra-cabeça onde você anda ao redor do quebra-cabeça |
À escala mundial | Âncoras espaciais (e tipicamente mapeamento espacial) | Jogo com inimigos vindos de suas paredes reais, como RoboRaid |
As escalas de experiência acima seguem um modelo de "bonecos de nidificação". O principal princípio de design para o Windows Mixed Reality é o seguinte: um determinado fone de ouvido suporta 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 | - | - | - | - | Apenas orientação |
Sim | No | - | - | - | Sentados |
Sim | Sim | No | - | - | Em pé - Em frente |
Sim | Sim | Sim | No | - | Em pé - 360° |
Sim | Sim | Sim | Sim | No | Quarto |
Sim | Sim | Sim | Sim | Sim | Mundo |
O quadro de referência Stage ainda não é suportado no HoloLens. Um aplicativo em escala de sala no HoloLens atualmente precisa usar mapeamento espacial ou compreensão de cena para encontrar o chão e as paredes do usuário.
Sistemas de coordenadas espaciais
Todas as aplicações gráficas 3D usam sistemas de coordenadas cartesianas para raciocinar sobre as posições e orientações de objetos virtuais. Estes sistemas de coordenadas estabelecem três eixos perpendiculares: X, Y e Z. Cada objeto adicionado 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 objetos colocados duas unidades separados no eixo X, Y ou Z aparecerão a dois metros de distância um do outro quando renderizados em realidade mista. Sabendo disso, você pode facilmente renderizar objetos e ambientes em escala do mundo 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ê.
Os sistemas de coordenadas espaciais no Windows (e, portanto, no Windows Mixed Reality) são sempre destros.
[! OBSERVAÇÕES]
- Unity e Unreal usam o sistema de coordenadas canhoto.
- Embora as coordenadas canhotas e destras sejam os sistemas mais comuns, existem outros sistemas de coordenadas usados em softwares 3D. Por exemplo, não é incomum que aplicativos de modelagem 3D usem um sistema de coordenadas no qual o eixo Y aponta para ou para longe do visualizador e o eixo Z aponta para cima.
Construindo uma experiência somente de orientação ou em escala sentada
A chave para a renderização holográfica é alterar a visão do seu 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 da cabeça 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 da posição da cabeça, mantendo-se fixos num cabeçalho escolhido e sempre à distância do utilizador. O principal exemplo é o vídeo de 360 graus: como o vídeo é capturado de uma única perspetiva fixa, isso arruinaria a ilusão de que a posição de visualização se movesse com base no conteúdo, mesmo que a orientação da visualizaçã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 fixo
O sistema de coordenadas fornecido por um quadro de referência estacionário trabalha para manter as posições dos objetos perto do usuário o mais estável 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 motor de jogo como Unity, um quadro de referência estacionário é o que define a "origem mundial" do motor. 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 colocado no mundo, mesmo quando o usuário anda por aí, é conhecido como conteúdo bloqueado mundialmente.
Normalmente, um aplicativo cria um quadro de referência estacionário na inicialização e usa seu sistema de coordenadas durante toda a vida útil do aplicativo. Como desenvolvedor de aplicativos em Unity, você pode simplesmente começar a colocar conteúdo com base na origem, que estará na posição inicial e orientação do usuário. Se o usuário se mudar para um novo lugar e quiser continuar sua experiência em escala sentada, você poderá recentralizar a origem mundial 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 mais longas do que o sistema acreditava anteriormente. Se você renderizar hologramas em um quadro de referência estacionário para um aplicativo no HoloLens onde os usuários vagam além de uma área de cerca de 5 metros de largura, seu aplicativo pode observar desvio no local observado desses hologramas. Se a sua experiência tem usuários vagando além de 5 metros, você está construindo uma experiência em escala mundial, que exigirá outras técnicas para manter os hologramas estáveis, conforme descrito abaixo.
Quadro de referência em anexo
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 do 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 dizer ao usuário que seu dispositivo não pode encontrá-los no mundo. Os aplicativos com 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 da Realidade Mista.
Construindo uma experiência em escala permanente ou em escala de sala
Para ir além da escala sentada em um fone de ouvido imersivo e criar uma experiência em pé, você pode usar o quadro de referência do palco.
Para fornecer uma experiência em escala de sala, permitindo que os usuários caminhem dentro do limite de 5 metros que eles predefiniram, você também pode verificar os limites do palco.
Quadro de referência da fase
Ao configurar pela primeira vez um fone de ouvido imersivo, o usuário define um palco, que representa a sala na qual ele experimentará a realidade mista. O estágio define minimamente uma origem de palco, um sistema de coordenadas espaciais centrado na posição do chão escolhida pelo usuário e orientação para frente onde ele 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 apareçam confortavelmente no chão quando o usuário estiver em pé, proporcionando aos usuários uma experiência em escala de pé.
Limites do palco
O usuário também pode, opcionalmente, definir limites de palco, uma área dentro da sala que ele limpou para se mover em realidade mista. 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 palco fornece um único sistema de coordenadas fixas dentro do qual colocar o conteúdo relativo ao chão, é o caminho mais fácil para portar aplicativos em escala permanente e em escala de sala desenvolvidos para headsets 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 de braço de alavanca façam com que o conteúdo longe do centro mude visivelmente à medida que o sistema se ajusta. Para ir além dos 5 metros, são necessárias âncoras espaciais.
Construir uma experiência à escala mundial
O HoloLens permite verdadeiras experiências à escala mundial que permitem aos utilizadores vaguear para além dos 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 de mundo absoluto para o qual todas as outras coordenadas possam ser mapeadas de forma confiável. Nesse ambiente, você sempre pode encontrar uma transformação estável que define uma relação entre quaisquer 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 globais funciona bem ao renderizar um mundo puramente virtual onde você conhece toda a geometria com antecedência. Hoje em dia, os aplicativos de RV em escala de sala normalmente estabelecem esse tipo de sistema de coordenadas em escala de sala absoluta com sua origem no chão.
Em contraste, um dispositivo de realidade mista sem amarras como o HoloLens tem uma compreensão dinâmica do mundo orientada por sensores, ajustando continuamente seu conhecimento ao longo do tempo dos arredores do usuário enquanto ele caminha muitos metros por um andar inteiro de um edifício. Em uma experiência de escala mundial, se você colocasse todos os seus hologramas em um único sistema de coordenadas rígidas, esses hologramas necessariamente se desviariam ao longo do tempo, seja com base no mundo ou uns para os outros.
Por exemplo, o fone de ouvido pode atualmente acreditar que dois locais no mundo estão a 4 metros de distância e, mais tarde, 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ígidas, um deles apareceria sempre a 0,1 metro de distância do mundo real.
Âncoras espaciais
O Windows Mixed Reality resolve o problema descrito na seção anterior, permitindo que você crie âncoras espaciais para marcar pontos importantes no mundo onde 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.
Este ajuste contínuo de âncoras espaciais baseadas umas nas outras é a principal diferença entre sistemas de coordenadas de âncoras espaciais e quadros de referência estacionários:
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 palco também mantêm uma relação rígida entre si. Em contraste com o quadro estacionário, o quadro do palco permanece sempre fixo no lugar com base na 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ó aparecerá 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.
Em contraste com um quadro de referência estacionário, que sempre otimiza a estabilidade perto do usuário, o quadro de referência do palco 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 do sistema de coordenadas experimentarão efeitos 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 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, a renderização de conteúdo distante é OK, pois qualquer erro de posição aumentado afetará apenas pequenos hologramas que não mudarão muito na visão do usuário.
Persistência da âncora espacial
As âncoras espaciais também podem permitir que seu aplicativo se lembre de um local importante, mesmo depois que o aplicativo for suspenso ou o dispositivo desligado.
Você pode salvar em disco as âncoras espaciais criadas pelo seu aplicativo e carregá-las novamente mais tarde, persistindo-as no repositório de âncoras espaciais do seu 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 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 seu aplicativo e associe-o à chave escolhida.
Ao persistir âncoras na loja, seus 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 bloqueado pela cabeça
Desencorajamos fortemente a renderização de conteúdo bloqueado pela cabeça, que permanece em um ponto fixo na tela (como um HUD). Em geral, o conteúdo bloqueado pela cabeça é desconfortável para os usuários e não se sente como uma parte natural de seu mundo.
O conteúdo bloqueado pela cabeça geralmente deve ser substituído por hologramas que são anexados ao usuário ou colocados no próprio mundo. Por exemplo, os cursores geralmente devem ser empurrados para o mundo, escalando 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 rastreamento de dentro para fora se localize corretamente no mundo. Isso pode levar a que os hologramas não apareçam ou apareçam em locais incorretos se manuseados 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 são capazes de descobrir onde o fone de ouvido está. Este problema pode ocorrer se:
- O quarto está escuro
- Se os sensores estiverem cobertos por pelos ou mãos
- Se o ambiente não tiver textura suficiente.
Quando isso acontece, o fone de ouvido será incapaz de rastrear sua posição com precisão suficiente para renderizar hologramas bloqueados mundialmente. Não é possível descobrir onde uma âncora espacial, quadro estacionário ou quadro de palco está baseado no dispositivo. No entanto, você ainda pode renderizar conteúdo bloqueado pelo corpo no quadro de referência anexado.
Seu aplicativo deve dizer ao usuário como obter rastreamento posicional de volta, renderizando algum conteúdo de bloqueio de corpo de fallback que descreve algumas dicas, como descobrir os sensores e acender mais luzes.
O fone de ouvido rastreia incorretamente devido a mudanças 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. Neste caso, os hologramas podem parecer saltar ou derivar à medida que o dispositivo tenta rastrear-se neste 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, pendurados na parede e assim por diante foram movidos, é possível que alguns hologramas pareç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 do seu espaço não é mais verdadeira. O sistema então tenta remapear o ambiente enquanto também tenta conciliar as características da sala. Nesse cenário, é aconselhável incentivar os usuários a substituir hologramas que fixaram no mundo se eles não estiverem aparecendo onde o esperado.
Faixas de fone de ouvido 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 cartazes idênticos que cobrem o campo de visão do dispositivo. Em tais cenários, o dispositivo pode, às vezes, se confundir 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 rastreamento muitas vezes, uma vez que sua representação interna do ambiente foi corrompida. Neste caso, é aconselhável redefinir o entendimento ambiental do sistema. Redefinir o mapa leva à perda de todos os posicionamentos de âncora espacial. 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 fica confuso entre as áreas idênticas novamente.