Luzes com a Mobilidade definida como Móvel são luzes que podem ser ou serem alteradas dinamicamente de qualquer forma durante o tempo de execução. Às vezes, elas são chamadas de luzes dinâmicas. O custo de desempenho é maior do que o das luzes estáticas ou estacionárias e depende do número de malhas afetadas pela luz e da contagem de triângulos dessas malhas. Por exemplo, uma luz dinâmica que projeta sombras com um raio grande tem um custo de desempenho maior do que uma com um raio menor.
A luz móvel é compatível com iluminação indireta dinâmica quando usada com iluminação global e reflexos do Lumen.
Das três opções de mobilidade de luz para escolher, a iluminação móvel tem qualidade variável (dependendo do tipo de sombras dinâmicas que estão sendo usadas), mais mutabilidade e maior custo de desempenho.
Tipos de sombreamento compatíveis
A iluminação móvel suporta métodos de iluminação e sombreamento muito mais dinâmicos do que as luzes estáticas e estacionárias. Os seguintes tipos de sombreamento são suportados com luzes definidas como Móvel:
Mapas de sombras fornecem sombras dinâmicas para toda a cena. É o método de sombreamento padrão para todos os sombreamentos dinâmicos na engine e funciona na maioria das plataformas para todos os tipos de luz. Os mapas de sombras não fornecem um sombreamento suave da área, como muitos dos outros métodos de sombreamento desta lista.
Mapas de sombras virtuais fornecem mapas de sombras consistentes e de alta resolução que funcionam bem com ativos com qualidade cinematográfica e grandes mundos abertos dinamicamente iluminados. Elas fornecem sombreamento de área suave e funcionam bem com o Nanite, iluminação global e reflexos do Lumen e World Partition para fornecer o máximo de qualidade a um custo de desempenho razoável. Os mapas de sombras virtuais são compatíveis com as plataformas de console e PC mais recentes que oferecem suporte para DirectX 11 ou DirectX 12.
Sombras com traçado de raios simulam efeitos suaves de iluminação de área para oferecer o máximo de qualidade de sombreamento com desempenho razoável. Eles usam a arquitetura de traçado de raios compatível com hardware de GPU NVIDIA em execução em Windows 10 (ou posterior) com DirectX 12.
Sombras de campo de distância de malha fornecem efeitos de iluminação e sombreamento de área suave a partir de malhas com base em uma representação do campo de distância da malha. Essa forma exige malhas de campo de distância para o projeto, necessárias para traçado de raios por software na iluminação global e reflexos do Lumen e na oclusão de ambiente da profundidade de campo.
Polarização de sombra
As técnicas de mapeamento de sombra padrão na Unreal Engine funcionam em todas as plataformas para iluminação móvel para fornecer sombreamento dinâmico. O mapeamento de sombras tem algumas limitações que produzem artefatos, como sombras facetadas em superfícies curvas e endurecimento do contato da sombra em interseções de superfície, o que pode fazer com que os objetos pareçam flutuar ou se desconectar da cena.
A polarização de sombra é um conjunto de propriedades para cada luz individual que ajudam a reduzir esses tipos de artefatos, ao mesmo tempo que melhoram a precisão do autosombreamento e endurecimento do contato dessas fontes de luz. Essas configurações de polarização funcionam ao encontrar uma compensação entre o equilíbrio da precisão em uma área e a redução de artefatos de autossombreamento em outra.
Ajustar o desvio de inclinação da sombra reduz os artefatos de autossombreamento com perda de precisão da sombra, o que pode causar um efeito de estagnação no ar (ou flutuação) para objetos fixos na cena. Os ajustes de desvio da inclinação não resolverão todos os problemas de sombreamento automático com iluminação dinâmica, mas podem solucionar a maioria. Cabe a você decidir o melhor equilíbrio para o seu projeto.
Luzes direcionais têm uma propriedade adicional de desvio de profundidade que controla a força do desvio nos mapas de sombras em cascata (CSM). Ela reduz as descontinuidades de artefatos de sombra em pontos de transição em cascata.
As seguintes propriedades estão disponíveis nas luzes para ajustar o desvio de sombra:
| Propriedade | Descrição |
|---|---|
Distribuição do desvio da cascata de sombra | (Somente luzes direcionais) Controla o dimensionamento do desvio de profundidade em mapas de sombras em cascata. Atenua a diferença nos artefatos de sombra entre diferentes transições em cascata. Os valores de 1 escala de desvio com base no tamanho de cada cascata. O valor 0 dimensiona o desvio de sombra de maneira uniforme em todas as cascatas. |
Diferença de sombra | Controla a precisão do sombreamento automático das sombras da cena inteira com base nessa fonte de luz. Em 0, as sombras começam na superfície de projeção, mas haverá muitos artefatos. Valores maiores fazem com que as sombras comecem mais longe do ponto de projeção e não haverá artefatos de sombreamento automático, mas o objeto pode parecer estar flutuando acima da superfície. Valores em torno do ponto médio de 0,5 são um bom equilíbrio entre precisão e redução de artefatos de sombreamento automático. |
Tendência de inclinação da sombra | Isso funciona juntamente com o desvio de sombra para controlar a precisão do sombreamento automático das sombras da cena inteira da luz selecionada. Essa propriedade aumenta a quantidade de desvio dependendo da inclinação de uma determinada superfície. Em 0, as sombras começam na superfície de projeção, mas terão muitos artefatos de sombreamento automático. Valores maiores fazem com que as sombras comecem mais longe do ponto de projeção e não haverá artefatos de sombreamento automático, mas os objetos podem parecer estar flutuando acima da superfície. |
Nitidez do filtro de sombra | Ajusta a nitidez do sombreamento direto de luzes estacionárias ou iluminação móvel. Isso pode reduzir o efeito de sombreamento suave do mapeamento de sombras. |
Cache do mapa de sombras
O cache de mapa de sombras é uma funcionalidade de iluminação móvel que torna a projeção de sombras e luzes de holofote muito mais acessíveis nos jogos. Em níveis com ativos que não precisam ser movidos, o cálculo da sombra consome o desempenho a cada quadro. O cache de mapa de sombras examina os ativos com a mobilidade definida como Estática ou Estacionária e não precisa recalculá-los a cada quadro, a menos que algo mude neles ou na luz.
O cache de mapa de sombras tem um impacto significativo no desempenho, especialmente em níveis com muitos ativos afetados por luzes.
Por exemplo, em uma cena de tamanho moderado com três luzes de holofote móveis que projetam sombras, elas podem levar mais de 14 milissegundos para renderizar as profundidades de sombra. Com as sombras em cache habilitadas, essas mesmas três luzes podem levar cerca de 1 milissegundo para renderizar profundidades de sombra.
O cache de mapa de sombras precisa de memória para armazenar as sombras em cache. Para cenas grandes o suficiente, pode ser necessário ajustar a quantidade de memória alocada a elas com o comando do console r.Shadow.WholeSceneShadowCacheMb.
Desempenho do armazenamento em cache do mapa de sombras
Você pode conferir o desempenho das sombras em cache abrindo a janela de estatísticas para renderização de sombras com Stat ShadowRendering. Em seguida, habilite/desabilite sombras em cache com o comando do console r.Shadow.WholeSceneShadows.
Armazenamento em cache do mapa de sombras: habilitado | Armazenamento em cache do mapa de sombras: desabilitado |
Limitações do armazenamento em cache do mapa de sombras
O cache do mapa de sombras pode diminuir significativamente o custo do uso de sombreamento dinâmico em seus níveis, mas há algumas limitações que devem ser consideradas ao usar funcionalidades incompatíveis com a engine.
Por padrão, o armazenamento em cache só pode acontecer quando os seguintes ativos atendem a estes critérios:
Os primitivos no nível devem ter a mobilidade definida como Estática ou Estacionária.
Materiais que usam deslocamento de posição no mundo não serão armazenados em cache.
Luzes pontuais e luzes de holofote são compatíveis e devem ter a mobilidade definida como Móvel para projetar sombras.
Luzes que se deslocam não têm suas sombras armazenadas.
Materiais que usam tesselação animada ou deslocamento de profundidade de pixels podem causar artefatos porque suas sombras serão armazenadas em cache, mas parecerão incorretas com o ativo.