Familiarize-se com as configurações de HDRP para melhor desempenho

MATHIEU MULLER / UNITYSenior Manager, Product Management
Oct 22, 2021|13 Min
Familiarize-se com as configurações de HDRP para melhor desempenho
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

Aprenda a aproveitar as configurações do High Definition Render Pipeline (HDRP) para maximizar o desempenho e obter gráficos poderosos de uma só vez.

Com o lançamento da versão 10 do HDRP para Unity 2020 LTS e posteriores, o pacote HDRP continuou a priorizar sua interface amigável, recursos flexíveis, estabilidade e desempenho geral. Mas para configurar o HDRP para uso ideal, é crucial entender todas as configurações principais, como elas funcionam e o que fazem. É por isso que estamos analisando como o HDRP opera a partir da perspectiva das capturas do CPU/GPU Profiler, da visualização de depuração do Render Pipelinee da estrutura de shader do HDRP.

Da depuração de gráficos à criação de perfis e otimização, este blog apresenta dicas para ajudar você a personalizar o HDRP para seu projeto usando a API Custom Passou outra parte local do pacote.

A estrutura do HDRP UX

Antes de começarmos a analisar os quadros, é importante conhecer os recursos HDRP em questão. Recomendamos assistir à nossa apresentação no Unite Now, Obtendo gráficos de alta fidelidade para jogos com HDRP, o webinar Ray tracing com o pipeline de renderização de alta definição da Unity e a palestra Nuvens volumétricas, reflexo de lente e âncora de luz , que são todos ótimos guias para HDRP.

Usuários que migram do Pipeline de renderização integrado para o HDRP geralmente descobrem que a migração leva algum tempo de ajuste. Isto ocorre porque:

  • O HDRP tem uma estrutura de renderização unificada e baseada em física, o que significa que seus atributos usam unidades do mundo real: O valor de exposição é usado para a sensibilidade à luz da câmera, enquanto Candela é usado para a intensidade da luz. Nossapalestra Unite Now revela como pensar de forma física para obter resultados consistentes ao iluminar uma cena.
  • Há muitos parâmetros que você pode controlar em um projeto HDRP, e esses parâmetros existem em muitos lugares. Isso ocorre em parte porque o HDRP tem mais recursos integrados, bem como capacidades de personalização mais profundas para que artistas e engenheiros ajustem e otimizem seu trabalho.

Para nos familiarizarmos com esses recursos do HDRP, começaremos analisando suas configurações globais.

Configurações globais

Para o Pipeline de renderização integrado, as configurações de gráficos abrangem a maioria das configurações gráficas por projeto. Há também as configurações do Player , que contêm algumas configurações gráficas gerais no contexto de uma plataforma de destino específica, como Windows, Linux, Mac ou Xbox.

Imagem de onde a configuração gráfica pode ser encontrada em projetos HDRP

Os projetos HDRP também usam configurações de gráficos e player, com a adição de mais três conjuntos de configurações que fornecem acesso a configurações padrão avançadas do pipeline de renderização.

  • Nas configurações gráficas, por exemplo, as configurações do Scriptable Render Pipeline (SRP) referem-se a um ativo padrão do HD Render Pipeline. Este recurso de pipeline de renderização HD contém configurações que podem ser substituídas em cada nível de qualidade.
  • A guia Configurações padrão do HDRP configura:
  • Configurações de quadro padrão, com propriedades padrão que podem ser substituídas para cada câmera (incluindo câmeras usadas para reflexões planas ou sondas de reflexão). Aqui você pode decidir se as câmeras renderizam objetos transparentes por padrão.
  • Componentes de volume padrão, que contêm propriedades que podem ser substituídas para cada “posição da câmera na cena”. Por exemplo, você pode definir intensidades de efeitos de pós-processamento padrão, que podem ser substituídas e se tornarem “fortes em ambientes externos, mas fracas em ambientes internos” usando volumes específicos para suas cenas.
  • A propriedade Default Diffusion Profile Assets, que pode ser substituída por um componente Diffusion Profile Override na seção Componentes de volume da guia HDRP Default Settings. Isso, por sua vez, pode ser substituído por “posição da câmera na cena”. Atualmente, também há uma “camada de substituição redundante” para o sistema de Perfil de Difusão, mas como estamos constantemente buscando melhorar a UX no HDRP, uma solução para esse problema já está em andamento.
  • Outras propriedades, que são “configurações globais puras”, não podem ser substituídas.
  • Por fim, algumas configurações de baixo nível que têm menos probabilidade de exigir configuração são especificadas no pacote de configuração HDRP. Essas configurações também são “configurações globais puras”. Alterá-los requer a recompilação do assembly C# e da estrutura do shader HDRP. É por isso que eles são colocados em um local diferente.

