Novas maneiras de aplicar a iluminação global em seus mundos no Unity 6

Estamos entusiasmados em compartilhar mais detalhes sobre os novos recursos de iluminação que chegarão ao Unity 6 ainda este ano.
Com a nova e robusta arquitetura de light baking e a abordagem inovadora para a criação de ambientes iluminados por sonda de luz usando Adaptive Probe Volumes (APV), você desfrutará de um processo de criação de luz mais simplificado. Isso aprimorará significativamente seus recursos visuais e garantirá alto desempenho no tempo de execução.
Se você já trabalhou com dados de iluminação pré-computados, sabe como o processo pode ser tedioso. O processo de pré-computação para Lightmaps pode levar muito tempo; os UVs do Lightmap precisam ser criados, as sondas precisam ser colocadas para que os objetos dinâmicos sejam iluminados corretamente, e você precisará lidar com texturas grandes que podem sobrecarregar a memória de tempo de execução dos aplicativos.
No Unity 6, adicionamos uma nova maneira de criar ambientes iluminados por sonda de luz de maior qualidade por meio do Adaptive Probe Volumes (APV) e fornecemos melhorias fundamentais ao backend de light baking para maior estabilidade.
Um volume de sonda adaptativa é um grupo de sondas de luz que o Unity posiciona automaticamente com base na densidade da geometria em sua cena, para criar uma iluminação indireta.

Devido à sua natureza adaptativa, o APV gerará sondas mais densamente posicionadas em áreas com mais geometria e menos sondas em áreas com objetos menos densamente posicionados, como o plano de fundo de uma cena.
O Adaptive Probe Volumes também oferece um conjunto completo de recursos poderosos para a criação de ambientes com iluminação de alta qualidade.
- Oferece fluxos de trabalho mais simples para fluxos de trabalho de colocação de sonda e iteração mais rápida para iluminação difusa indireta baseada em sonda de luz.
- A iluminação por pixel do APV oferece uma qualidade significativamente mais alta do que os grupos de sondas de luz e proporciona melhor direcionalidade em comparação com os mapas de luz, resultando em uma excelente qualidade geral de iluminação.
- Integra-se perfeitamente com a atmosfera, fazendo com que efeitos como Volumetric Fog em HDRP e partículas VFX Graph em URP e HDRP sejam lindamente iluminados por iluminação indireta.
- Permite uma transição de iluminação visualmente impressionante por meio do Sky Occlusion e dos Lighting Scenarios, adequados para alcançar situações de hora do dia e de luzes acesas/apagadas.
- Oferece mais controle sobre as otimizações para o desempenho do tempo de execução, com base no uso do pipeline de renderização e do hardware de destino.
- Executa um conjunto de recursos de streaming, permitindo que os dados da sonda de luz sejam transmitidos do disco para a CPU e da CPU para a GPU.
- Fornece um poderoso conjunto de ferramentas para reduzir o vazamento de luz.

O projeto de amostra URP 3D usa atualmente os recursos mais recentes do 2022 LTS .
Para fins de demonstração nesta postagem do blog, atualizamos as cenas de amostra URP 3D do 2022 LTS para o Unity 6 Preview e o recurso Adaptive Probe Volumes.

O APV é um sistema baseado em volume que automatiza a colocação de sondas em vez de colocá-las manualmente.
A guia de configurações gerais do APV permite controlar parâmetros como Mine Max Probe Spacing para conduzir a criação de vários níveis de subdivisão com base na geometria circundante. Por padrão, as áreas densas usarão a resolução mais alta, enquanto as áreas com menos geometria usarão níveis de densidade mais baixos. Esse comportamento automático e adaptativo garante a alocação eficiente de recursos, concentrando-se nas áreas onde eles são mais necessários.

Para gerar sondas automaticamente, você pode criar um Adaptive Probe Volume. Enquanto trabalha, você pode ver atualizações ao vivo, o que lhe permite visualizar a colocação da sonda sem assar. Essas atualizações se baseiam em tijolos e nos níveis de subdivisão que você definiu anteriormente, que se ajustam de acordo com a proximidade da geometria próxima.

O Generate Lighting calcula previamente todos os dados de iluminação, inclusive as sondas de luz, que podem ser visualizadas em sua cena. Conforme visualizado usando tijolos, você pode ver os vários níveis de subdivisão que foram aplicados ao colocar as sondas.

