O que você está procurando?
Engine & platform

O pipeline de renderização de alta definição: Guia de primeiros passos para artistas

KIERAN COLENUTT Anonymous
Sep 24, 2018|15 Min
O pipeline de renderização de alta definição: Guia de primeiros passos para artistas
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.

Nota do editor: As informações neste post estão desatualizadas. Para versões mais recentes do Unity, recomendamosO guia definitivo para iluminação no e-book High Definition Render Pipeline (HDRP) , atualizado pela última vez em 2022.

Neste post, exploraremos a criação de uma cena a ser renderizada usando o High Definition Render Pipeline da Unity, também conhecido como HDRP. Mostraremos como iniciar um novo projeto HDRP, atualizar os materiais de quaisquer ativos importados e aprenderemos como usar os novos parâmetros no Inspetor de materiais para criar um material de vidro realista. Também destacaremos as diferenças entre o pipeline integrado e o HDRP.

Na versão 2018.1, a Unity introduziu um novo sistema chamado Scriptable Render Pipeline (SRP), permitindo que você crie seu próprio pipeline de renderização com base nas necessidades do seu projeto. O SRP inclui dois pipelines prontos, chamados Lightweight (LWRP) e High Definition (HDRP). O HDRP visa alta fidelidade visual e é adequado para plataformas de PC ou console.

Configurando HDRP

Caso ainda não o tenha feito, recomendamos que você instale o Unity Hub. Ele ajuda você a controlar seus projetos, bem como suas versões instaladas do Unity. Ao criar um novo projeto no Unity Hub, em Modelo, você verá uma opção para selecionar RP de alta definição (visualização).

Eixo

Como o HDRP ainda está em fase de pré-visualização, não é uma boa ideia mudar para HDRP no meio da produção. No entanto, você pode tentar atualizar seu projeto para HDRP acessando o novo Gerenciador de Pacotes e instalando-o. Esteja ciente de que, depois de atualizar seu projeto para HDRP, você não poderá reverter. Certifique-se de criar um backup do projeto antes de atualizar.

Como mencionado acima, o HDRP ainda está em fase de pré-visualização, portanto está sujeito a alterações no futuro. Para atualizar um projeto do pipeline de renderização integrado para HDRP, navegue até Janela > Gerenciador de Pacotes. No Gerenciador de Pacotes, você pode ver todos os pacotes atuais instalados no seu projeto Unity. Em Todos, localize “HD Render Pipeline” (Render-pipelines.high) e instale a versão mais recente. A instalação do pipeline também integrará o núcleo do Render-pipeline, o Shader Graph e os pacotes de pós-processamento.

Menu da janela
gerenciador de pacotes

Após instalar o pacote HDRP, você precisa navegar até Editar > Configurações do projeto > Gráficos para atribuir o ativo Scriptable Render Pipeline para HDRP.

configurações

O Inspetor exibe o Render Pipeline Asset instalado no momento no campo “Scriptable Render Pipeline Settings”. O ativo do pipeline de renderização HDRP será atribuído se você estiver instalando o pipeline do Unity Hub. Se você estiver atualizando seu projeto a partir do pipeline integrado, este campo será definido como “Nenhum”. Podemos atribuir um ativo de pipeline clicando no botão ao lado da caixa Seleção de ativos ou arrastando o ativo da pasta Configurações.

O HDRP usa a API C# Scriptable Render Pipeline. Com isso, vem uma série de preferências diferentes que você pode definir para personalizar a renderização do seu projeto. O fato de suas configurações de renderização serem armazenadas em um Render Pipeline Asset significa que você pode alterar suas configurações de renderização atribuindo um novo Render Pipeline Asset a este campo.

Para criar um novo Render Pipeline Asset, clique com o botão direito na pasta de configurações e escolha Criar > Renderização > High Definition Render Pipeline Asset.

itens do menu
Atualizando materiais