Níveis de qualidade

Com o Render Pipeline integrado, você pode definir vários níveis de qualidade na guia Configurações de qualidade . Para cada nível de qualidade, algumas configurações gráficas, como uso de textura anisotrópica, podem ser especificadas para que menos recursos de hardware sejam usados em plataformas de baixo custo.

Para projetos HDRP, especificamente, um ativo de pipeline de renderização HD de substituição pode ser selecionado para cada nível de qualidade. Isso oferece mais configurabilidade em comparação ao Render Pipeline integrado, já que o HD Render Pipeline Asset armazena vários parâmetros, como o número máximo de luzes direcionais, pontuaise de área na tela, o tamanho do LUT de gradação de corese o tamanho do atlas do cookie de luz, entre outros.

Algumas propriedades na guia Configurações de qualidade de um projeto do Pipeline de renderização integrado se aplicam somente ao Pipeline de renderização integrado. Em um projeto HDRP, essas configurações podem desaparecer de seus locais originais e reaparecer em outros lugares como “configurações de substituição”.

Em um projeto de Pipeline de renderização integrado, por exemplo, a guia Configurações de qualidade controla a propriedade Resolução de sombra . Em um projeto HDRP, no entanto, a seção Iluminação > Sombras de um ativo de pipeline de renderização HD controla a resolução dos mapas de sombras.

Captura de tela das propriedades nas configurações de qualidade em um projeto de pipeline de renderização integrado versus um projeto HDRP
Muitas propriedades nas configurações de qualidade são movidas para o HD Render Pipeline Asset

Configurações de câmera e moldura

Para renderizar sua cena em HDRP, você precisa adicionar câmeras, assim como no Pipeline de renderização integrado. O HDRP também usa um componente extra de Dados Adicionais de Câmera HD (anexado ao mesmo Objeto de Jogo) para armazenar parâmetros extras por câmera.

De fato, o HDRP oferece muito mais parâmetros por câmera para personalização. Existem várias configurações de Câmera Física e, se você marcar a propriedade Configurações de Quadro Personalizado de uma câmera, poderá decidir como a câmera desenha o quadro por meio do sistema Configurações de Quadro .

O sistema de configurações de quadro é uma pilha de substituições de propriedades da câmera. Você pode especificar valores padrão para configurações de quadro na guia Configurações padrão de HDRP. Além disso, cada câmera pode substituir as configurações padrão do quadro.

Os painéis Câmera dajanela Depuração do Render Pipeline ajudam a visualizar a pilha de substituição de Configurações de Quadro.

Usando o painel Câmera

O exemplo a seguir demonstra como o painel Câmera da janela Depuração do Render Pipeline funciona:

Há uma câmera chamada Câmera Principal na Cena. A câmera principal só desenha objetos estáticos. A guia Configurações padrão do HDRP permite desenhar vetores de movimento, enquanto a substituição das Configurações de quadro da Câmera principal desabilita essa função para melhorar o desempenho geral.

