Share via


Configuração da câmera no Unity

Quando você usa um fone de ouvido de realidade mista, ele se torna o centro do seu mundo holográfico. O componente Unity Camera manipulará automaticamente a renderização estereoscópica e seguirá o movimento e a rotação da cabeça. No entanto, para otimizar totalmente a qualidade visual e a estabilidade do holograma, você deve definir as configurações da câmera descritas abaixo.

Fones de ouvido imersivos HoloLens vs VR

As configurações padrão no componente Unity Camera são para aplicativos 3D tradicionais, que precisam de um plano de fundo semelhante a uma skybox, pois não têm um mundo real.

  • Ao executar em um fone de ouvido imersivo, você está renderizando tudo o que o usuário vê e, portanto, provavelmente desejará manter a skybox.
  • No entanto, ao rodar em um fone de ouvido holográfico como o HoloLens, o mundo real deve aparecer atrás de tudo o que a câmera renderiza. Defina o plano de fundo da câmera para ser transparente (no HoloLens, o preto é renderizado como transparente) em vez de uma textura Skybox:
    1. Selecione a câmera principal no painel Hierarquia
    2. No painel Inspetor, localize o componente Câmera e altere o menu suspenso Limpar sinalizadores de Skybox para Cor sólida
    3. Selecione o seletor de cores de plano de fundo e altere os valores RGBA para (0, 0, 0, 0)
      1. Se definir isso a partir do código, você pode usar o Unity Color.clear

O MRTK lidará com configurações específicas da câmera automaticamente, com base na configuração no perfil do sistema da câmera.

Espaço para nome:Microsoft.MixedReality.Toolkit.CameraSystem
Tipo: MixedRealityCameraSystem

Para verificar a opacidade da câmera, o sistema MixedRealityCamera tem uma IsOpaque propriedade.

CoreServices.CameraSystem.IsOpaque;

Instalação da câmera

Seja qual for o tipo de experiência que você está desenvolvendo, a câmera principal é sempre o principal componente de renderização estéreo conectado ao display montado na cabeça do seu dispositivo. Será mais fácil dispor seu aplicativo se você imaginar a posição inicial do usuário como (X: 0, Y: 0, Z: 0). Como a Câmera Principal está rastreando o movimento da cabeça do usuário, a posição inicial do usuário pode ser definida definindo a posição inicial da Câmera Principal.

A escolha central que você precisa fazer é se você está desenvolvendo para HoloLens ou fones de ouvido imersivos VR. Depois de ter isso, pule para qualquer seção de configuração aplicável.

Configuração da câmera HoloLens

Para aplicativos HoloLens, você precisa usar âncoras para todos os objetos que deseja bloquear no ambiente da cena. Recomendamos usar espaço ilimitado para maximizar a estabilidade e criar âncoras em várias salas.

Siga este tutorial passo a passo para adicionar e configurar automaticamente o Mixed Reality Toolkit em seu projeto Unity. Também é possível trabalhar diretamente com a classe MixedRealityPlayspace do MRTK for Unity e definir a Escala de Destino para o Mundo:

Janela de configurações do MRTK

MRTK deve lidar com a posição do espaço de jogo e câmera automaticamente, mas é bom verificar duas vezes:

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o GameObject MixedRealityPlayspacee localize o objeto filho Câmera Principal
  2. No painel Inspetor, localize o componente Transformar e altere a Posição para (X: 0, Y: 0, Z: 0)

Configuração da câmera VR

O Windows Mixed Reality oferece suporte a aplicativos em uma ampla variedade de escalas de experiência, desde aplicativos somente de orientação e de escala sentada até aplicativos de escala de sala. No HoloLens, você pode ir além e criar aplicativos de escala mundial que permitem que os usuários caminhem além de 5 metros, explorando um andar inteiro de um edifício e além.

Sua primeira etapa na criação de uma experiência de realidade mista no Unity é determinar qual escala de experiência seu aplicativo terá como alvo:

Experiências em escala de quarto ou em pé

Observação

Se você estiver criando para o HL2, recomendamos criar uma experiência no nível dos olhos ou considerar o uso do Entendimento de Cena para raciocinar sobre o piso da cena.

Use a classe MixedRealityPlayspace do MRTK para Unity e defina a Escala de Destino como Sala ou Posição:

Janela de configurações do MRTK

MRTK deve lidar com a posição do espaço de jogo e câmera automaticamente, mas é bom verificar duas vezes:

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o GameObject MixedRealityPlayspacee localize o objeto filho Câmera Principal
  2. No painel Inspetor, localize o componente Transformar e altere a Posição para (X: 0, Y: 0, Z: 0)

Experiências sentadas

