Descrição geral da captura de realidade mista

Nota

Veja Render from the PV camera below (Composição a partir da câmara PV) abaixo para obter orientações sobre uma nova capacidade mrc para HoloLens 2.

Pode tirar uma fotografia ou vídeo de captura de realidade mista (MRC) em qualquer altura, mas existem alguns aspetos a ter em conta ao desenvolver a sua aplicação. Isto inclui as melhores práticas para a qualidade visual do MRC e a capacidade de resposta às alterações do sistema enquanto os MRCs são capturados.

Os programadores também podem integrar de forma totalmente integrada a captura e inserção de realidade mista nas suas aplicações.

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

A importância do MRC de qualidade

Quer se trate de capturas de ecrã de realidade mista na sua página da Microsoft Store ou de outros utilizadores que partilham conteúdos de captura nas redes sociais, Mixed Reality Capturar multimédia é, muitas vezes, uma exposição inicial dos utilizadores à sua aplicação. Pode utilizar o MRC para despromover a sua aplicação, educar os utilizadores, incentivar os utilizadores a partilharem as interações do mundo misto e para a investigação e resolução de problemas dos utilizadores.

Como o MRC afeta a sua aplicação

Ativar o MRC na sua aplicação

Por predefinição, uma aplicação não tem de fazer nada para permitir que os utilizadores realizem capturas de realidade mista.

Ativar o alinhamento melhorado para o MRC na sua aplicação

Por predefinição, a captura de realidade mista combina a saída holográfica do olho direito com a câmara de fotografia/vídeo (PV). Estas duas origens são combinadas com o ponto de foco definido pela aplicação envolvente atualmente em execução.

Isto significa que os hologramas fora do plano de concentração não serão alinhados devido à distância física entre a câmara PV e o ecrã direito.

Definir o ponto de foco

As aplicações envolventes (no HoloLens) devem definir o ponto de foco de onde querem que o plano de estabilização esteja. Isto garante o melhor alinhamento no headset e na captura de realidade mista.

Se um ponto de foco não estiver definido, o plano de estabilização será predefinido para 2 metros.

Composição a partir da câmara PV (optar ativamente por participar)

HoloLens 2 adiciona a capacidade de uma aplicação envolvente compor a partir da câmara PV enquanto a captura de realidade mista está em execução. Para garantir que a aplicação suporta a composição adicional corretamente, a aplicação tem de optar por esta funcionalidade.

A composição da câmara PV oferece as seguintes melhorias sobre a experiência mrc predefinida:

  • O alinhamento do holograma com o ambiente físico e as mãos para interações próximas devem ser precisos a todas as distâncias. Evite ter um deslocamento a distâncias diferentes do ponto de foco, como poderá ver no MRC predefinido.
  • O olho direito no headset não será comprometido, uma vez que não será utilizado para compor os hologramas para a saída do MRC.

Saiba mais sobre a composição a partir da câmara PV (DirectX).

Melhores práticas (específicas do HoloLens)

Espera-se que o MRC funcione sem esforços de desenvolvimento adicionais, mas há algumas coisas a ter em conta ao proporcionar a melhor experiência de captura de realidade mista.

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

O passo mais importante é garantir que a sua aplicação está a limpar para preto transparente em vez de limpar para preto opaco. No Unity, isto é feito por predefinição com o MixedRealityToolkit. Se estiver a desenvolver em não-Unity, poderá ter de fazer uma alteração de linha.

Seguem-se alguns dos artefactos que poderá ver no MRC se a sua aplicação não estiver a limpar para preto transparente:

Falhas de Exemplo: contornos pretos à volta do conteúdo (falha ao limpar para preto transparente)

Falha ao limpar para preto transparente: artefactos de extremidade preta em torno de hologramas Falha ao limpar para preto transparente: artefactos de extremidade preta à volta de hologramas

Falhas de Exemplo: toda a cena de fundo do holograma aparece a preto. Definir um valor alfa de fundo de um resulta num fundo preto

Definir um valor alfa de fundo de 1 resulta num fundo preto

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

Resultado esperado se limpar para preto transparente

Solução:

  • Altere qualquer conteúdo que apareça como preto opaco para ter um valor alfa de 0.
  • Certifique-se de que a aplicação está a limpar para preto transparente.
  • A predefinição do Unity é desmarcada automaticamente com o MixedRealityToolkit, mas se for uma aplicação que não seja do Unity, deve modificar a cor utilizada com ID3D11DeiceContext::ClearRenderTargetView(). Quer garantir que limpa para preto transparente (0,0,0,0) em vez de preto opaco (0,0,0,1).

