Visão geral da captura de realidade misturada

Observação

Consulte Renderizar da câmera PV abaixo para obter diretrizes sobre uma nova funcionalidade de MRC para HoloLens 2.

Você pode tirar uma foto ou vídeo de MRC ( captura de realidade misturada ) a qualquer momento, mas há poucas coisas a ter em mente ao desenvolver seu aplicativo. Isso inclui as práticas recomendadas para a qualidade visual do MRC e ser responsivo às alterações do sistema enquanto os MRCs estão sendo capturados.

Os desenvolvedores também podem integrar perfeitamente a captura e a inserção de realidade misturada em seus aplicativos.

O MRC no HoloLens (primeira geração) dá suporte a vídeos e fotos de até 720p, enquanto o MRC no HoloLens 2 dá suporte a vídeos de até 1080p e fotos de até 4K de resolução.

A importância do MRC de qualidade

Seja capturas de tela de realidade misturada em sua página da Microsoft Store ou outros usuários compartilhando conteúdo de captura em redes sociais, Realidade Misturada Capturar mídia geralmente é uma primeira exposição dos usuários ao seu aplicativo. Você pode usar o MRC para demonstrar seu aplicativo, instruir os usuários, incentivar os usuários a compartilhar suas interações de mundo misto e para pesquisa de usuários e solução de problemas.

Como o MRC afeta seu aplicativo

Habilitar o MRC em seu aplicativo

Por padrão, um aplicativo não precisa fazer nada para permitir que os usuários façam capturas de realidade misturada.

Habilitar o alinhamento aprimorado para o MRC em seu aplicativo

Por padrão, a captura de realidade misturada combina a saída holográfica do olho direito com a câmera foto/vídeo (PV). Essas duas fontes são combinadas usando o ponto de foco definido pelo aplicativo imersivo em execução no momento.

Isso significa que os hologramas fora do plano de foco não serão alinhados devido à distância física entre a câmera PV e a tela direita.

Definir o ponto de foco

Os aplicativos imersivos (no HoloLens) devem definir o ponto de foco de onde desejam que seu plano de estabilização esteja. Isso garante o melhor alinhamento no headset e na captura de realidade misturada.

Se um ponto de foco não estiver definido, o plano de estabilização terá como padrão 2 metros.

Renderizar da câmera PV (aceitação)

HoloLens 2 adiciona a capacidade de um aplicativo imersivo renderizar da câmera PV enquanto a captura de realidade misturada está em execução. Para garantir que o aplicativo dê suporte à renderização adicional corretamente, o aplicativo precisa aceitar essa funcionalidade.

A renderização da câmera PV oferece as seguintes melhorias em relação à experiência padrão do MRC:

  • O alinhamento do holograma ao seu ambiente físico e às mãos para interações próximas deve ser preciso a todas as distâncias. Evite ter um deslocamento em distâncias diferentes do ponto de foco, como você pode ver no MRC padrão.
  • O olho direito no headset não será comprometido, pois ele não será usado para renderizar os hologramas para a saída do MRC.

Saiba mais sobre renderização da câmera PV (DirectX).

Práticas recomendadas (específicas do HoloLens)

Espera-se que o MRC funcione sem esforços adicionais de desenvolvimento, mas há algumas coisas a serem consideradas ao fornecer a melhor experiência de captura de realidade misturada.

O MRC usa o canal alfa do holograma para se misturar com as imagens da câmera

A etapa mais importante é garantir que seu aplicativo esteja limpando para preto transparente em vez de limpar para preto opaco. No Unity, isso é feito por padrão com o MixedRealityToolkit. Se você estiver desenvolvendo no não Unity, talvez seja necessário fazer uma alteração de linha única.

Aqui estão alguns dos artefatos que você poderá ver no MRC se seu aplicativo não estiver limpando para preto transparente:

Falhas de exemplo: bordas pretas ao redor do conteúdo (falha ao limpar para preto transparente)

Falha ao limpar para preto transparente: artefatos de borda preta ao redor de hologramas Falha ao limpar para preto transparente: artefatos de borda preta ao redor de hologramas

Falhas de exemplo: toda a cena da tela de fundo do holograma aparece preta. Definir um valor alfa de plano de fundo de um resulta em uma tela de fundo preta

Definir um valor alfa de plano de fundo de 1 resulta em uma tela de fundo preta

Resultado esperado: os hologramas aparecem corretamente misturados com o mundo real (resultado esperado se estiver limpando para preto transparente)

Resultado esperado se estiver limpando para preto transparente

Solução:

  • Altere qualquer conteúdo que esteja aparecendo como preto opaco para ter um valor alfa de 0.
  • Verifique se o aplicativo está limpando para preto transparente.
  • O Unity usa como padrão limpar automaticamente com o MixedRealityToolkit, mas se for um aplicativo não Unity, você deverá modificar a cor usada com ID3D11DeiceContext::ClearRenderTargetView(). Você deseja garantir que desmarque para preto transparente (0,0,0,0) em vez de preto opaco (0,0,0,1).

