Descrição geral da Composição Holográfica

A composição holográfica permite que a sua aplicação desenhe um holograma numa localização precisa no mundo à volta do utilizador, quer seja colocado precisamente no mundo físico ou num reino virtual que criou. Os hologramas são objetos feitos de som e luz. A composição permite que a sua aplicação adicione a luz.

Suporte de dispositivos

Funcionalidade HoloLens (primeira geração) HoloLens 2 Headsets envolventes
Composição ✔️ ✔️ ✔️

Composição holográfica

A chave para a composição holográfica é saber que tipo de dispositivo está a ser utilizado. Os dispositivos com ecrãs see-through, como o HoloLens, adicionam luz ao mundo. Os píxeis pretos são totalmente transparentes, enquanto os píxeis mais brilhantes são cada vez mais opacos. Como a luz dos ecrãs é adicionada à luz do mundo real, os pixéis brancos são translúcidos.

Embora a composição estereoscópica forneça uma ajuda de profundidade para os hologramas, adicionar efeitos de ligação à terra pode ajudar os utilizadores a ver mais facilmente o que é o surface de um holograma. Uma técnica de terra é adicionar um brilho à volta de um holograma na superfície próxima e, em seguida, compor uma sombra contra este brilho. Desta forma, a sua sombra parece subtrair luz do ambiente. O som espacial é outra pista de profundidade importante, permitindo aos utilizadores raciocinar sobre a distância e a localização relativa de um holograma.

Os dispositivos com ecrãs opacos, como Windows Mixed Reality auscultadores envolventes, bloqueiam o mundo. Os píxeis pretos são pretos sólidos e qualquer outra cor aparece como essa cor para o utilizador. A sua aplicação é responsável por compor tudo o que o utilizador vê. Isto torna ainda mais importante manter uma taxa de atualização constante para que os utilizadores tenham uma experiência confortável.

Parâmetros de composição previstos

Os headsets de realidade mista (holoLens e headsets envolventes) controlam continuamente a posição e orientação da cabeça do utilizador em relação ao ambiente. À medida que a sua aplicação começa a preparar o fotograma seguinte, o sistema prevê onde a cabeça do utilizador estará no futuro no momento exato em que a moldura aparece nos ecrãs. Com base nesta predição, o sistema calcula a vista e a projeção transforma-se para utilizar para essa moldura. A sua aplicação tem de utilizar estas transformações para produzir resultados corretos. Se as transformações fornecidas pelo sistema não forem utilizadas, a imagem resultante não se alinhará com o mundo real, levando ao desconforto do utilizador.

Nota

Para prever com precisão quando um novo fotograma chega aos ecrãs, o sistema está constantemente a medir a latência ponto a ponto efetivo do pipeline de composição da sua aplicação. Embora o sistema se ajuste ao comprimento do pipeline de composição, pode melhorar a estabilidade do holograma ao manter esse pipeline o mais curto possível.

As aplicações que utilizam técnicas avançadas para aumentar a predição do sistema podem substituir as transformações de visualização e projeção do sistema. Estas aplicações ainda têm de utilizar transformações fornecidas pelo sistema como base para as suas transformações personalizadas produzirem resultados significativos.

Outros parâmetros de composição

Ao compor uma moldura, o sistema especifica a janela viewport back-buffer na qual a sua aplicação deve desenhar. Esta janela viewport é, muitas vezes, mais pequena do que o tamanho total da memória intermédia da moldura. Independentemente do tamanho da janela viewport, quando a moldura for composta pela aplicação, o sistema aumenta o tamanho da imagem para preencher a totalidade dos ecrãs.

Para aplicações que se encontram incapazes de compor à taxa de atualização necessária, os parâmetros de composição do sistema podem ser configurados para reduzir a pressão da memória e compor o custo ao custo do aumento do aliasing de píxeis. O formato de memória intermédia anterior também pode ser alterado, o que para algumas aplicações pode ajudar a melhorar a largura de banda da memória e o débito de píxeis.

A composição de frustum, resolução e framerate em que a sua aplicação é pedida também pode mudar de moldura para moldura e pode diferir no olho esquerdo e direito. Por exemplo, quando a captura de realidade mista (MRC) está ativa e a configuração da vista da câmara de fotografia/vídeo não está ativada, um olho pode ser composto com um FOV ou resolução maior.

Para qualquer frame, a sua aplicação tem de ser composta com a transformação de vista, a transformação de projeção e a resolução viewport fornecida pelo sistema. Além disso, a sua aplicação nunca deve assumir que qualquer parâmetro de composição ou vista permanece fixo de frame a frame. Motores como o Unity processam todas estas transformações por si nos seus próprios objetos de câmara para que o movimento físico dos seus utilizadores e o estado do sistema seja sempre respeitado. Se a sua aplicação permitir o movimento virtual do utilizador pelo mundo (por exemplo, utilizando o thumbstick num gamepad), pode adicionar um objeto de plataforma principal acima da câmara que o move. Isto faz com que a câmara reflita o movimento virtual e físico do utilizador. Se a sua aplicação modificar a transformação de vista, a transformação de projeção ou a dimensão viewport fornecida pelo sistema, tem de informar o sistema ao chamar a API de substituição adequada.