Use a classe MixedRealityPlayspace do MRTK para Unity e defina a Escala de Destino como Sentado:

Janela de configurações do MRTK

MRTK deve lidar com a posição do espaço de jogo e câmera automaticamente, mas é bom verificar duas vezes:

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o GameObject MixedRealityPlayspacee localize o objeto filho Câmera Principal
  2. No painel Inspetor, localize o componente Transformar e altere a Posição para (X: 0, Y: 0, Z: 0)

Configurando o plano de fundo da câmera

Se você estiver usando MRTK, o plano de fundo da câmera será configurado e gerenciado automaticamente. Para projetos XR SDK ou Legacy WSA, recomendamos definir o fundo da câmera para preto sólido no HoloLens e manter a skybox para VR.

Usando várias câmeras

Quando há vários componentes de câmera na cena, Unity sabe qual câmera usar para renderização estereoscópica com base em qual GameObject tem a tag MainCamera. No XR herdado, ele também usa essa tag para sincronizar o rastreamento de cabeça. No SDK do XR, o rastreamento de cabeça é conduzido por um script TrackedPoseDriver conectado à câmera.

Compartilhando buffers de profundidade

Compartilhar o buffer de profundidade do seu aplicativo com o Windows cada quadro dará ao seu aplicativo um dos dois aumentos na estabilidade do holograma, com base no tipo de fone de ouvido para o qual você está renderizando:

  • Os fones de ouvido imersivos VR podem cuidar da reprojeção posicional quando um buffer de profundidade é fornecido, ajustando seus hologramas para previsão incorreta tanto na posição quanto na orientação.
  • Os fones de ouvido HoloLens têm alguns métodos diferentes. O HoloLens 1 selecionará automaticamente um ponto de foco quando um buffer de profundidade for fornecido, otimizando a estabilidade do holograma ao longo do plano que cruza a maior parte do conteúdo. O HoloLens 2 estabilizará o conteúdo usando o LSR de profundidade (consulte Observações).

A caixa de diálogo de configuração do MRTK tentará definir configurações de buffer de profundidade para o XR SDK e o WSA herdado, mas é bom verificar essas guias e verificar as configurações no Unity.

Usando planos de recorte

Renderizar conteúdo muito perto do usuário pode ser desconfortável na realidade mista. Você pode ajustar os planos de clipe próximos e distantes no componente Câmera.

  1. Selecione a câmera principal no painel Hierarquia
  2. No painel Inspetor, localize o componente Planos de recorte da câmera e altere a caixa de texto Perto de 0,3 para 0,85. O conteúdo renderizado ainda mais pode levar ao desconforto do usuário e deve ser evitado de acordo com as diretrizes de distância de renderização.

Reentrando na câmera

Se você estiver criando uma experiência em escala sentada, poderá recentralizar a origem mundial do Unity na posição atual da cabeça do usuário chamando o XR. Método InputTracking.Recenter em XR herdado ou o método XRInputSubsystem.TryRecenter no SDK XR.

Portabilidade

Esse recurso geralmente é reservado para experiências de RV:

O MRTK fornece um sistema de teletransporte in-box que funciona automaticamente através de mãos articuladas e controladores.

Modos de reprojeção

Tanto o HoloLens quanto os fones de ouvido imersivos reprojetarão cada quadro renderizado pelo aplicativo para ajustar qualquer previsão incorreta da posição real da cabeça do usuário quando os fótons forem emitidos.

Por padrão:

  • Os fones de ouvido imersivos VR cuidarão da reprojeção posicional se o aplicativo fornecer um buffer de profundidade para um determinado quadro. Os fones de ouvido imersivos também ajustarão seus hologramas para erros de previsão tanto na posição quanto na orientação. Se um buffer de profundidade não for fornecido, o sistema corrigirá apenas previsões incorretas na orientação.
  • Fones de ouvido holográficos como o HoloLens 2 cuidarão da reprojeção posicional, independentemente de o aplicativo fornecer seu buffer de profundidade ou não. A reprojeção posicional é possível sem buffers de profundidade no HoloLens, pois a renderização é muitas vezes esparsa com um plano de fundo estável fornecido pelo mundo real.

Atualmente, o MRTK não tem auxiliares para o modo de reprojeção. Consulte uma das outras guias para obter mais informações.

Próximo ponto de verificação de desenvolvimento

Se você está acompanhando a jornada de desenvolvimento do Unity que apresentamos, está explorando os blocos de construção principais do MRTK. Deste ponto, você pode prosseguir para o próximo bloco de construção:

Ou vá diretamente para as funcionalidades e APIs da plataforma de Realidade Misturada:

Você sempre pode voltar para os pontos de verificação de desenvolvimento do Unity a qualquer momento.

Confira também