Câmera de foto/vídeo do HoloLens no UnrealHoloLens Photo/Video Camera in Unreal

Visão geralOverview

O HoloLens tem uma câmera de foto/vídeo (PV) que é usada para a MRC (captura de realidade misturada) e pode também ser usada por um aplicativo para acessar elementos visuais do mundo real.The HoloLens has a Photo/Video (PV) Camera that is used for both Mixed Reality Capture (MRC) and can be used by an app to access real-world visuals.

Importante

A câmera PV não é compatível com a Comunicação Remota Holográfica, mas é possível usar uma webcam anexada ao seu PC para simular a funcionalidade da câmera PV do HoloLens.The PV Camera isn't supported with Holographic Remoting, but it's possible to use a webcam attached to your PC to simulate the HoloLens PV Camera functionality.

Renderizar da câmera de PV para MRCRender from the PV Camera for MRC

Observação

Isso requer o Unreal Engine 4.25 ou posterior.This requires Unreal Engine 4.25 or newer.

O sistema e os gravadores personalizados de MRC criam capturas de realidade misturada combinando a câmera de PV com hologramas renderizados pelo aplicativo de imersão.The system, and custom MRC recorders, create mixed reality captures by combining the PV Camera with holograms rendered by the immersive app.

Por padrão, a captura de realidade misturada usa a saída holográfica do olho direito.By default, mixed reality capture uses the right eye's holographic output. Se um aplicativo de imersão optar por renderizar da câmera de PV, isso será usado em vez do padrão citado acima.If an immersive app chooses to render from the PV Camera then that will be used instead. Isso melhora o mapeamento entre o mundo real e os hologramas no vídeo do MRC.This improves the mapping between the real world and the holograms in the MRC video.

Para aceitar a renderização da câmera de PV:To opt-in to rendering from the PV Camera:

  1. Chamar SetEnabledMixedRealityCamera e ResizeMixedRealityCameraCall SetEnabledMixedRealityCamera and ResizeMixedRealityCamera
    • Use os valores de Tamanho X e Tamanho Y para definir as dimensões do vídeo.Use the Size X and Size Y values to set the video dimensions.

Terceira câmera

Em seguida, o Unreal lidará com as solicitações da MRC para renderizar da perspectiva da câmera de PV.Unreal will then handle requests from MRC to render from the PV Camera's perspective.

Observação

Somente quando a Captura de Realidade Misturada for disparada, o aplicativo será solicitado a renderizar partindo da perspectiva da câmera de foto/vídeo.Only when Mixed Reality Capture is triggered will the app be asked to render from the photo/video camera's perspective.

Usando a câmera de PVUsing the PV Camera

A textura de webcam pode ser recuperada no jogo em runtime, mas precisa ser habilitada no menu Editar > Configurações de Projeto do editor:The webcam texture can be retrieved in the game at runtime, but it needs to be enabled in the editor's Edit > Project Settings:

  1. Acesse Plataformas > HoloLens > Funcionalidades e marque Webcam.Go to Platforms > HoloLens > Capabilities and check Webcam.
    • Use a função StartCameraCapture para usar a webcam em runtime e a função StopCameraCapture para interromper a gravação.Use the StartCameraCapture function to use the webcam at runtime and the StopCameraCapture function to stop recording.

Iniciar/interromper câmera

Renderização de uma imagemRendering an image

Para renderizar a imagem da câmera:To render the camera image:

  1. Crie uma instância de material dinâmico com base em um material no projeto, nomeado PVCamMat na captura de tela abaixo.Create a dynamic material instance based on a material in the project, which is named PVCamMat in the screenshot below.
  2. Defina a instância de material dinâmico para uma variável de Referência de Objeto Dinâmico da Instância de Material.Set the dynamic material instance to a Material Instance Dynamic Object Reference variable.
  3. Defina o material do objeto na cena que renderizará o feed da câmera para essa nova instância de material dinâmico.Set the material of the object in the scene that will render the camera feed to this new dynamic material instance.
    • Inicie um temporizador que será usado para associar a imagem da câmera ao material.Start a timer that will be used to bind the camera image to the material.

Renderização da câmera

  1. Crie uma função para esse temporizador (neste caso, MaterialTimer) e chame GetARCameraImage para obter a textura da webcam.Create a new function for this timer, in this case MaterialTimer, and call GetARCameraImage to get the texture from the webcam.
  2. Se a textura for válida, defina um parâmetro de textura no sombreador para a imagem.If the texture is valid, set a texture parameter in the shader to the image. Caso contrário, inicie o temporizador de material novamente.Otherwise, start the material timer again.

Textura da câmera da webcam

  1. Verifique se o material tem um parâmetro correspondente ao nome em SetTextureParameterValue que esteja associado a uma entrada de cor.Make sure the material has a parameter matching the name in SetTextureParameterValue that's bound to a color entry. Sem isso, a imagem da câmera não pode ser exibida corretamente.Without this, the camera image can't be properly displayed.

Textura da câmera

Próximo ponto de verificação de desenvolvimentoNext Development Checkpoint

Se você está seguindo o percurso do ponto de verificação de desenvolvimento do Unreal que apresentamos, você está no meio da exploração de funcionalidades e APIs da plataforma de Realidade Misturada.If you're following the Unreal development checkpoint journey we've laid out, you're in the midst of exploring the Mixed Reality platform capabilities and APIs. Daí, você pode prosseguir para o próximo tópico:From here, you can proceed to the next topic:

Ou vá diretamente para a implantação de seu aplicativo em um dispositivo ou emulador:Or jump directly to deploying your app on a device or emulator:

Você sempre pode voltar para os pontos de verificação de desenvolvimento do Unreal a qualquer momento.You can always go back to the Unreal development checkpoints at any time.

Veja tambémSee also