Para melhorar a estabilidade da composição holográfica, a sua aplicação deve fornecer ao Windows cada frame a memória intermédia de profundidade que utilizou para composição. Se a sua aplicação fornecer uma memória intermédia de profundidade, deverá ter valores de profundidade coerentes, com profundidade expressa em metros da câmara. Isto permite que o sistema utilize os seus dados de profundidade por pixel para estabilizar melhor o conteúdo se a cabeça do utilizador acabar ligeiramente desfasada da localização prevista. Se não conseguir fornecer a memória intermédia de profundidade, pode fornecer um ponto de foco e normal, definindo um plano que corta a maioria dos seus conteúdos. Se a memória intermédia de profundidade e um plano de concentração forem fornecidos, o sistema poderá utilizar ambos. Em particular, é útil fornecer a memória intermédia de profundidade e um ponto de foco que inclui um vetor de velocidade quando a sua aplicação apresenta hologramas que estão em movimento.

Veja o artigo Composição no DirectX para obter detalhes de baixo nível sobre este tópico.

Câmaras holográficas

Windows Mixed Reality apresenta o conceito de câmara holográfica. As câmaras holográficas são semelhantes às câmaras tradicionais encontradas em textos gráficos 3D; definem as propriedades extrínsecas (posição e orientação) e da câmara intrínseca. (Por exemplo, o campo de vista é utilizado para ver uma cena 3D virtual.) Ao contrário das câmaras 3D tradicionais, a aplicação não controla a posição, orientação e propriedades intrínsecas da câmara. Em vez disso, a posição e a orientação da câmara holográfica são controladas implicitamente pelo movimento do utilizador. O movimento do utilizador é reencaminhado para a aplicação numa base frame a frame através de uma transformação de vista. Da mesma forma, as propriedades intrínsecas da câmara são definidas pela óptica calibrada do dispositivo e reencaminhadas frame a frame através da transformação de projeção.

Em geral, a sua aplicação será composta por uma única câmara estéreo. Um ciclo de composição robusto suportará várias câmaras e suportará câmaras mono e estéreo. Por exemplo, o sistema pode pedir à sua aplicação para compor de uma perspetiva alternativa quando o utilizador ativar uma funcionalidade como a captura de realidade mista (MRC), dependendo da forma do headset. As aplicações que suportam múltiplas câmaras obtêm-nas ao optar ativamente por participar notipo de câmaras que podem suportar.

Composição de volumes

Ao compor ressonâncias magnéticas médicas ou volumes de engenharia em 3D, são frequentemente utilizadas técnicas de composição de volumes . Estas técnicas podem ser interessantes na realidade mista, onde os utilizadores podem naturalmente ver esse volume a partir de ângulos chave, simplesmente movendo a cabeça.

Resoluções suportadas no HoloLens (primeira geração)

  • O tamanho máximo de viewport é uma propriedade do HolographicDisplay. O HoloLens está definido como o tamanho máximo de viewport, que é 720p (1268x720), por predefinição.
  • O tamanho da janela viewport pode ser alterado ao definir ViewportScaleFactor no HolographicCamera. Este fator de dimensionamento está entre 0 e 1.
  • O tamanho de viewport suportado mais baixo no HoloLens (primeira geração) é de 50% de 720p, que é 360p (634x360). Este é um ViewportScaleFactor de 0,5.
  • Qualquer valor inferior a 540p não é recomendado devido à degradação visual, mas pode ser utilizado para identificar estrangulamentos na taxa de preenchimento de píxeis.

Resoluções suportadas no HoloLens 2

  • Os tamanhos de destino de composição atuais e máximos suportados são propriedades da configuração da vista. HoloLens 2 está definido como o tamanho máximo de destino de composição, que é 1440x936, por predefinição.
  • As aplicações podem alterar o tamanho das memórias intermédias de destino de composição ao chamar o método RequestRenderTargetSize para pedir um novo tamanho de destino de composição. Será escolhido um novo tamanho de destino de composição, que cumpre ou excede o tamanho de destino de composição pedido. Esta API altera o tamanho da memória intermédia de destino de composição, o que requer a reallocação de memória na GPU. As implicações desta situação incluem: o tamanho de destino de composição pode ser reduzido verticalmente para reduzir a pressão da memória na GPU e este método não deve ser chamado com elevada frequência.
  • As aplicações ainda podem alterar o tamanho da janela viewport da mesma forma que para o HoloLens 1. Não há adição de reallocação de memória na GPU, pelo que pode ser alterada com elevada frequência, mas não pode ser utilizada para reduzir a pressão da memória na GPU.
  • O tamanho de viewport suportado mais baixo no HoloLens 2 é 634x412, um ViewportScaleFactor de aproximadamente 0,44 quando o tamanho de destino de composição predefinido está em utilização.
  • Se for fornecido um tamanho de destino de composição menor do que o tamanho de viewport suportado mais baixo, o fator de escala viewport será ignorado.
  • Qualquer valor inferior a 540p não é recomendado devido à degradação visual, mas pode ser utilizado para identificar estrangulamentos na taxa de preenchimento de píxeis.

Ver também