Agora você pode ajustar os valores alfa de seus ativos se quiser, mas normalmente não precisa. Na maioria das vezes, os MRCs ficarão bem prontos para uso. O MRC pressupõe alfa pré-multiplicado. Os valores alfa afetarão apenas a captura do MRC.

O que esperar quando o MRC está habilitado no HoloLens

O seguinte se aplica ao HoloLens (primeira geração) e HoloLens 2, a menos que indicado de outra forma:

  • O sistema limitará o aplicativo à renderização de 30 Hz. Isso cria algum espaço para que o MRC seja executado para que o aplicativo não precise manter uma reserva de orçamento constante e também corresponda à taxa de quadros de registro de vídeo mrc de 30 fps
  • O conteúdo do holograma no olho direito do dispositivo pode parecer "brilhante" ao gravar/transmitir MRC: o texto pode se tornar mais difícil de ler e as bordas do holograma podem parecer mais vazias (optar pela renderização da terceira câmera em HoloLens 2 evita esse comprometimento)
  • Fotos e vídeos do MRC respeitarão o ponto de foco do aplicativo se o aplicativo o tiver habilitado, o que ajudará a garantir que os hologramas estejam posicionados com precisão. Para vídeos, o Ponto de Foco é suavizado para que os hologramas possam parecer lentamente descompassos no lugar se a profundidade do Ponto de Foco mudar significativamente. Os hologramas que estão em profundidades diferentes do ponto de foco podem aparecer deslocados do mundo real (veja o exemplo abaixo em que o Ponto de Foco é definido em 2 metros, mas o holograma está posicionado a 1 metro).

Hologramas a 2 metros aparecerão perfeitamente registrados para o mundo. Hologramas a distâncias próximas ou distantes podem ser ligeiramente deslocados.

Integrando a funcionalidade mrc de dentro de seu aplicativo

Seu aplicativo de realidade misturada pode iniciar a captura de fotos ou vídeos do MRC de dentro do aplicativo, e o conteúdo capturado é disponibilizado para seu aplicativo sem ser armazenado no "Rolo da câmera" do dispositivo. Você pode criar um gravador de MRC personalizado ou aproveitar a interface do usuário de captura de câmera interna.

MRC com interface do usuário de câmera interna

Os desenvolvedores podem usar a API de interface do usuário do Camera Capture para obter uma foto ou vídeo de realidade misturada capturado pelo usuário com apenas algumas linhas de código.

Essa API inicia a interface do usuário da câmera mrc interna, na qual os usuários podem tirar uma foto ou vídeo e retorna a captura resultante para seu aplicativo. Você pode criar um gravador de captura de Realidade Misturada personalizado se precisar adicionar sua própria interface do usuário da câmera ou acesso de nível inferior para capturar fluxos.

Criando um gravador mrc personalizado

Embora o usuário sempre possa disparar uma foto ou vídeo usando o serviço de captura mrc do sistema, um aplicativo pode querer criar um aplicativo de câmera personalizado que inclua hologramas no fluxo da câmera, assim como o MRC. Isso permite que o aplicativo inicie capturas da entrada do usuário, crie uma interface do usuário de gravação personalizada ou personalize as configurações de MRC para citar alguns exemplos.

O HoloStudio adiciona uma câmera MRC personalizada usando efeitos mrc

O HoloStudio adiciona uma câmera MRC personalizada usando efeitos mrc

Os Aplicativos do Unity devem ver Locatable_camera_in_Unity da propriedade para habilitar hologramas.

Outros aplicativos podem fazer isso usando as APIs do Windows Media Capture para controlar a Câmera e adicionar um efeito de Vídeo e Áudio do MRC para incluir hologramas virtuais e áudio do aplicativo em imagens e vídeos.

Saiba mais sobre como criar um gravador MRC personalizado (DirectX).

Limitações simultâneas do MRC

Você precisa estar ciente de certas limitações quando vários aplicativos estiverem acessando o MRC ao mesmo tempo.

Acesso à câmera de foto/vídeo

No HoloLens 1, o MRC não conseguirá capturar uma foto ou capturar um vídeo enquanto um processo está gravando vídeo ou tirando uma foto. O inverso também é verdadeiro: se o MRC estiver em execução, o aplicativo não obterá acesso à câmera.

Com HoloLens 2, é possível compartilhar o acesso à câmera. Se você não precisar de controle direto da resolução ou da taxa de quadros, poderá inicializar o MediaCapture usando a propriedade SharedMode com SharedReadOnly.

Acesso interno à câmera de vídeo/foto do MRC

Saiba mais sobre o acesso interno à câmera de vídeo/foto (DirectX) do MRC.

Acesso ao MRC para desenvolvedores

Recomendamos que você sempre solicite controle exclusivo para a câmera ao usar o MRC. Isso garantirá que seu aplicativo tenha controle total das configurações da câmera, desde que você esteja ciente das limitações listadas acima.

Saiba mais sobre o acesso mrc para desenvolvedores (DirectX).

Confira também