O Samsung Galaxy XR já chegou com tecnologia Android XR! Esta postagem faz parte da Semana de Destaques do Android XR, em que oferecemos recursos (postagens no blog, vídeos, exemplos de código e muito mais) para ajudar você a aprender, criar e preparar seus apps para o Android XR.
Esta semana, a Samsung lançou o Galaxy XR, desenvolvido em colaboração com o Google e a Qualcomm. Este é um momento incrível para os desenvolvedores, e queremos ajudar você a ter a melhor performance possível com seu app de XR.
O desempenho ruim em jogos e apps em dispositivos que não são de RV pode ser frustrante para o usuário. No entanto, no mundo da RV, o desempenho não é apenas opcional, mas fundamental para o sucesso do app. Se você não atingir a meta de frame rate na RV, isso pode causar problemas muito mais graves, como enjoo.
Neste guia, vamos mostrar as otimizações de desempenho essenciais que você precisa entender para o desenvolvimento de realidade estendida no Android. Você vai aprender quais recursos oferecem os maiores ganhos de performance, quando usá-los e como eles funcionam juntos para ajudar você a atingir as metas de taxa de frames.
Nosso objetivo é:
- Mínimo : 72 fps (parte das nossas diretrizes de qualidade de reprodução)
- Opcional : 90 fps com um orçamento de 11 ms por frame
Para mais informações sobre por que é importante manter uma taxa de frames tão alta, confira nossas diretrizes de performance.
Recursos de desempenho específicos para XR
Vamos começar abordando dois recursos de desempenho específicos de XR: renderização foveada e subamostragem do Vulkan.
Renderização foveada
A renderização foveada é uma otimização que tem dois modos. O primeiro é um modo estático que renderiza o centro da tela em uma resolução mais alta e diminui progressivamente a resolução quanto mais longe você olha.
O segundo é o modo de rastreamento ocular, que renderiza especificamente a área em que você está olhando com detalhes completos, reduzindo a qualidade exibida nos periféricos. Ele imita essencialmente como a visão humana funciona, em que só vemos detalhes na área específica em que estamos focando.
A renderização foveada reduz significativamente a carga de trabalho da GPU sem sacrificar a qualidade da imagem percebida pelo usuário. A beleza da renderização foveada é que os usuários não percebem a qualidade reduzida na visão periférica, mas a GPU certamente percebe o desempenho aprimorado.
Imagine que você está criando uma experiência de museu com artefatos 3D complexos. Sem a renderização foveada, seria difícil manter 90 fps ao tentar renderizar tudo no "campo de visão". Com a renderização foveada, é possível manter os detalhes de alta qualidade onde o usuário está olhando, mas o ambiente em segundo plano é renderizado com uma qualidade menor. Os usuários não vão notar a diferença, mas você terá espaço para adicionar mais detalhes à cena.
Subamostragem do Vulkan
O subamostragem do Vulkan é o melhor amigo da renderização foveada. Enquanto a renderização foveada decide o que renderizar em diferentes níveis de qualidade, a subamostragem do Vulkan lida com a renderização eficiente dos diferentes níveis de qualidade usando mapas de densidade de fragmentos.
Quando combinado com a renderização foveada, o subamostragem do Vulkan oferece mais 0,5 ms de desempenho. Ele também ajuda a suavizar bordas irregulares na sua visão periférica, deixando a imagem geral mais nítida.
Por exemplo, em um jogo de simulador de voo em que os usuários se concentram em instrumentos e controles, a combinação da renderização foveada com a subamostragem do Vulkan significa que os controles detalhados são renderizados com nitidez, mas a estrutura periférica da cabine usa menos recursos. Esses 0,5 ms extras não parecem muito, mas é a diferença entre ter espaço para um elemento interativo extra ou descartar frames durante momentos intensos.
Recursos de GPU para cenas complexas
Além da renderização foveada e da subamostragem do Vulkan, há alguns recursos de GPU que reduzem o esforço desnecessário por meio de instâncias e eliminação inteligentes. Eles são particularmente eficazes para cenas complexas com geometria repetida ou oclusão significativa.
Gaveta residente de GPU
O GPU Resident Drawer usa automaticamente a criação de instâncias de GPU para reduzir as chamadas de desenho e liberar tempo de processamento da CPU. Assim, em vez de a CPU informar à GPU sobre cada objeto individualmente, a GPU agrupa objetos semelhantes.
Esse recurso é mais eficaz para cenas grandes com malhas repetidas, como árvores em uma floresta, móveis em um prédio de escritórios ou objetos espalhados por um ambiente.
Imagine uma cena de floresta com 200 árvores usando a mesma malha de base. Sem o GPU Resident Drawer, você tem 200 chamadas de desenho consumindo a GPU e, portanto, liberando a CPU. Quando você ativa esse recurso, a GPU cria instâncias inteligentes dessas árvores, o que deve reduzir o número de chamadas de desenho para apenas 5 a 10. Essa é uma economia enorme de GPU que você pode investir em lógica de jogabilidade ou cálculos de física.
Eliminação por oclusão de GPU
A eliminação por oclusão de GPU usa a GPU em vez da CPU para identificar e pular a renderização de objetos ocultos. Ela detecta automaticamente o que está ocluído (oculto) atrás de outros objetos, para que você não gaste a GPU em coisas que o usuário não pode ver.
Esse recurso é especialmente útil em espaços internos com vários cômodos, ambientes densos ou cenas arquitetônicas em que paredes, pisos e objetos bloqueiam naturalmente a visão.
Por exemplo, digamos que você esteja criando uma experiência de casa com vários cômodos. Quando o usuário está na sala de estar, por que desperdiçar ciclos de GPU renderizando a cozinha totalmente detalhada que está completamente escondida atrás de uma parede? A remoção de oclusão da GPU pula automaticamente a renderização desses objetos ocultos, oferecendo mais montante de desempenho para o que está realmente visível.
Monitorar sua performance
Não basta apenas usar esses recursos. Você também precisa medir suas otimizações para quantificar o impacto delas e verificar se as mudanças estão funcionando.
API Performance Metrics
A API Performance Metrics oferece monitoramento em tempo real do uso de memória, do desempenho da CPU e da GPU dos seus apps. Ele oferece dados abrangentes das camadas de compositor e de tempo de execução para que você possa ver exatamente o que está acontecendo no seu aplicativo.
Estabeleça um valor de referência antes de fazer mudanças, aplique uma otimização, meça o impacto e repita. Essa abordagem baseada em dados significa que você sabe que está melhorando a performance, e não apenas supondo.
Antes de ativar a renderização foveada, o tempo para a renderização do frame da GPU pode ser de 13 ms, o que está acima do orçamento de 11 ms. Ative a renderização foveada, meça novamente e, com sorte, você verá que ela caiu para 9 ms. Isso significa 4 ms de headroom para adicionar mais detalhes à cena, melhorar a qualidade visual em outro lugar ou simplesmente garantir uma performance mais fluida em uma variedade maior de conteúdo.
Sem essas métricas, você está otimizando às cegas. A API Metrics de Performance informa a verdade sobre o que realmente está ajudando seu caso de uso específico.
Frame Debugger
O Frame Debugger é a ferramenta integrada do Unity para entender exatamente como sua cena está sendo renderizada, frame a frame. Ele mostra a sequência de chamadas de desenho e permite percorrer cada uma delas para verificar se as otimizações estão funcionando corretamente.
Quer confirmar se o SRP Batcher está funcionando? Procure entradas "RenderLoopNewBatcher" no depurador de frames. Como verificar se o gaveteiro residente da GPU está fazendo o agrupamento em lotes corretamente? Procure entradas "Grupo de lote híbrido". Essas confirmações visuais ajudam você a entender se as configurações de otimização estão realmente sendo aplicadas.
Percorra as primeiras 50 chamadas de desenho da sua cena. Se você vir objetos semelhantes sendo desenhados individualmente em vez de em lote, isso significa que a instanciação ou o loteamento não estão funcionando corretamente. O depurador de frames torna esses problemas imediatamente visíveis para que você possa resolvê-los.
Outras otimizações
Além das otimizações que abordamos acima, nosso guia completo de performance também inclui algumas outras otimizações. Confira um breve resumo:
- Configurações do URP:desative o HDR e o pós-processamento para XR móvel. Esses recursos têm um impacto visual mínimo em comparação com o custo de performance no hardware móvel. Assim, você terá ganhos de performance mensuráveis com diferenças visuais quase imperceptíveis.
- SRP Batcher:reduz a sobrecarga da CPU em cenas com muitos materiais usando a mesma variante de shader. Ao minimizar as mudanças de estado de renderização entre as chamadas de desenho, é possível reduzir significativamente o tempo da CPU gasto na renderização.
- Taxa de atualização da tela:ajuste dinâmico entre 72 e 90 QPS com base na complexidade da cena. Diminua a taxa de frames durante sequências complexas para manter a estabilidade e aumente-a durante momentos mais simples para uma interação ultrassuave.
- Texturas opacas/de profundidade:desative-as, a menos que sejam especificamente necessárias para efeitos de shader. Elas causam operações de cópia desnecessárias da GPU que desperdiçam desempenho sem oferecer benefícios para a maioria dos aplicativos.
- Escala de renderização do URP : essa configuração permite renderizar com uma resolução reduzida para melhorar o desempenho ou aumentar a qualidade visual.
Para instruções detalhadas sobre essas e outras otimizações, confira o Guia completo de desempenho do Unity para Android XR.
Conclusão
O desempenho do seu app de RV não é apenas uma caixa de seleção técnica. É a diferença entre uma experiência confortável e envolvente e uma que faz os usuários se sentirem mal ou desconfortáveis. As otimizações que abordamos são seu kit de ferramentas para atingir essas metas críticas de taxa de frames nos dispositivos XR mais recentes.
Este é seu roteiro:
- Comece com a renderização foveada e a subamostragem do Vulkan. Esses recursos específicos de XR oferecem uma economia imediata e perceptível de GPU.
- Adicione o painel residente da GPU e a eliminação por oclusão se você tiver cenas complexas com geometria repetida ou espaços internos.
- Monitore tudo com a API Metrics para garantir que as mudanças estejam realmente ajudando
- Confira outras otimizações do URP para aumentar ainda mais a performance
É fundamental medir continuamente e iterar. Nem toda otimização vai beneficiar todos os projetos igualmente. Por isso, use a API Performance Metrics para ter uma ideia clara do que realmente ajuda seu caso de uso específico.
Próxima etapa: aprimorar suas habilidades
Quer mais detalhes? Confira estes recursos (em inglês):
- Guia de desempenho do Unity para Android XR: instruções completas de implementação detalhada para todos os recursos abordados aqui.
- Começar a usar o Unity e o Android XR: configure seu ambiente de desenvolvimento e comece a criar.
- Documentação para desenvolvedores do Android XR: guias abrangentes para todos os recursos do Android XR
Continuar lendo
-
Notícias sobre produtos
Temos o prazer de anunciar que o suporte oficial para Unreal Engine e Godot chegou ao Android XR. Também estamos lançando novas ferramentas projetadas para aumentar sua produtividade e ativar novos recursos de XR: o Android XR Engine Hub e o Android XR Interaction Framework.
Luke Hopkins, Ryan Bartley • Leitura de 4 minutos
-
Notícias sobre produtos
Todos os anos, o Google I/O traz novos anúncios e recursos em ecossistemas e produtos, incluindo o desenvolvimento do Android. À medida que o desenvolvimento muda para IA e ferramentas assistidas por agentes, ampliamos nossas ofertas para oferecer um suporte melhor, seja qual for sua decisão de criar para Android.
Simona Milanovic • Leitura de 2 minutos
-
Notícias sobre produtos
No Google I/O 2026, mostramos como os avanços mais recentes no ecossistema Android podem ajudar você a aumentar a qualidade do app e maximizar a eficiência do desenvolvimento.
Ataul Munim • Leitura de 3 minutos
Fique por dentro
Receba os insights mais recentes sobre desenvolvimento Android na sua caixa de entrada semanalmente.