A pilha de substituição de vetores de movimento exibe o estado das configurações do OverriddenFrame à esquerda das configurações do DefaultFrame. Veja Figura 4, Destaque A:

As configurações de quadro substituem a pilha exibida pela janela de depuração do pipeline de renderização

Além disso, a janela Render Pipeline Debug mostra o estado das configurações do SanitizedFrame à esquerda das configurações do OverriddenFrame. A higienização garante que as configurações do quadro substituído permaneçam consistentes. Olhando para o mesmo exemplo, o movimento de objeto opaco e o movimento de objeto transparente não foram explicitamente desabilitados na substituição das configurações de quadro da câmera principal. Mas como o Motion Vector está desabilitado, esses recursos dependentes também são desativados pelo sistema de higienização, conforme mostrado na Figura 4, Destaque B.

Sistema de volume

Conforme discutido em nossapalestraUnite Now, o HDRP oferece suporte a um sistema de volume. Semelhante à pilha de pós-processamento no pipeline de renderização integrado, o sistema de volume HDRP controla o pós-processamento. Além disso, ele determina a maneira como o céu é renderizado, a intensidade da luz indiretae algumas configurações de sombra, entre outros recursos.

Simplificando, o sistema de volume HDRP é uma estrutura abstrata que pode ser usada para alterar as configurações de renderização conforme a câmera se move pela cena. Há um Valor Padrão codificado para cada propriedade de Volume. Para ver esses valores, use o painel Volume na janela Depuração do Render Pipeline. Veja a coluna mais à direita na Figura 5, onde a Intensidade Padrão de Distorção da Lente é 0.

Pilha de substituição de volume exibida pela janela de depuração do Render Pipeline

Essas propriedades padrão codificadas podem ser substituídas por substituições de propriedades na seção Componentes de volume da guia Configurações padrão de HDRP. Observe que essas substituições de propriedade também podem ser substituídas por Volumes na Cena.

Por outro lado, a Câmera capta uma mistura de valores de propriedade dos Volumes na Cena. Se não houver nenhuma, ele seleciona os valores de propriedade na guia Configurações padrão do HDRP. Caso contrário, ele pega os valores de propriedade padrão codificados.

Conforme mostrado na Figura 5, o painel Volume da janela de depuração do Render Pipeline é útil para visualizar a pilha de substituição de propriedades de Volume atual. É particularmente eficaz na depuração, pois exibe as propriedades do volume em uso no momento.

Malhas e superfícies

Assim como no Pipeline de renderização integrado, as geometrias a serem renderizadas geralmente são especificadas por renderizadores de malha ou renderizadores de malha com skin na cena. Os dados específicos do HDRP são armazenados predominantemente nos Materiaispara que eles possam usar os Renderizadores ou Gráficos de Shaderapropriados.

Iluminação

Assim como no Pipeline de renderização integrado, os projetos HDRP têm luzes com armazenamento de dados específico para HDRP para cada luz. Os componentes de dados de luz adicionais HD são anexados junto com os componentes de luz regulares.

Considere que há muitas configurações de iluminação que derivam de outros lugares além dos Objetos do Jogo com componentes de Luz. Aqui estão apenas alguns exemplos:

Componente de volume do controlador de iluminação indireta
Procurando por propriedades

Agora que fizemos um tour pela UX do HDRP, vamos analisar algumas propriedades gráficas menos familiares para seu próximo projeto HDRP. A Figura 7 ilustra uma abordagem possível, começando com as configurações gerais na parte superior e as configurações de substituição na parte inferior. Como você pode ver, o escopo se amplia à medida que avançamos de cima para baixo.

uma possível rotina para procurar propriedades gráficas em seu projeto HDRP
Dimensões das configurações gráficas

As configurações gráficas do HDRP devem se adaptar ao seguinte:

  • O nível de qualidade do programa, como a plataforma em que o programa é executado
  • A câmera ativa atual
  • Localização da câmera na cena
  • Os materiais das geometrias renderizadas
  • As luzes que afetam as geometrias renderizadas

