Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Iluminação global por Campo de Distância com Sinal (SDFGI)
A iluminação global por campo de distância assinado (SDFGI) é uma técnica inovadora disponível no Godot. Ela fornece iluminação global semi-tempo real que escala para mundos de qualquer tamanho e funciona com níveis gerados proceduralmente.
O SDFGI oferece suporte a luzes dinâmicas, mas não a oclusores dinâmicos nem a superfícies emissivas dinâmicas. Portanto, o SDFGI oferece uma capacidade de tempo real melhor do que os lightmaps pré-calculados, mas pior do que o VoxelGI.
Do ponto de vista de desempenho, o SDFGI é uma das técnicas de iluminação global mais exigentes do Godot. Assim como no VoxelGI, ainda existem várias configurações disponíveis para ajustar suas exigências de desempenho, ao custo de qualidade.
Importante
O SDFGI é suportado apenas ao usar o renderizador Forward+, não os renderizadores Mobile ou Compatibility.
Ver também
Não tem certeza se o SDFGI é adequado às suas necessidades? Consulte Qual técnica de iluminação global devo usar? para uma comparação das técnicas de GI disponíveis no Godot 4.
Comparação visual
SDFGI desativado.
SDFGI ativado.
Configurando o SDFGI
No Godot, o SDFGI é a técnica de iluminação global com o menor número de etapas necessárias para ser habilitada:
Certifique-se de que os nós MeshInstance tenham a propriedade Global Illumination > Mode definida como Static no inspetor.
Para cenas 3D importadas, o modo de bake pode ser configurado no painel Import após selecionar o arquivo da cena 3D no painel FileSystem.
Adicione um nó WorldEnvironment e crie um recurso Environment para ele.
Edite o recurso Environment, role para baixo até a seção SDFGI e desdobre-o.
Habilite SDFGI > Enabled. O SDFGI seguirá automaticamente a câmera quando ela se mover, portanto você não precisa configurar as extensões (diferente do VoxelGI).
Propriedades de SDFGI do ambiente
No recurso Environment , há várias propriedades disponíveis para ajustar a aparência e a qualidade do SDFGI:
Use Occlusion: Se habilitado, o SDFGI lançará raios adicionais para localizar e reduzir vazamentos de luz. Isso tem um custo de desempenho, então habilite essa propriedade apenas se realmente for necessário.
Read Sky Light: Se habilitado, a iluminação do ambiente será representada na iluminação global. Isso deve ser habilitado em cenas externas e desabilitado em cenas totalmente internas.
Bounce Feedback: Por padrão, a iluminação indireta só é refletida uma vez ao usar SDFGI. Definir esse valor acima de
0.0fará com que o SDFGI reflita mais de uma vez, proporcionando uma iluminação indireta mais realista com um pequeno custo de desempenho. Valores sensatos geralmente ficam entre0.3e1.0, dependendo da cena. Note que, em algumas cenas, valores acima de0.5podem causar loops de feedback infinitos, fazendo com que a cena fique extremamente brilhante em poucos segundos. Se sua iluminação indireta parecer "manchada", considere aumentar esse valor acima de0.0para obter uma iluminação mais uniforme. Se a iluminação ficar muito intensa como resultado, diminua Energy para compensar.Cascades: Valores mais altos resultam em informações de GI mais detalhadas (e/ou maior distância máxima), mas são significativamente mais exigentes para a CPU e a GPU. O custo de desempenho de ter mais cascatas aumenta especialmente quando a câmera se move rapidamente, portanto, considere reduzir este valor para
4ou menos se sua câmera se mover em alta velocidade.Min Cell Size: O tamanho mínimo de célula do SDFGI a ser usado para a cascata mais próxima e detalhada. Valores mais baixos resultam em iluminação indireta e reflexos mais precisos, ao custo de menor desempenho. Ajustar essa configuração também afeta automaticamente Cascade 0 Distance e Max Distance.
Cascade 0 Distance: A distância na qual a cascata mais próxima e detalhada termina. Valores maiores tornam a transição da cascata mais próxima menos perceptível, ao custo de reduzir o nível de detalhe dessa cascata. Ajustar essa configuração também afeta automaticamente Min Cell Size e Max Distance.
Max Distance: Controla até que distância o campo de distância com sinal será calculado (para a cascata menos detalhada). O SDFGI não terá efeito além dessa distância. Esse valor deve sempre ser definido abaixo do valor Far da câmera, pois não há benefício em calcular o SDFGI além da distância de visualização. Ajustar essa configuração também afeta automaticamente Min Cell Size e Cascade 0 Distance.
Y Scale: Controla o quão espaçadas as sondas do SDFGI são distribuídas verticalmente. Por padrão, a distribuição vertical é igual à horizontal. No entanto, como a maioria das cenas de jogos não possui grande verticalidade, definir o Y Scale para
75%ou até50%pode proporcionar melhor qualidade e reduzir vazamentos de luz sem impactar o desempenho.Energy: O multiplicador de brilho para iluminação indireta do SDFGI.
Normal Bias: O viés normal a ser usado para os raios refletidos das sondas do SDFGI. Diferente de Probe Bias, esse valor é aumentado apenas em relação às normais da malha. Isso torna o ajuste do viés mais sutil e evita aumentá-lo demais sem necessidade. Aumente esse valor se você notar artefatos em faixas na iluminação indireta ou nos reflexos.
Probe Bias: O viés a ser usado para os reflexos de raios de sondagem do SDFGI. Aumente este valor se notar artefatos de listras em iluminação indireta ou reflexos.
Interação do SDFGI com luzes e objetos
The amount of indirect energy emitted by a light is defined by its color, energy and indirect energy properties. To make a specific light emit more or less indirect energy without affecting the amount of direct light emitted by the light, adjust the Indirect Energy property in the Light3D inspector.
Para garantir visuais corretos ao usar SDFGI, você deve configurar as propriedades de iluminação global de suas malhas e luzes de acordo com sua finalidade na cena (estática ou dinâmica).
Existem 3 modos de iluminação global disponíveis para malhas:
Desativado: A malha não será considerada na geração do SDFGI. A malha receberá iluminação indireta da cena, mas não contribuirá com iluminação indireta para a cena.
Static (padrão): A malha será considerada na geração do SDFGI. Ela receberá e também contribuirá com iluminação indireta para a cena. Se a malha for alterada de qualquer forma após a geração do SDFGI, a câmera deve se afastar do objeto e depois se aproximar novamente para que o SDFGI seja regenerado. Alternativamente, o SDFGI pode ser desativado e reativado. Se nenhuma dessas ações for feita, a iluminação indireta ficará incorreta.
Dynamic (not supported with SDFGI): The mesh won't be taken into account in SDFGI generation. The mesh will receive indirect lighting from the scene, but it will not contribute indirect lighting to the scene. This acts identical to the Disabled bake mode when using SDFGI.
Additionally, there are 3 bake modes available for lights (DirectionalLight3D, OmniLight3D, SpotLight3D, and AreaLight3D):
Disabled: A luz não será considerada no bake do SDFGI. Ela não contribuirá com iluminação indireta para a cena.
Static: The light will be taken into account for SDFGI baking. The light will contribute indirect lighting to the scene. If the light is changed in any way after baking, indirect lighting will look incorrect until the camera moves away from the light and back (which causes SDFGI to be baked again). If in doubt, use this mode for level lighting.
Dynamic (padrão): A luz não será considerada no bake do SDFGI, mas ainda assim contribuirá com iluminação indireta para a cena em tempo real. Essa opção é mais lenta em comparação com Static. Use o modo de iluminação global Dynamic apenas em luzes que mudarão significativamente durante a jogabilidade.
Nota
A quantidade de energia indireta emitida por uma luz depende de suas propriedades de cor, energia e energia indireta. Para fazer com que uma luz específica emita mais ou menos energia indireta sem afetar a quantidade de luz direta emitida, ajuste a propriedade Indirect Energy no inspetor do Light3D.
Ver também
Consulte Qual modo de iluminação global devo usar em malhas e luzes? para recomendações gerais de uso.
Ajustando o desempenho e a qualidade do SDFGI
Como o SDFGI é relativamente exigente, ele terá o melhor desempenho em sistemas com GPUs dedicadas recentes. Em GPUs dedicadas mais antigas e gráficos integrados, é necessário ajustar as configurações para obter desempenho razoável.
Na seção Renderização > Iluminação Global das Configurações do Projeto, a qualidade do SDFGI também pode ser ajustada de várias maneiras:
Sdfgi > Número de Raios de Sonda: Valores mais altos resultam em melhor qualidade, mas com maior uso da GPU. Se esse valor for definido muito baixo, as superfícies podem apresentar "manchas" visíveis de iluminação indireta devido ao número muito baixo de raios emitidos.
Sdfgi > Frames To Converge: Valores maiores resultam em melhor qualidade, mas a GI levará mais tempo para convergir completamente. O efeito dessa configuração é especialmente perceptível ao carregar uma cena pela primeira vez ou quando luzes com um modo de bake diferente de Disabled estão se movendo rapidamente. Se este valor for definido muito baixo, podem surgir manchas visíveis de iluminação indireta nas superfícies devido ao número muito reduzido de raios lançados. Se a iluminação da sua cena não possui luzes rápidas que contribuam para a GI, considere definir este valor como
30para melhorar a qualidade sem impactar o desempenho.Sdfgi > Frames To Update Light: Valores menores fazem com que luzes em movimento sejam refletidas mais rapidamente, ao custo de maior uso da GPU. Se a iluminação da sua cena não possui luzes rápidas que contribuam para a GI, considere definir este valor como
16para melhorar o desempenho.Gi > Use Half Resolution: Se habilitado, tanto o SDFGI quanto o VoxelGI renderizarão seus buffers de GI em metade da resolução. Por exemplo, ao renderizar em 3840×2160, o buffer de GI será calculado em resolução 1920×1080. Habilitar esta opção economiza bastante tempo de GPU, mas pode introduzir aliasing visível em detalhes finos.
O desempenho de renderização SDFGI também depende do número de cascatas e do tamanho da célula escolhido no recurso Ambiente (ver acima).
Ressalvas do SDFGI
O SDFGI tem algumas desvantagens devido à sua natureza em cascata. Quando a câmera se move, as mudanças em cascata podem ser visíveis na iluminação indireta. Isso pode ser aliviado ajustando o tamanho da cascata, mas também adicionando névoa (que fará deslocamentos de cascata distantes menos perceptíveis).
Além disso, o desempenho sofrerá se a câmera se mover muito rápido. Isso pode ser corrigido de duas maneiras:
Garantir que a câmera não se move muito rápido em qualquer situação.
Desabilitar temporariamente o SDFGI no recurso Ambiente se a câmera precisar ser movida em alta velocidade, e depois habilitar o SDFGI assim que a velocidade da câmera diminuir.
When SDFGI is enabled, it will also take some time for global illumination to be fully converged (30 frames by default). This can create a noticeable transition effect while GI is still converging. To hide this, you can use a ColorRect node that spans the whole viewport and fade it out when switching scenes using an AnimationPlayer node.
O campo de distância com sinal só é atualizado quando a câmera entra ou sai de uma cascata. Isso significa que, se a geometria for modificada à distância, a aparência da iluminação global estará correta assim que a câmera se aproximar. No entanto, se um objeto próximo com o modo de pré-cálculo definido como Static ou Dynamic for movido (como uma porta), a iluminação global parecerá incorreta até que a câmera se afaste do objeto.
As reflexões nítidas (sharp reflections) do SDFGI são visíveis apenas em materiais opacos. Materiais transparentes usarão apenas reflexões ásperas (rough reflections), mesmo que a rugosidade (roughness) do material seja inferior a 0.2.