Ao usar um Projeto HDRP, qualquer Material Unity integrado, Padrão ou Não Iluminado não será renderizado e, portanto, aparecerá usando o shader rosa não iluminado padrão que o Unity exibe quando um shader é quebrado. Isso pode ocorrer ao tentar atualizar um projeto existente ou ao integrar conteúdo legado, como ativos do Asset Store que não usam shaders compatíveis com HDRP. Para ser renderizado pelo HDRP, o Material precisa ser atualizado.

O Unity 2018.1 está equipado com uma ferramenta de conversão de materiais integrada. Ele pega as propriedades do Material do Shader Padrão do Unity e as converte em novos Materiais HDRP. Vale ressaltar que isso não funciona para shaders personalizados, que precisam ser reescritos para HDRP.

Para acessar a Ferramenta de Conversão de Material, navegue até Editar > Pipeline de Renderização.

itens do menu

O Unity oferece diversas opções de atualização neste menu. Vamos nos concentrar nos dois primeiros aqui. “Atualizar materiais do projeto para materiais de alta definição” atualizará todos os materiais atualizáveis no projeto. “Atualizar materiais selecionados para materiais de alta definição” permite que você selecione quais materiais deseja atualizar na janela Projeto.

É neste ponto que recomendamos que você crie um backup separado do seu projeto.

Depois que os materiais forem convertidos, o shader do material agora será chamado de “HDRenderPipeline/Lit”. Agora você tem acesso completo aos novos recursos do shader iluminado HDRP no Inspetor de Materiais.

Além disso, dentro das opções de Shader de Materiais, em “HDRenderPipeline”, você pode selecionar e aplicar uma variedade de tipos de shader, como LitTesseleation ou Unlit, para citar alguns.

seleção de shader

As seções subsequentes fornecem uma introdução a alguns dos novos recursos adicionados como parte do HDRP. Usamos alguns desses novos recursos para melhorar a aparência do nosso ambiente de cozinha.

Iluminação HDRP

A iluminação em HDRP usa um sistema chamado Unidades Físicas de Luz (PLU). PLU significa que essas unidades são baseadas em valores mensuráveis da vida real, como o que você veria ao procurar lâmpadas na loja ou medir a luz com um fotômetro fotográfico.

Usamos LUX para Luzes Direcionais porque, no mundo real, esses são os valores usados para medir a intensidade da luz solar, o que pode ser feito facilmente com um medidor LUX. Outras fontes de luz do mundo real usam lúmens para medir a intensidade, o que pode ser usado como referência para os emissores de luz menores em nossa cena.

Luzes de linha em tempo real

A luz Realtime Line Light mantém uma saída de luz constante e contínua, emanando de uma linha de comprimento definido pelo usuário. Esses tipos de luzes são comumente usados em filmes de animação para obter iluminação realista. Eles adicionam uma qualidade cinematográfica à iluminação das suas cenas. Luzes de linha podem ser criadas selecionando o tipo de forma no Inspetor depois que uma luz for colocada em uma cena.

Muitas cozinhas modernas usam um estilo de luz de linha para iluminar o ambiente de trabalho da cozinha, então a luz de linha aqui não só produz uma iluminação realista, mas é precisa em relação ao que seria encontrado em uma cozinha real.

Além disso, o Light Inspector pode determinar a cor de uma luz emitida através da temperatura. Variando em uma escala de 1000 a 20000 kelvins, quanto menor o valor, menos calor é emitido e a luz parece mais vermelha. Em contraste, à medida que você aumenta o valor da temperatura, ela parece mais azul.

Da mesma forma, o tipo de forma Retângulo emite uma saída de luz com base nos valores personalizados dos eixos X e Y.

Observação: Atualmente, sombras não são suportadas para os tipos de forma de luz Linha ou Retângulo.

temperatura de cor
Explorador de Luz

Como dica adicional, usar o Light Explorer permite que você gerencie facilmente qualquer tipo de luz dentro do seu projeto. Você pode modificar valores, alterar o tipo de Luzes e até mesmo manipular tipos de Sombras sem precisar localizá-las na cena. Sondas de reflexão, sondas de luz e emissivas estáticas também podem ser gerenciadas por meio desta janela.

Para acessar o Light Explorer, navegue até Janela > Geral > Light Explorer:

