Acerca do Azure Remote Rendering
Nota
Observe que a Renderização Remota do Azure (ARR) será desativada em 30 de setembro de 2025. Mais detalhes aqui.
A Renderização Remota do Azure (ARR) é um serviço que permite renderizar conteúdo 3D interativo e de alta qualidade na nuvem e transmiti-lo em tempo real para dispositivos, como o HoloLens 2.
Dispositivos sem amarras têm poder computacional limitado para renderizar modelos complexos. Para muitas aplicações, porém, seria inaceitável reduzir a fidelidade visual de qualquer forma. A captura de tela a seguir compara o modelo em detalhes com um modelo que foi dizimado usando uma ferramenta comum de criação de conteúdo:
O modelo reduzido consiste em aproximadamente 200.000 triângulos (incluindo as partes internas detalhadas), contra mais de 18 milhões de triângulos no modelo original.
A renderização remota resolve esse problema movendo a carga de trabalho de renderização para GPUs high-end na nuvem. Um mecanismo gráfico hospedado na nuvem renderiza a imagem, codifica-a como um fluxo de vídeo e transmite-a para o dispositivo de destino.
Renderização híbrida
Na maioria dos aplicativos, não é suficiente apenas renderizar um modelo complexo. Você também precisa de uma interface do usuário personalizada para fornecer funcionalidade ao usuário. A Renderização Remota do Azure não força você a usar uma estrutura de interface do usuário dedicada, em vez disso, ela dá suporte à Renderização Híbrida. Isso significa que você pode renderizar elementos no dispositivo, usando seu método preferido, como MRTK.
No final de um quadro, a Renderização Remota do Azure combina automaticamente o conteúdo renderizado localmente com a imagem remota. É até capaz de fazê-lo com a oclusão correta.
Renderização multi-GPU
Alguns modelos são muito complexos para renderizar em taxas de quadros interativas, mesmo para uma GPU high-end. Especialmente na visualização industrial, este é um problema comum. Para expandir ainda mais os limites, a Renderização Remota do Azure pode distribuir a carga de trabalho para várias GPUs. Os resultados são mesclados em uma única imagem, tornando o processo totalmente transparente para o usuário.
Arquitetura de alto nível
Este diagrama ilustra a arquitetura de renderização remota:
Um ciclo completo para a geração de imagens envolve as seguintes etapas:
- Lado do cliente: Configuração do quadro
- Seu código: a entrada do usuário é processada, o gráfico de cena é atualizado
- Código ARR: As atualizações do gráfico de cena e a pose de cabeça prevista são enviadas para o servidor
- Lado do servidor: Renderização remota
- O mecanismo de renderização distribui a renderização entre as GPUs disponíveis
- A saída de várias GPUs é composta em uma única imagem
- A imagem é codificada como fluxo de vídeo, enviada de volta ao cliente
- Lado do cliente: Finalização
- Seu código: o conteúdo local opcional (UI, marcadores, ...) é renderizado
- Código ARR: No 'presente', o conteúdo renderizado localmente é automaticamente mesclado com o fluxo de vídeo
A latência da rede é o principal problema. O tempo de resposta entre o envio de uma solicitação e o recebimento do resultado normalmente é muito longo para taxas de quadros interativas. Portanto, mais de um quadro pode estar em voo a qualquer momento.