Observe que as configurações de HDRP são particularmente ajustadas às dimensões das configurações.

Conflitos entre as dimensões das configurações

Frequentemente há conflitos entre as seguintes dimensões de configuração:

  • O nível de qualidade e a câmera ativa no momento podem tentar controlar o mesmo parâmetro gráfico. Por exemplo, se você quiser reduzir a contagem de amostragem de Dispersão de Subsuperfície em dispositivos de baixo custo, talvez você também queira reduzir a contagem de amostragem de Dispersão de Subsuperfície para câmeras que renderizam para Texturas de Renderização para efeitos de imagem em imagem.
  • O nível de qualidade e a localização da câmera na cena podem tentar controlar o mesmo parâmetro gráfico. Portanto, se você quiser reduzir a qualidade dos efeitos de pós-processamento em plataformas com potência de GPU limitada, deve estar ciente do fato de que alguns locais de cena já usam tempo de GPU significativo para iluminação complexa. Por isso, você deve se esforçar para diminuir a qualidade dos efeitos de pós-processamento nesses locais para recuperar algum orçamento de desempenho.
  • O nível de qualidade e as luzes na cena podem tentar controlar o mesmo parâmetro gráfico. Então, se você quiser reduzir a resolução do mapa de sombras em plataformas com RAM limitada, você deve ter em mente que provavelmente há muitos pequenos holofotes projetando sombras na cena que exigem mapas de sombras com resolução mais baixa.

Para resolver esses conflitos, o HD Render Pipeline Asset oferece suporte a configurações em camadas. Em vez de indicar apenas um valor para uma propriedade, vários valores podem ser atribuídos a vários níveis – Baixo, Médio, Alto e, em alguns casos, um nível Ultra.

valor especificado para cada nível
valor especificado para cada nível
valor especificado para cada nível

Para câmeras que renderizam o efeito picture-in-picture, você pode especificar uma camada para os volumes que controlam os efeitos de pós-processamento e os holofotes que solicitam os mapas de sombra:

Especifique níveis em vez de valores.
Especifique níveis em vez de valores.
Especifique níveis em vez de valores.

O HDRP pode então procurar a propriedade na camada apropriada no ativo do HD Render Pipeline Asset. É essa propriedade que será usada.

Claro, também é possível que câmeras, volumes e luzes ignorem o sistema de configurações em camadas e determinem diretamente seus comportamentos desejados.

Três dimensões de configurações sobrepostas

Vejamos outro exemplo em que as dimensões das configurações se sobrepõem.

Imagine que há alguns renderizadores de malha na cena usando um gráfico de sombreamento com animações de vértices complexas. Pode ser muito caro executar animação de vértices em dispositivos de baixo custo. Também é preciso considerar a renderização de câmera extra para a Textura de Renderização quando se trata de efeitos imagem em imagem, então você não precisa dessa câmera extra para renderizar com qualquer animação de vértice.

Neste caso, há três dimensões de configurações sobrepostas:

  • Materiais das geometrias na Cena
  • Nível de qualidade do programa
  • Câmeras na cena

Para resolver casos como esse, há uma palavra-chave especial de Qualidade de Material disponível no Shader Graph:

A palavra-chave Qualidade do material no Shader Graph

Diferentemente das palavras-chave regulares do Shader Graph, que são controladas pelos usuários por Material, esta é uma palavra-chave global, configurada internamente pelo HDRP. No HD Render Pipeline Asset, você pode controlar os Níveis de Qualidade do Material disponíveis, bem como o Nível de Qualidade do Material padrão.

Níveis de qualidade de material disponíveis e nível de qualidade de material padrão

Para cada câmera, você pode substituir as configurações padrão do quadro e especificar um nível de qualidade do material, substituindo o ativo do pipeline de renderização HD.