Agora pode otimizar os valores alfa dos seus recursos se quiser, mas normalmente não precisa de o fazer. Na maioria das vezes, os MRCs ficarão bem fora da caixa. O MRC assume alfa pré-multiplicado. Os valores alfa só afetarão a captura de MRC.

O que esperar quando o MRC está ativado no HoloLens

O seguinte aplica-se ao HoloLens (primeira geração) e ao HoloLens 2, salvo indicação em contrário:

  • O sistema limitará a aplicação à composição de 30 Hz. Isto cria algum espaço para o MRC ser executado para que a aplicação não precise de manter uma reserva orçamental constante e também corresponda à taxa de fotogramas do registo 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 tornar-se mais difícil de ler e as arestas do holograma podem parecer mais irregulares (optar pela composição da terceira câmara no HoloLens 2 evita este compromisso)
  • As fotografias e os vídeos do MRC respeitarão o ponto de foco da aplicação se a aplicação o tiver ativado, o que ajudará a garantir que os hologramas estão posicionados com precisão. Para vídeos, o Ponto de Foco é suavizado, pelo que os hologramas podem parecer lentamente desfasados se a profundidade do Ponto de Foco mudar significativamente. Os hologramas com profundidades diferentes do ponto de foco podem aparecer desfasados do mundo real (veja o exemplo abaixo onde o Ponto de Foco está definido a 2 metros, mas o holograma está posicionado a 1 metro).

Os hologramas a 2 metros aparecerão perfeitamente registados no mundo. Os hologramas próximos ou distantes podem ser ligeiramente desfasamentos.

Integrar a funcionalidade MRC a partir da sua aplicação

A sua aplicação de realidade mista pode iniciar a captura de fotografias ou vídeos do MRC a partir da aplicação e os conteúdos capturados são disponibilizados para a sua aplicação sem serem armazenados nas "Imagens da câmara" do dispositivo. Pode criar um gravador MRC personalizado ou tirar partido da IU de captura de câmara incorporada.

MRC com IU da câmara incorporada

Os programadores podem utilizar a API de Captura de Câmara da IU para obter uma fotografia ou vídeo de realidade mista capturado pelo utilizador com apenas algumas linhas de código.

Esta API inicia a IU da câmara MRC incorporada, onde os utilizadores podem tirar uma fotografia ou vídeo e devolve a captura resultante à sua aplicação. Pode criar um gravador de captura de Mixed Reality personalizado se precisar de adicionar a sua própria IU da câmara ou acesso de nível inferior para capturar fluxos.

Criar um gravador MRC personalizado

Embora o utilizador possa sempre acionar uma fotografia ou vídeo com o serviço de captura MRC do sistema, uma aplicação poderá querer criar uma aplicação de câmara personalizada que inclua hologramas na transmissão da câmara, tal como o MRC. Isto permite que a aplicação inicie capturas a partir da entrada do utilizador, crie uma IU de gravação personalizada ou personalize as definições de MRC para dar alguns exemplos.

O HoloStudio adiciona uma câmara MRC personalizada com efeitos MRC

O HoloStudio adiciona uma câmara MRC personalizada com efeitos MRC

As Aplicações do Unity devem ver Locatable_camera_in_Unity da propriedade para ativar hologramas.

Outras aplicações podem fazê-lo através das APIs de Captura de Multimédia do Windows para controlar a Câmara e adicionar um efeito vídeo e áudio MRC para incluir hologramas virtuais e áudio da aplicação em elementos e vídeos.

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

Limitações simultâneas do MRC

Tem de estar ciente de determinadas limitações quando várias aplicações estão a aceder ao MRC ao mesmo tempo.

Acesso à câmara de fotografia/vídeo

No HoloLens 1, o MRC não conseguirá capturar uma fotografia ou capturar vídeo enquanto um processo está a gravar vídeo ou a tirar uma fotografia. O inverso também é verdadeiro: se o MRC estiver em execução, a aplicação não conseguirá obter acesso à câmara.

Com HoloLens 2, é possível partilhar o acesso à câmara. Se não precisar de controlo direto da resolução ou da taxa de fotogramas, pode inicializar MediaCapture com a propriedade SharedMode com SharedReadOnly.

Acesso incorporado à câmara de fotografia/vídeo do MRC

Saiba mais sobre o acesso incorporado à câmara de fotografia/vídeo (DirectX) do MRC.

Acesso ao MRC para programadores

Recomendamos que peça sempre o controlo Exclusivo para a câmara ao utilizar o MRC. Isto irá garantir que a sua aplicação tem controlo total sobre as definições da câmara, desde que tenha conhecimento das limitações listadas acima.

Saiba mais sobre o acesso ao MRC para programadores (DirectX).

Ver também