Se você já trabalhou com dados de sonda de luz, deve estar ciente dos desafios comuns com vazamento de luz. Ao desenvolver o APV, adicionamos uma caixa de ferramentas completa para ajudar a resolver problemas de vazamento de luz, como Virtual Offset, Dilation, Probe Adjustment Volumes, Rendering Layers e Light Leaking Prevention Modes "Performance" e "Quality".
Aqui está um exemplo. Usando as exibições de depuração de iluminação, podemos observar um caso de uso problemático para vazamento de luz. Nessa situação, a luz brilhante do exterior é visível através das paredes e do chão do edifício. A parte externa apresenta o problema oposto, com a iluminação escura vazando do interior. Isso provavelmente se deve à baixa resolução (1 metro entre as sondas) e às paredes finas. Vamos explorar como podemos resolver isso.

Para investigar esse problema, a opção Debug Probe Samplingpermite que você exiba cada uma das sondas amostradas juntamente com seus pesos relevantes. Em nosso caso, podemos ver que o resultado é interpolado entre as sondas claras do lado de fora e as escuras do lado de dentro. Idealmente, o interior da tenda deve coletar amostras apenas das sondas internas.

Rendering Layers for APV(lançado em 6000.1f.1) permite que você crie até quatro máscaras diferentes e restrinja a amostragem a essas máscaras específicas para determinados objetos. Isso pode ser incrivelmente útil para evitar que objetos internos coletem amostras de sondas externas, ou vice-versa.
Ao gerar iluminação, o sistema atribuirá automaticamente camadas às sondas durante o processo de cozimento com base nos objetos próximos, eliminando a necessidade de atribuir camadas manualmente por sonda. Feito isso, você podeGenerate Lighting e observar que o vazamento é reduzido na tenda, graças à criação manual de máscaras internas e externas separadas.

Para ter ainda mais controle sobre a prevenção de vazamento de luz, você pode aproveitar os modos de redução de vazamento "Performance" e "Quality" do Unity.
O Modo de desempenho aborda a redução de vazamentos, deslocando o local de amostragem para longe das sondas inválidas. Em geral, isso funciona bem em cenários simples, nos quais é possível identificar um local de amostragem adequado para todas as sondas válidas e, ao mesmo tempo, evitar as inválidas. No entanto, dependendo da configuração da sonda, esse local de amostragem ideal pode não estar disponível. Isso resulta em amostragem de sondas inválidas e possíveis vazamentos.
O Modo de qualidade (lançado na versão 6000.0.3f1), agora ativado por padrão, emprega até três tentativas de amostragem para ajudar a garantir que somente as sondas válidas sejam utilizadas. Esse modo pode introduzir uma pequena sobrecarga no desempenho do tempo de execução, o que pode ser especialmente perceptível em plataformas de baixo custo.
Você pode combinar a redução de vazamento e as camadas de renderização para evitar ainda mais o vazamento de luz. Esse modo ajuda a garantir que as sondas inválidas, seja por problemas de validade ou por estarem em uma camada diferente, não sejam amostradas.

Além disso, aprimoramos os vários níveis de subdivisão, reduzindo as costuras potencialmente visíveis entre os diferentes níveis (lançados na versão 6000.0.4f1). Isso é feito automaticamente, substituindo os valores das sondas de fronteira localizadas entre dois níveis por valores pré-interpolados. Como esse processo ocorre em tempo de preparação, não há custo de desempenho associado a ele em tempo de execução.

Com o APV, você pode obter uma transição de iluminação visualmente impressionante por meio do Sky Occlusion e dos Lighting Scenarios, adequados para situações de hora do dia e de luzes acesas/apagadas.
A seguir, você encontrará dois exemplos de transições de iluminação, primeiro por meio de Lighting Scenarios com APV na cena Oasis do projeto URP 3D Sample e, depois, por meio de Sky Occlusion com APV na cena Garden.
O APV facilita vários cenários de iluminação ao permitir a alternância ou a combinação entre dados de iluminação cozidos. Esse recurso é particularmente útil para simular horários do dia ou alternar entre luzes acesas e apagadas dentro da mesma cena ou Baking Set.
Os cenários de iluminação gerenciam apenas os dados da sonda de luz APV cozida; outros elementos precisam ser manipulados manualmente. Para dar um exemplo na cena do Oasis, criamos um script para atualizar o céu, as luzes, os parâmetros de neblina e as sondas de reflexão. Os cenários de APV baked podem ser gerenciados em tempo de execução usando a API ProbeReferenceVolume; um exemplo pode ser encontrado na documentação.