Especificando o nível de qualidade do material a partir da substituição das configurações de quadro de uma câmera

O HDRP tem uma abordagem sistemática para lidar com configurações de artistas. Afinal, manter uma ótima UX para artistas é a chave para inspirar conteúdo de alta qualidade.

Otimizando a configuração do HDRP

Ao iniciar um projeto HDRP com uma configuração simples, o projeto pode custar uma quantidade surpreendente de desempenho. Isso ocorre porque o HDRP determina muitos dos recursos usados por padrão. A melhor prática é controlar as configurações de HDRP para que você pague apenas pelo que pretende usar.

Para representar uma carga de trabalho de renderização minimalista, vamos criar uma cena de 225 cubos usando o material padrão, iluminados por um holofote, uma luz pontual, uma luz direcional e iluminação ambiente.

Exemplo de cena de 225 cubos

Como funciona essa configuração simples? Vamos construir um player autônomo com resolução de 2880x1620, no backend de script IL2CPP , com o VSync desativado. Executando o player em uma máquina Windows com GPU Intel i9-10980HK e GPU NVIDIA RTX2080, o Profiler mostra que o tempo médio de quadro é de 4,6 ms.

Observando a visualização da Linha do Tempo do Profiler, uma quantidade significativa de tempo é gasta no DXGI.WaitOnSwapChainmarker, indicando que ele está vinculado à GPU.

Tanto o Pipeline de renderização integrado quanto os testes HDRP são vinculados à GPU.

Fazer uma captura de GPU usando o Nsight Graphics mostra que isso ocorre porque o HDRP tem vários recursos ativos por padrão:

  • Há muitos efeitos visuais extras ativos, como SSAO, Subsurface Scattering, Dynamic Exposure, Motion Blur e Bloom.
  • Há várias passagens de Pirâmide de Cores e uma passagem Upsample Low-res Transparent em ação, todas elas com suporte para renderização transparente complexa.
O HDRP tem muitos efeitos e passes ativados por padrão.

Como você pode ver aqui, você pode controlar o ativo HDRP, substituir as configurações de quadroda câmera e adicionar substituições de volume, para que apenas os recursos mínimos absolutos sejam habilitados. Em outras palavras:

  • Decalques, transparência de baixa resolução, face posterior transparente, pré-passagem de profundidade, pós-passagem de profundidade, SSAO, SSR, sombras de contato, volumetria, dispersão de subsuperfície e distorções estão todos desabilitados no ativo HDRP.
  • Refração, Pós-processamento, Após pós-processamento, Transmissão, Sonda de reflexão, Sonda de reflexão planar e Pré-passagem de bloco grande estão todos desabilitados nas configurações de quadro da câmera.
  • O Volume substitui o modo de Exposição para Exposição Fixa.

Após a modificação, o resultado tem um tempo médio de quadro de apenas 2,45 ms, o que é significativo quando comparado à renderização da mesma cena em um Pipeline de renderização integrado.

Na prática, você não precisa desativar tantos recursos em um jogo real para a Câmera Principal, embora algumas câmeras extras exijam esse tratamento.

Se você estiver interessado em câmeras ainda mais baratas, o pacote de empilhamento de câmera HDRP UI 2021.2 permite empilhar várias interfaces de usuário de renderização de câmera por apenas uma fração do custo de uma câmera padrão.

Este exemplo não apenas destaca a extensão do controle que você tem sobre as características de desempenho do HDRP, mas também a importância de ajustar a configuração do seu projeto HDRP.

O que vem depois?
Imagem de bola com traçado de raio da marca Unity

Começa com luz: O guia definitivo para o High Definition Render Pipeline

O HDRP no Unity 2020 LTS traz ferramentas aprimoradas para criar iluminação evocativa e de alta qualidade em seus jogos. Obtenha este novo guia detalhado para aprender como aproveitar o poder da iluminação baseada em física em HDRP.

Obtenha o guia