explorador da luz
Configurações de volume

As configurações de volume permitem que você altere visualmente suas preferências de ambiente, ajustando elementos como seu ambiente visual, céu procedural e configurações de sombra HD. Isso também permite que você crie perfis de volume personalizados e alterne entre eles.

As configurações de volume são gerenciadas criando um GameObject e adicionando o componente Volume. Este fluxo de trabalho é semelhante ao usado para criar um volume para o Post-Processing Stack v2. No HDRP, haverá um presente na hierarquia por padrão.

Configurações de sombra HD

As configurações de sombra HD permitem que você determine a qualidade geral das sombras em um volume. O campo Distância Máxima calcula a qualidade das Sombras com base na distância da Câmera até a Sombra.

qualidade da sombra

Ambiente Visual

Você tem dois menus suspensos no Ambiente Visual.

O Sky Type oferece três opções: Céu procedural, céu gradiente e céu HDRI.

ambiente visual tipo céu

O céu procedural produz um ambiente com base nos valores que você escolher dentro do componente céu procedural.

O HDRI Sky constrói um mapa de ambiente com base em um conjunto de imagens dentro do Componente. Por padrão, o componente HDRISky não é atribuído às configurações de volume. Ao clicar em “Adicionar substituições de componentes...” na parte inferior da guia Inspetor e selecionar “HDRI Sky”, o componente ficará disponível.

Agora você pode atribuir um HDRI Sky Cubemap e alterar os valores para obter uma iluminação precisa e real.

O Unity HDRI Pack está disponível gratuitamente na Asset Store da Unity Technologies e fornece 7 Cubemaps HDR pré-convertidos (resolução 1024x2014) prontos para uso em seu projeto.

volume de pós-processamento

Para esta cena, “TreasureIslandWhiteBalancedNoSun” do Unity HDRI Pack funcionou melhor, pois forneceu luz suficiente para iluminar a cozinha, mas não apagou-a. É claro que, com os modificadores fornecidos no Componente, como Exposição e Multiplicador, o brilho pode ser alterado e ajustado. É importante escolher um mapa HDRI que complemente sua cena.

Por fim, o Tipo de Névoa oferece 3 opções: Linear, Exponencial e Volumétrica. Para determinar os valores, repita a etapa anterior do componente (“Adicionar substituição de componente”, aplique o componente relevante ao Inspetor)

Inspetor de materiais

Antes da introdução do HDRP, criar um material de vidro não era uma tarefa fácil. Não havia uma maneira simples de construir um material de vidro realista sem uma extensa pesquisa e programação de shaders ou recorrer à Asset Store para usar um shader personalizado.

Agora, com os novos recursos do HDRP Lit Shader disponíveis no Material Inspector, você pode criar vidro que não só tem uma ótima aparência, mas também refrata a luz com base em configurações definíveis.

Para começar, queremos criar um novo HDRenderPipeline/Lit Material. Este é o shader de material padrão aplicado a qualquer novo material criado no HDRP.

Para criar um novo Material, clique com o botão direito do mouse na pasta preferida e escolha Criar -> Material. O Inspetor de Materiais agora mostrará o novíssimo Inspetor de Materiais HDRP. Nele, há algumas mudanças perceptíveis. Vamos revisá-los.

Opções de superfície

Aqui você pode começar a determinar a superfície do material.

Tipo de superfície

Há duas opções para o tipo de superfície: Opaca ou Transparente. Opaco simula um material completamente sólido, sem penetração de luz.

Em contraste, Transparent é uma mistura alfa e simula uma superfície translúcida; embora útil, esse tipo de superfície é mais caro para renderizar.

Um recurso importante do HDRP é a iluminação unificada em objetos transparentes e opacos.

Selecione Transparente para este exemplo. Isso fornecerá acesso aos parâmetros discutidos mais adiante.

Dupla face

Essa preferência permite que o Material seja renderizado em ambos os lados. Por padrão, o Modo Normal é definido como Espelhar, mas no menu suspenso, podemos selecionar Inverter ou Nenhum.

