Este é o primeiro de uma série de artigos que explica como os desenvolvedores e artistas técnicos podem configurar e usar o Pipeline de Renderização de Alta Definição (HDRP) no Unity para obter realismo gráfico de alta qualidade. O HDRP representa um salto tecnológico na renderização em tempo real do Unity para que você possa trabalhar com a luz exatamente como ela se comporta no mundo real.
Não deixe de ler os outros artigos de nossa série de instruções sobre iluminação de alta qualidade:
O HDRP amplia o sistema de iluminação existente do Unity com uma variedade de recursos para tornar a renderização de sua cena mais parecida com a iluminação do mundo real:
- Unidades físicas de luz e exposição: O HDRP usa intensidades e unidades de iluminação do mundo real. Combine as especificações de fontes de luz conhecidas e defina as exposições usando câmeras físicas.
- Iluminação avançada: Assuma o controle do posicionamento da luz com opções adicionais de formato para luzes de ponto e de área. Use as camadas de luz para limitar a influência das luzes em malhas específicas. Aplique efeitos em tempo real, como Screen Space Global Illumination (SSGI) e Screen Space Refraction.
- Paisagens celestiais: Crie céus de aparência natural com técnicas variadas. Use o sistema Physically Based Sky para simular processualmente a atmosfera planetária e adicione Volumetric Clouds, Cloud Layers ou aplique HDRIs para simular céus estáticos.
- Neblina: Adicione profundidade e dimensão às suas cenas com neblina. Ative a volumetria para integrar efeitos de neblina aos seus objetos em primeiro plano e renderizar feixes de luz cinematográficos. Mantenha o controle por luz da luz e das sombras volumétricas e use o componente Local Volumetric Fog para o controle preciso da densidade da névoa com uma textura de máscara 3D.
- Sistema de volume: O HDRP apresenta um sistema intuitivo que permite bloquear diferentes efeitos de iluminação e configurações com base na localização da câmera ou por prioridade. Coloque e misture Volumes para permitir um controle de nível especializado sobre cada metro quadrado da sua cena.
- Pós-processamento O pós-processamento do HDRP é controlado por uma série de substituições de volume sobre o sistema de volume existente. Adicione suavização de serrilhado, mapeamento de tons, gradação de cores, florescimento, profundidade de campo e uma série de outros efeitos.
- Sombras avançadas: O HDRP oferece controle artístico e de desempenho avançado sobre as sombras. Modifique a tonalidade, a filtragem, a resolução, o orçamento de memória e os modos de atualização. Acentue pequenos detalhes e adicione profundidade com as sombras de contato e as micro-sombras.
- Reflexões avançadas: As superfícies reflexivas podem usar várias técnicas para renderização. As sondas de reflexão oferecem uma abordagem tradicional de mapeamento de reflexão, sendo que as sondas de reflexão planar oferecem opções mais avançadas para superfícies planas. O Screen Space Reflection (SSR) adiciona uma técnica em tempo real usando o buffer de profundidade.
O Unity 2021 LTS e versões superiores incluem o pacote HDRP com a instalação para garantir que você esteja sempre executando o código gráfico verificado mais recente. Quando você instala a versão mais recente do Unity, ele também instala a versão correspondente do HDRP.
Versão do pacote HDRP Versão compatível com o Unity 13.x 2022.1 12.x 2021 LTS (usado neste guia)
A vinculação dos pacotes gráficos HDRP a versões específicas do Unity ajuda a manter a compatibilidade. No entanto, você também pode mudar para uma versão personalizada do HDRP substituindo o arquivo de manifesto.
Requisitos do sistema
Atualmente, o HRDP é compatível com as seguintes plataformas de destino:
- Windows e Windows Store, com DirectX 11 ou DirectX 12 e Shader Model 5.0
- Consoles modernos (no mínimo, Sony PlayStation 4 ou Microsoft Xbox One)
- MacOS (versão mínima 10.13) usando gráficos Metal
- Plataformas Linux e Windows com Vulkan
O HDRP só funciona em plataformas de console e desktop que suportam shaders de computação. Ele não oferece suporte a dispositivos OpenGL ou OpenGL ES. Consulte a documentação para obter mais detalhes sobre requisitos e compatibilidade.
Consulte Realidade virtual no pipeline de renderização de alta definição para saber mais sobre as plataformas e os dispositivos de RV compatíveis.
Para configurar um projeto HDRP, comece no Unity Hub:
Primeiro, crie um novo projeto e selecione o modelo vazio 3D (HDRP) ou a cena de amostra 3D (HDRP) nos modelos disponíveis listados (chamados de High Definition RP em versões mais antigas do Hub). Para importar o pacote HDRP com alguns exemplos de predefinições, escolha o modelo mais recente.
Se você criar seu projeto com o 3D Coretemplate, o Unity usará o Pipeline de Renderização Integrado mais antigo. Você pode migrar o projeto para o HDRP manualmente a partir do Package Manager(Window > Rendering > HDRP Wizard).
Encontre o pacote High Definition RP no Registro do Unity ou use o campo Pesquisar para localizá-lo e instalá-lo.
Se houver um conflito com as configurações atuais do projeto, o HDRP Render Pipeline Wizard será exibido para ajudá-lo a solucionar o problema (também encontrado em Window > Render Pipeline > HDRP Wizard). Observe que, no Unity 2021.2/HDRP 12, ele está localizado em Window > Rendering > HDRP Wizard.
Vá para Configuration Checking (Verificação de configuração ) e clique em Fix All (Corrigir tudo) ou clique em Fix for each issue ( Corrigir cada problema) para repará-los individualmente. Esta lista de verificação pode ajudá-lo a migrar de um projeto de pipeline de renderização não scriptável (SRP).
Quando o assistente for concluído, um prompt solicitará que você crie um novo Pipeline Asset. Esse é um arquivo em disco que conterá suas configurações específicas do pipeline. Selecione Create One (Criar um ) para adicionar um novo Render Pipeline Asset e atribuir o arquivo a ele.
Quando o HDRP estiver funcionando corretamente, verifique se todas as caixas de seleção na Verificação de configuração estão verdes. Você pode notar que o ambiente de fundo muda de cor.
Lembre-se de que a instalação manual a partir de um projeto em branco não importa automaticamente a cena de amostra 3D (HDRP). Use o modelo 3D Sample Scene se quiser acessar os ativos de exemplo mostrados neste guia.
A 3D Sample Scene (Cena de amostra 3D) do Unity Hub é um projeto modelo que ajuda você a começar a usar o HDRP e a iluminação baseada em física. Esse projeto leve tem menos de 100 megabytes e oferece um bom exemplo de funcionamento do HDRP que você pode carregar rapidamente para referência.
O ambiente pequeno e com vários cômodos demonstra três áreas distintas com diferentes configurações de iluminação. A luz direcional que representa o sol tem uma intensidade real de 100.000 lux, e cada local corrige a exposição da câmera para corresponder ao ambiente de iluminação.
Use as teclas WASD e o mouse para conduzir o controlador FPS pelo nível.
- A sala 1 é uma plataforma redonda iluminada pela luz do sol. Os decalques adicionam sujeira e poças de água ao piso de concreto.
- A sala 2 acrescenta feixes volumétricos de luz da claraboia, bem como materiais avançados para a árvore dentro da caixa de vidro.
- A sala 3 mostra a iluminação artificial interna e os materiais emissivos.
Para dar uma olhada mais de perto, confira esta postagem do blog do artista técnico da Unity, Pierre Yves Donzallaz, que descreve a cena de amostra HDRP 3D em mais detalhes.
Mais conteúdo de amostra do HDRP
Você pode achar alguns outros projetos úteis depois de explorar a cena de amostra 3D do HDRP.
Embora não tenha sido originalmente planejado para jogos, o projeto projeto Auto Showroom demonstra um veículo altamente detalhado com iluminação realista. Altere as luzes do palco, a pintura do carro, as texturas e o pano de fundo nesta demonstração interativa disponível no Unity Hub.
Enquanto isso, a demonstração da Demonstração da nave espacial apresenta o Visual Effect Graph, entre outros recursos do HDRP, em um ambiente de ficção científica. Você pode baixá-lo do repositório GitHub do Unity ou acessá-lo no Steam.
Se estiver usando o HDRP com VR, você apreciará o Laboratório Alquimista de RV. Este projeto apresenta efeitos interativos em um pequeno laboratório medieval.
Para saber como criar conteúdo cinematográfico ou filmes animados, instale nosso Cinematic Studiotemplate do Unity Hub. Este modelo ilustra como configurar e iluminar as tomadas de um curta-metragem engraçado chamado Mich-L, combinando renderização estilizada e fotorrealista.
Há algumas configurações essenciais em Configurações do projeto(Editar > Configurações do projeto), incluindo Gráficos, Configurações globais de HDRP e Qualidade.
Observe que as configurações padrão do HDRP agora são chamadas de configurações globais do HDRP no Unity 2021.2/HDRP 12 e superior.
Configurações gráficas
As Scriptable Render Pipeline Settings (Configurações do pipeline de renderização com script) na parte superior da imagem referem-se a um arquivo em disco que armazena todas as suas configurações de HDRP. Você pode ter vários desses ativos de pipeline por projeto.
Pense em cada um deles como um arquivo de configuração separado. Por exemplo, você pode usá-los para armazenar configurações especializadas para diferentes plataformas de destino (Xbox, PlayStation etc.), ou eles também podem representar diferentes níveis de qualidade visual que o jogador pode trocar em tempo de execução.
A cena de amostra 3D começa com vários ativos de pipeline na pasta Settings (Configurações): HDRPHighQuality, HDRPLowQuality e HDRPMediumQuality. Há também uma pasta HDRPDefaultResources que contém um DefaultHDRPAsset.
As Configurações de qualidade permitem que você associe um de seus ativos de pipeline a um nível de qualidade predefinido.
Selecione um nível de qualidade na parte superior para ativar um ativo de pipeline de renderização específico nas opções de renderização. Você pode personalizar os padrões ou criar níveis de qualidade adicionais, cada um deles associado a ativos de pipeline adicionais.
Um nível de qualidade representa um conjunto específico de recursos visuais ativos no pipeline. Por exemplo, você pode criar várias camadas para gráficos em seu aplicativo. Em tempo de execução, os jogadores podem escolher o nível de qualidade ativo, dependendo do hardware.
Vá para a subseção Quality/HDRP (Qualidade/HDRP ) para editar as configurações reais do pipeline. Caso contrário, vá para a visualização do projeto para selecionar o Pipeline Asset e editar suas configurações no Inspector.
Lembre-se de que a ativação de mais recursos no Pipeline Asset consumirá mais recursos. Em geral, otimize seu projeto para usar somente o que for realmente necessário para obter o efeito desejado. Se você não precisar de um determinado recurso, poderá desativá-lo para economizar recursos e melhorar o desempenho.
Aqui estão alguns recursos que você pode desativar se não precisar usá-los:
- No ativo HDRP: Decalques, transparência de baixa resolução, superfície de fundo transparente/prepasse e pós-passe de profundidade, SSAO, SSR, sombras de contato, volumetria, dispersão de subsuperfície e distorções
- Nas configurações de quadro da câmera (câmera principal), usada para efeitos integrados, como reflexos, ou câmeras adicionais usadas para efeitos personalizados: Refração, pós-processamento, após o pós-processamento, transmissão, sonda de reflexão, sonda de reflexão planar e Big Tile Prepass
Leia esta postagem do blog para se familiarizar com os recursos do HDRP para melhorar o desempenho.
Configurações globais do HDRP
A seção Configurações globais do HD RP, também conhecida como Configurações padrão do HDRP (antes da versão 12 do HDRP), determina a configuração de linha de base do seu projeto. Você pode substituir essas configurações na cena por meio dos componentes Local ou Global Volumecomponents, dependendo da posição da câmera.
As configurações globais são salvas em seu próprio Pipeline Asset separado, definido no campo superior, onde é possível configurar as opções padrão de renderização e pós-processamento.
Ao desenvolver seu projeto, talvez seja necessário retornar às configurações globais do HDRP para ativar ou desativar recursos específicos. Alguns recursos não serão renderizados a menos que a caixa de seleção correspondente nas Configurações globais esteja ativada.
Certifique-se de ativar apenas os recursos necessários, pois eles podem ter um impacto negativo no desempenho da renderização e no uso da memória. Observe que determinadas configurações aparecem nos Perfis de volume, enquanto outros recursos estão localizados nas Configurações de quadro (dependendo do uso).
Enquanto estiver se familiarizando com o conjunto de recursos do HDRP, use o campo Search (Pesquisa ) no canto superior direito em Project Settings (Configurações do projeto). Isso mostrará apenas painéis relevantes com termos de pesquisa destacados.
A ativação de um recurso nas configurações globais do HDRP não garante que ele possa ser renderizado por qualquer câmera, a qualquer momento. Você deve verificar se o ativo do pipeline de renderização, com seus níveis de qualidade especificados em Configurações de projetos > Qualidade, também é compatível com esse recurso. Por exemplo, para garantir que as câmeras possam renderizar Volumetric Clouds, é necessário alterná-las em HDRP Global Settings > Frame Settings > Camera > Lighting e no ativo Render Pipeline Asset, em Lighting > Volumetrics.
Se você não estiver limitado à CPU, a resolução pode afetar muito o desempenho. A resolução dinâmica reduz a resolução de renderização e dimensiona o resultado para a resolução da tela de saída. Os filtros que realizam esse upscale melhoraram muito no 2021 LTS, permitindo que você renderize com 70% ou menos de resolução com perda mínima de qualidade.
No Unity 2021 LTS, o HDRP oferece várias soluções com algumas das mais recentes tecnologias de Super Sampling:
- NVIDIA DLSS (Deep Learning Super Sampling) para GPUs que o suportam
- AMD FSR (FidelityX Super Resolution) em todas as plataformas
- TAA Upscale (Anti-Aliasing Temporal) em todas as plataformas
Você pode forçar o dimensionamento no HDRP Asset ou codificar sua própria lógica para ajustar a escala.
Para configurar a resolução dinâmica em seu projeto e obter algumas orientações sobre como escolher o melhor algoritmo para suas necessidades, consulte esta página da documentação.
Ao configurar as definições de HDRP no ativo de pipeline, você normalmente começará com o Lit Shader Mode em Rendering, onde poderá escolher entre Deferred, Forward ou Both. Eles representam caminhos de renderização que você pode selecionar, cada um com uma série específica de operações que informam como o pipeline renderizará e iluminará a geometria. Veja acima como personalizar seu caminho de renderização.
Para definir seu caminho de renderização padrão, vá para Lit Shader Mode e selecione Forward ou Deferred. O HDRP é flexível e também permite que você escolha ambos. Essa opção permite que você use um caminho de renderização para a maioria das renderizações e, em seguida, substitua-o para cada câmera. No entanto, ele consome mais memória da GPU, portanto, geralmente é melhor escolher Forward ou Deferred.
Para afetar todas as câmeras por padrão, vá para HDRP Default Settings e localize Default Frame Settings. Seu caminho de renderização pode ser aplicado a câmeras, Baked Reflection ou Custom Reflection e Real-time Reflection. No grupo Rendering (Renderização), defina o caminho de renderização no Lit Shader Mode (Modo de sombreamento iluminado).
Para afetar uma câmera específica, verifique as configurações de quadro personalizadas. Em seguida, no grupo Rendering (Renderização), substitua e altere o caminho de renderização do Lit Shader Mode (Modo de sombreamento iluminado).
Na renderização Forward, a placa gráfica divide a geometria da tela em vértices. Esses vértices são divididos em fragmentos, ou pixels, que são renderizados na tela e criam a imagem final.
Cada objeto passa, um de cada vez, para a API de gráficos. A renderização progressiva tem um custo para cada luz. Quanto mais luzes houver em sua cena, mais demorada será a renderização.
A renderização direta desenha luzes em passagens separadas. Se você tiver várias luzes atingindo o mesmo GameObject, isso poderá criar um excesso de desenho significativo e tornar as coisas mais lentas quando houver muitas luzes e objetos presentes.
Diferentemente da renderização Forward tradicional, o HDRP acrescenta novos recursos, como a seleção e a renderização de várias luzes juntas em uma única passagem por material de objeto. Mas ainda é um processo relativamente caro. Se o desempenho for um problema, talvez você queira usar o Deferred shading.
O HDRP também pode aproveitar o sombreamento diferido, em que a iluminação não é calculada por objeto. Em vez disso, o Deferred shading adia a renderização pesada para um estágio posterior e usa duas passagens.
Durante a primeira passagem, ou a passagem da geometria do G-buffer, o Unity renderiza os GameObjects. Essa passagem recupera vários tipos de propriedades geométricas e as armazena em um conjunto de texturas (por exemplo, cores difusas e especulares, suavidade da superfície, oclusão, normais e assim por diante).
Na segunda passagem, ou passagem de iluminação, o Unity renderiza a iluminação da cena após a conclusão do G-buffer, adiando assim o sombreamento. O caminho de sombreamento diferido itera sobre cada pixel e calcula as informações de iluminação com base no buffer, em vez de nos objetos individuais.
Para obter mais informações sobre as diferenças técnicas entre os caminhos de renderização, consulte Renderização direta e diferida na documentação do HDRP.