A oclusão do céu oferece uma alternativa aos cenários de iluminação para gerenciar as transições de iluminação na cena. Isso envolve uma configuração mais simples com apenas um único cozimento, em que não são necessários vários cenários. Em vez disso, a oclusão do céu lida exclusivamente com a iluminação do céu e, portanto, não se estende ao gerenciamento da iluminação indireta para luzes direcionais ou pontuais.

A oclusão do céu usa dados adicionais de baking para gerenciar a iluminação do céu de forma diferente, o que é separado do baking de céu padrão do APV. Esses dados armazenam a quantidade de luz do céu que cada área da cena deve receber, permitindo ajustes em tempo de execução na cor e na intensidade da iluminação do céu. Ao utilizar uma sonda dinâmica de ambiente em tempo de execução juntamente com esses dados de oclusão estáticos e preparados, ele fornece uma boa aproximação da iluminação do céu, permitindo ajustes dinâmicos na iluminação da cena.
A oclusão do céu é suportada tanto no URP quanto no HDRP. No HDRP, a sonda de ambiente é atualizada automaticamente a partir do HDRP Physical Sky. No URP, entretanto, ao usar o modo Skybox, a sonda de ambiente não pode ser atualizada automaticamente em tempo real à medida que o céu muda. Em vez disso, é necessário animar manualmente a cor usando o modo Gradient ou Color para corresponder aos visuais animados do céu, pois o Unity não se ajustará automaticamente à mudança de cor do céu.
Usando a cena Garden como exemplo, o Gradient Mode (Modo gradiente) nas configurações Environment (Ambiente) permite a animação manual da cor da sonda ambiente. Quando combinada com dados de oclusão, essa configuração pode criar uma aproximação atraente para animar a iluminação difusa do céu, adequada para representar as mudanças nas horas do dia. Isso utiliza um único bake sem vários cenários de iluminação e pode fornecer uma ampla gama de variações de cores.

Saiba mais em nossa documentação sobre a implementação do APV no Pipeline de Renderização Universal (URP) e do APV no Pipeline de Renderização de Alta Definição (HDRP).
Com a nova arquitetura de Light Baking do Unity fornecida no Unity 6, o GPU Light Baker está agora fora da visualização

O novo Light Baker foi desenvolvido tendo em mente a capacidade de resposta do Editor e a velocidade de cozimento. Isso significa que, ao usar o baking sob demanda, o Unity agora tira um "instantâneo" do estado da cena quando o botão Generate é clicado. O Unity não verifica mais o estado da cena a cada quadro, o que anteriormente prejudicava o desempenho do Editor.
Esse back-end de cozimento reprojetado simplificou significativamente nossa base de código, facilitando e agilizando a correção de bugs e reduzindo o risco de introdução de novos bugs.
Também estamos fornecendo a você um novo perfil de cozimento que permite escolher a intenção apropriada do fluxo de trabalho.

Você pode escolher um intervalo entre "menor uso de memória" - ideal se quiser continuar trabalhando no Editor e desejar a melhor capacidade de resposta geral do Editor - e "maior desempenho", que é útil se você quiser concluir o trabalho o mais rápido possível e não precisar trabalhar em mais nada no Editor durante o tempo de cozimento.
A criação iterativa e a solução de problemas de dados de iluminação preparados é um caso de uso importante para criadores que usam iluminação global (GI) preparada.
Por esse motivo, adicionamos uma nova funcionalidade de visualização interativa a vários modos de desenho de exibição de cena relacionados a GI, substituindo o Auto Generate do Unity por um modo de visualização de depuração de GI interativo dedicado para visualizar dados de iluminação.

Isso permite que as visualizações de depuração sejam atualizadas interativamente à medida que a cena é modificada. A visualização não é destrutiva, uma vez que não substitui os dados de iluminação processados.
O fato de nos afastarmos da antiga arquitetura Auto-Generate do Unity significa que podemos otimizar o pipeline de cozimento para obter maior estabilidade.
Observe que o Unity 6 é a última versão compatível com o Enlighten Realtime GI. Você pode encontrar mais detalhes sobre nosso caminho de depreciação comunicado anteriormente na publicação do fórum Update on Global Illumination 2021.
Aqui estão os links para solicitações anteriores de feedback, para as versões beta 2023.1, 2023.2 e Unity 6 (2023.3), respectivamente:
- Mudanças no Global Illumination com a versão beta 2023.1
- Mudanças na iluminação global com a versão beta 2023.2
- Mudanças na iluminação global com a versão beta do Unity 6 (2023.3)
Estamos ansiosos para ver suas criações aproveitando nossos novos recursos de iluminação fornecidos no Unity 6. Envie-nos seu feedback no fórum Global Illumination ou no novo espaço de discussões da Unity!