Se a opção Dupla face não estiver ativa, o Unity renderizará apenas os lados do material voltados para a direção da câmera.

Tipo de material

As opções de tipo de material criam novos comportamentos que permitem materiais ainda mais realistas. Cada uma dessas opções fornece parâmetros adicionais dentro do Inspetor quando ativada.

Padrão

Usa os parâmetros básicos e é o tipo de material padrão.

Dispersão Subsuperficial (SSS)

A dispersão de subsuperfície funciona simulando como a luz interage e penetra em objetos translúcidos, como plantas. Também é usado na renderização de pele. Se você já iluminou a ponta do seu dedo, deve ter visto que a luz muda de cor à medida que é espalhada sob a superfície. Isso pode ser replicado usando este Tipo de Superfície.

Uma vez ativado, um parâmetro de Transmissão aparecerá. Com isso, você pode determinar a translucidez de um objeto usando um Mapa de Espessura.

Ambos os recursos podem ser manipulados usando Perfis de Difusão. Dois perfis padrão chamados Pele e Folhagem são fornecidos e podem ser usados como base para esses tipos de materiais SSS. Mais 13 perfis podem ser personalizados usando as configurações de perfil mostradas abaixo.

perfis de luz

Para uma breve demonstração em vídeo, confira minha dica do Unity sobre SSS:

Sempre evitei a dispersão de subsuperfície (SSS), pois sempre pareceu complicada!! ?



Com o HD RP, o SSS tem 2 perfis predefinidos, além de outros 13 perfis que podem ser personalizados e adicionar profundidade adicional a qualquer material.



Veja abaixo uma demonstração simples em vídeo ?#unitytips pic.twitter.com/NM4Z03l1U1



— Kieran Colenutt Unity (@kierancolenutt) 28 de agosto de 2018

Anisotropy

A anisotropia simula um material de superfície que muda suas propriedades dependendo de sua orientação, por exemplo, imitando a aparência do alumínio escovado. Em vez de criar uma superfície metálica com reflexos limpos e organizados, usando mapas de tangente e anisotropia, você pode alterar a intensidade dos reflexos, bem como a orientação.

Iridescência

Fornece os parâmetros para criar um efeito iridescente na superfície do material, semelhante à forma como a luz aparece em um derramamento de óleo. A saída é determinada por um Mapa de Iridescência e um Mapa de Espessura da Camada de Iridescência.

Cor especular

Uma cor especular é usada para controlar a cor e a intensidade dos reflexos especulares no material. Isso torna possível ter reflexões especulares de uma cor diferente da reflexão difusa.

Translúcido

A opção translúcida pode ser extremamente eficaz na simulação da interação da luz na vegetação. Este tipo de material usa perfis, semelhantes ao SSS, exceto que neste caso o mapa de espessura é usado para determinar como a luz é transmitida.

Habilitar decalques

Este parâmetro útil permite facilmente que o Material responda a um Material de decalque, o que funciona para ambos os fluxos de trabalho, seja por meio do Projetor de Decalque ou como um componente de objeto.

decalques
Entradas

Cor base + opacidade

Neste ponto, o Material de Vidro ainda parecerá opaco, porque você precisa alterar o valor da opacidade nas Entradas para permitir que a luz penetre.

Para fazer isso, abra a janela de amostra de cores ao lado de “Cor base + Opacidade”.

Os canais vermelho, verde e azul são usados como cor base e um canal alfa determina a opacidade. A opacidade do Material atual é determinada de um valor de 0 a 255, 255 é totalmente opaco e 0 é totalmente transparente. Neste exemplo, queremos definir a cor do Material como verde claro.

Queremos definir a Opacidade como 30, pois isso alterará o Material para que ele fique quase transparente.

Abaixo estão os valores de cor que usei:

Valores RGB:

R - 201

G - 255

B - 211

Valor Hexadecimal - C9FFD3

O importante a lembrar é que mesmo se você definir o alfa do Material para um valor numérico baixo, mas manter o tipo de superfície definido como Opaco, o Material não será transparente e manterá sua opacidade.

tipo de superfície

Metálico e Suavidade

