Partilhar 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 lidará automaticamente com 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 fundo semelhante a uma skybox, pois não têm um mundo real.

  • Ao rodar em um fone de ouvido imersivo, você está renderizando tudo o que o usuário vê e, portanto, provavelmente vai querer manter a skybox.
  • No entanto, ao rodar em um fone de ouvido holográfico como o HoloLens, o mundo real deve aparecer por trás de tudo o que a câmera renderiza. Defina o 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 a lista suspensa 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 Color.clear

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

Espaço de nomes: Microsoft.MixedReality.Toolkit.CameraSystem
Tipo: MixedRealityCameraSystem

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

CoreServices.CameraSystem.IsOpaque;

Configuração da câmara

Seja qual for o tipo de experiência que esteja a desenvolver, a Câmara Principal é sempre o principal componente de renderização estéreo ligado ao ecrã montado na cabeça do seu dispositivo. Será mais fácil definir o layout do seu aplicativo se você imaginar a posição inicial do usuário como (X: 0, Y: 0, Z: 0). Uma vez que 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 fones de ouvido imersivos HoloLens ou VR. Depois de ter isso, pule para a seção de configuração aplicável.

Configuração da câmera HoloLens

Para aplicativos HoloLens, você precisa usar âncoras para quaisquer objetos que deseja bloquear no ambiente da cena. Recomendamos o uso de 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 reprodução e da câmera automaticamente, mas é bom verificar duas vezes:

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o MixedRealityPlayspace GameObject e localize o objeto filho da 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 dimensionados até aplicativos de escala de sala. No HoloLens, você pode ir além e criar aplicativos em escala mundial que permitem que os usuários caminhem além de 5 metros, explorando um andar inteiro de um prédio 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 segmentará:

Experiências em escala de sala ou em pé

Nota

Se você estiver criando para HL2, recomendamos criar uma experiência ao nível dos olhos ou considerar usar o Entendimento de cena para raciocinar sobre o chão da sua cena.

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

Janela de configurações do MRTK

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

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o MixedRealityPlayspace GameObject e localize o objeto filho da 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 for 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 reprodução e da câmera automaticamente, mas é bom verificar duas vezes:

Espaço de jogo MRTK

  1. No painel Hierarquia, expanda o MixedRealityPlayspace GameObject e localize o objeto filho da 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 do fundo da câmara

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 como preto sólido no HoloLens e manter a skybox para RV.

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 XR SDK, o rastreamento de cabeça é conduzido por um script TrackedPoseDriver anexado à câmera.

Compartilhamento de buffers de profundidade

Compartilhar o buffer de profundidade do seu aplicativo com cada quadro do Windows dará ao seu aplicativo um dos dois impulsos 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ões incorretas tanto na posição quanto na orientação.
  • Os auriculares 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 mais conteúdo. O HoloLens 2 irá estabilizar o conteúdo usando Profundidade LSR (ver Observações).

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

Usando planos de recorte

Tornar o conteúdo muito próximo 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 do componente Câmera e altere a caixa de texto Próximo de 0,3 para 0,85. O conteúdo renderizado ainda mais perto pode causar desconforto ao usuário e deve ser evitado de acordo com as diretrizes de distância de renderização.

Recuando a câmera

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

Teletransporte

Este recurso é normalmente 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 erro de previsão da posição real da cabeça do usuário quando os fótons forem emitidos.

Por predefinição:

  • Os fones de ouvido imersivos de RV cuidarão da reprojeção posicional se o aplicativo fornecer um buffer de profundidade para um determinado quadro. Os auriculares imersivos também ajustarão os seus hologramas para erros de previsão, tanto na posição como na orientação. Se um buffer de profundidade não for fornecido, o sistema corrigirá apenas erros de previsão na orientação.
  • Fones de ouvido holográficos como o HoloLens 2 cuidarão da reprojeção posicional, quer o aplicativo forneça 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 fundo estável fornecido pelo mundo real.

Atualmente, o MRTK não tem auxiliares para o modo de reprojeção. Consulte um dos outros separadores para obter mais informações.

Próximo ponto de verificação de desenvolvimento

Se você está seguindo a jornada de desenvolvimento Unity que estabelecemos, você está no meio da exploração dos blocos de construção principais do MRTK. A partir daqui, você pode continuar para o próximo bloco de construção:

Ou pule para os recursos e APIs da plataforma de Realidade Mista:

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

Consulte também