Essas opções podem ser alteradas em um controle deslizante com valores de 0 a 1. Tanto os valores quanto as saídas são gerados a partir dos Mapas de Máscara Alfa e Canal Vermelho abaixo no Inspetor. Quando um Mapa de Máscara é atribuído, os controles deslizantes são usados posteriormente para remapear os valores Mínimo e Máximo.

Mapa Normal

Com um Mapa Normal aplicado, a intensidade pode ser modificada ao ajustar o controle deslizante de parâmetros dentro de um intervalo de 0 a 2

Você pode adicionar mais detalhes e profundidade ao seu material de vidro aplicando uma Normal, como indentação ou arranhões.

Mapa de Máscaras

No HDRP, um Mapa de Máscara é uma combinação de:

Canal Vermelho - Metálico variando de 0 a 1
Canal Verde - Oclusão de Ambiente
Canal Azul - Máscara de Mapa de Detalhes
Canal Alfa - Suavidade

Por padrão, as texturas importadas para o Unity usam sRGB. No Inspetor de textura, desmarcar “sRGB (textura de cor)” converte a textura para um formato linear. Como o Mapa de Máscara usa Matemática para gerar uma saída, essa textura deve ser linear.

alfa

Casaco Máscara

A Coat Mask simula um efeito de camada transparente no material, aumentando a suavidade junto com ele. Por padrão, o valor da Máscara de Revestimento é definido como 0, mas o controle deslizante pode ajustar o parâmetro dentro de um intervalo de 0 a 1. A máscara de verniz transparente pode ser usada para imitar materiais como tinta automotiva ou plásticos.

Entradas de detalhes

O Mapa de Detalhes é um novo mapa introduzido no HDRP e uma fusão de mapas adicionais que adicionam detalhes minuciosos ao Material. O Mapa de Detalhes utiliza os seguintes canais:

Vermelho: Escala de cinza usando mesclagem de sobreposição
Verde: Mapa Normal Canal Y
Azul: Suavidade
Alpha: Canal Normal Map X

Entradas de Transparência

Ao modificar as propriedades de entrada de transparência do shader, você pode começar a determinar o efeito transparente geral. As entradas de transparência só ficam disponíveis quando o tipo de superfície é definido como transparente.

Para este exemplo, a seção a seguir permitirá que você crie a refração para o material de vidro.

Modelo de refração

O Modelo de Refração define como a curvatura da luz através do Material será simulada. Há duas opções: Plano e Esfera.

A escolha do modelo de refração depende do formato e do tamanho do objeto ao qual o material está sendo aplicado:

Esfera: Para objetos preenchidos, use um modelo de esfera com uma espessura de refração comparável ao tamanho do objeto no qual o material é colocado.

Avião: Para um objeto vazio, use um modo Plano com uma pequena espessura de refração.

As opções Índice de Refração e Espessura de Refração permitem controlar o comportamento do modelo de refração.

Índice de refração

Variando em uma escala de 1 a 2,5, o ajuste do parâmetro fornecerá uma intensidade de refração diferente. Por padrão, o valor é definido como 1, o que não gera refração.

Entre 1.1 e 1.2 é onde a refração inverte e o ambiente visto através do Material aparece de cabeça para baixo.

sombreador de vidro

Agora que a base do material de vidro foi feita, ajustes personalizados podem ser adicionados para montar um material que funcione melhor para você e para o objeto ao qual o material está sendo aplicado.

Conclusão

Espero que esta visão geral tenha ajudado você a entender melhor como aplicar o HDRP na prática em seus projetos! Embora ainda esteja em uma versão experimental, temos alguma documentação preliminar no GitHub que você também pode ler para começar.

O HDRP é uma ferramenta nova e empolgante para criar projetos e mal posso esperar para ver o que você fará com ela. Sinta-se à vontade para entrar em contato comigo no Twitter @kierancolenutt para qualquer dúvida ou consulta. Quero ouvir sobre suas experiências, me conte como está indo!

Para acompanhar e discutir o desenvolvimento do HDRP e do SRP em geral, junte-se ao nosso fórum de gráficos experimentais.