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...
Ambiente e pós-processamento
O Godot 4 fornece um recurso Environment redesenhado, bem como um novo sistema de pós-processamento com diversos efeitos disponíveis imediatamente.
Nota
A partir do Godot 4, as configurações de desempenho/qualidade do ambiente são definidas nas configurações do projeto, em vez de no recurso de Environment. Isso facilita os ajustes globais, pois você não precisa mais ajustar os recursos de ambiente individualmente para se adequarem a diferentes configurações de hardware.
Observe que a maioria das configurações de desempenho/qualidade do Environment só fica visível após ativar a opção Avançado nas Configurações do Projeto.
Ambiente
O recurso Environment armazena todas as informações necessárias para controlar o ambiente de renderização 2D e 3D. Isso inclui céu, iluminação ambiente, tonemapping, efeitos e ajustes. Por si só, ele não faz nada, mas pode ser habilitado utilizando-o em um dos seguintes locais, em ordem de prioridade:
Nó Camera3D (alta prioridade)
Um Environment pode ser definido em um nó Camera3D. Ele terá prioridade sobre qualquer outra configuração.
Isso é útil principalmente quando você deseja sobrescrever um ambiente existente, mas, em geral, é melhor utilizar a opção abaixo.
Nó WorldEnvironment (prioridade média, recomendado)
O nó WorldEnvironment pode ser adicionado a qualquer cena, mas apenas um pode existir por árvore de cena ativa. Adicionar mais de um resultará em um alerta.
Qualquer ambiente adicionado tem prioridade mais alta que o ambiente padrão (explicado abaixo). Isso significa que pode ser substituído por cena, o que o torna bastante útil.
Preview environment and sun (baixa prioridade)
Nota
Desde o Godot 4, o visualização de ambiente e o sistema de sol substituem o arquivo default_env.tres utilizado em projetos do Godot 3.
Se não houver um nó WorldEnvironment ou DirectionalLight3D na cena atual, o editor exibirá, em vez disso, um ambiente e um sol de visualização. Isso pode ser desativado usando os botões na parte superior do editor 3D:
Clicar nos três pontos verticais à direita exibirá uma caixa de diálogo que permite personalizar a aparência da visualização do ambiente:
A visualização do sol e do céu só são visíveis no editor, não no projeto em execução. Usando os botões na parte inferior da caixa de diálogo, você pode adicionar o sol e o céu de pré-visualização à cena como nós.
Dica
Se você mantiver pressionada a tecla Shift enquanto clica em Adicionar Sol à Cena ou Adicionar Ambiente à Cena no editor de pré-visualização de ambiente, isso adicionará tanto um sol quanto um ambiente de pré-visualização à cena atual (como se você tivesse clicado em ambos os botões separadamente). Utilize esse recurso para agilizar a configuração do projeto e a prototipagem.
Atributos da câmera
Nota
No Godot 4, as informações de exposição e profundidade de campo foram separadas do recurso Environment para um recurso CameraAttributes distinto. Isso permite ajustar essas propriedades de forma mais fácil e independente das outras configurações do Environment.
O recurso CameraAttributes armazena informações de exposição e profundidade de campo. Ele também permite ativar ajustes automáticos de exposição com base na luminosidade da cena.
Existem dois tipos de recursos CameraAttribute disponíveis:
CameraAttributesPractical: Os recursos são expostos utilizando unidades arbitrárias, que são mais fáceis de compreender para a maioria dos casos de uso em jogos.
CameraAttributesPhysical: Os parâmetros são definidos utilizando unidades do mundo real, de forma semelhante a uma câmera digital. Por exemplo, o campo de visão é configurado com base na distância focal em milímetros, em vez de um valor em graus. Recomendado quando a precisão física é importante, como em renderizações fotorrealistas.
Ambos os tipos de recurso CameraAttribute permitem utilizar os mesmos recursos, mas são configurados de maneira diferente. Se você não souber qual escolher, utilize CameraAttributesPractical.
Nota
O uso de um CameraAttributesPhysical em um nó Camera3D desabilitará os ajustes de FOV e proporção de tela (aspect ratio) nessa Camera3D, uma vez que o campo de visão passa a ser ajustado no recurso CameraAttributesPhysical. Se utilizado em um WorldEnvironment, o CameraAttributesPhysical não substituirá as configurações de nenhuma Camera3D na cena.
Um recurso CameraAttributes pode ser adicionado a um nó Camera3D ou WorldEnvironment. Quando a câmera atual possui um CameraAttributes definido, ele substitui aquele definido no WorldEnvironment (se houver).
Na maioria das situações, recomenda-se definir o recurso CameraAttributes no nó Camera3D em vez do WorldEnvironment. Ao contrário do WorldEnvironment, atribuir o recurso CameraAttributes ao nó Camera3D impede que a profundidade de campo seja exibida na viewport do editor 3D, a menos que a câmera esteja sendo visualizada.
Opções de ambiente
A seguir está uma descrição detalhada de todas as opções do ambiente e de como elas devem ser utilizadas.
Plano de Fundo
A seção Background contém configurações sobre como preencher o fundo (partes da tela onde objetos não foram desenhados). O fundo não serve apenas para exibir uma imagem ou cor. Por padrão, ele também afeta como os objetos são influenciados pela luz ambiente e refletida. Isso é chamado de iluminação baseada em imagem (IBL).
Como resultado, o céu de fundo pode impactar muito a aparência geral da sua cena, mesmo que o céu nunca esteja diretamente visível na tela. Isso deve ser levado em consideração ao ajustar a iluminação em sua cena.
Existem vários modos de plano de fundo disponíveis:
Clear Color utiliza a cor de limpeza padrão definida nas configurações do projeto. O plano de fundo será uma cor constante.
Custom Color é como o Clear Color, mas com um valor de cor personalizado.
Sky permite definir um material de céu para o plano de fundo (veja abaixo). Por padrão, os objetos da cena refletirão esse material de céu e absorverão iluminação ambiente dele.
Canvas exibe a cena 2D como um plano de fundo para a cena 3D. Isso pode ser usado para tornar os efeitos de ambiente visíveis na renderização 2D, como o brilho em 2D.
Keep não desenha nenhum céu, mantendo o que estava presente nos quadros anteriores. Isso melhora o desempenho em cenas puramente internas, mas cria um bug visual de "salão de espelhos" se o céu estiver visível em qualquer momento.
Camera Feed exibe um CameraFeed de uma câmera física como plano de fundo, útil para jogos de RA em dispositivos móveis.
Materiais de céu
Ao usar o modo de fundo Sky (ou se o modo de luz ambiente/refletida estiver definido como Sky), um subrecurso Sky fica disponível para edição no recurso Environment. A edição deste subrecurso permite criar um recurso SkyMaterial dentro do Sky.
Existem 3 materiais de céu integrados para escolher:
PanoramaSkyMaterial: Usa uma imagem de céu panorâmica de 360 graus (proporção 2:1 recomendada). Para se beneficiar do alto alcance dinâmico, a imagem panorâmica deve estar em um formato compatível com HDR, como
.hdrou.exr, em vez de um formato de alcance dinâmico padrão como.pngou.jpg.ProceduralSkyMaterial: Usa um céu gerado proceduralmente com cores ajustáveis de solo, sol, céu e horizonte. Este é o tipo de céu usado na pré-visualização do editor. A posição do sol é derivada automaticamente dos primeiros 4 nós DirectionalLight3D presentes na cena. Pode haver até 4 sóis ao mesmo tempo.
PhysicalSkyMaterial: Usa um céu procedural baseado em física com parâmetros de espalhamento ajustáveis. A posição do sol é derivada automaticamente do primeiro nó DirectionalLight3D presente na cena. O PhysicalSkyMaterial é ligeiramente mais caro de renderizar em comparação com o ProceduralSkyMaterial. Pode haver até 1 sol ao mesmo tempo.
Imagens de céu panorâmicas são às vezes chamadas de HDRIs (High Dynamic Range Images). Você pode encontrar HDRIs com licença livre no Poly Haven.
Nota
Texturas HDR de PanoramaSkyMaterial com pontos muito brilhantes (como fotos da vida real com o sol visível) podem resultar em faíscas (sparkles) visíveis em reflexos ambientes e especulares. Isso é causado pela exposição de pico da textura ser muito alta.
Para resolver isso, selecione a textura de panorama na aba FileSystem, vá para a aba Import, ative HDR Clamp Exposure e clique em Reimport.
Se você precisar de um material de céu personalizado (por exemplo, para nuvens procedurais), você pode criar um sky shader personalizado.
Ambient light
Iluminação ambiente (conforme definida aqui) é um tipo de iluminação que afeta toda a geometria com a mesma intensidade. Ela é global e independente das luzes adicionadas à cena. A iluminação ambiente é um dos dois componentes da iluminação baseada em imagem. Diferentemente da luz refletida, a iluminação ambiente não varia conforme a posição da câmera ou o ângulo de visualização.
Existem vários tipos de iluminação ambiente para escolher:
Background: Obtém a luz ambiente a partir do fundo, como o céu, cor personalizada ou cor de limpeza (padrão). A intensidade da luz ambiente varia dependendo do conteúdo da imagem do céu, o que pode resultar em uma iluminação ambiente visualmente mais atraente. Um céu deve ser definido como plano de fundo para que este modo fique visível.
Disabled: Não usa nenhuma luz ambiente. Útil para cenas puramente internas.
Color: Usa uma cor constante para a luz ambiente, ignorando o céu de fundo. A intensidade da luz ambiente será a mesma em todos os lados, o que pode fazer com que a iluminação da cena pareça mais plana. Útil para cenas internas onde sombras totalmente pretas podem ser muito escuras, ou para maximizar o desempenho em dispositivos de baixo custo.
Sky: Obtém a luz ambiente a partir de um céu especificado, mesmo que o modo de fundo esteja definido para um modo diferente de Sky. Se o modo de fundo já for Sky, este modo se comporta de forma idêntica ao Background.
Quando o modo de iluminação ambiente está definido como Sky ou Background (e o plano de fundo está configurado como Sky), é possível misturar entre a cor ambiente e o céu usando a propriedade Sky Contribution. Esse valor é definido como 1.0 por padrão, o que significa que apenas o céu ambiente é utilizado. A cor ambiente é ignorada, a menos que Sky Contribution seja reduzido abaixo de 1.0.
Aqui está uma comparação de como a luz ambiente diferente afeta uma cena:
Por fim, existe a configuração Energy, que atua como multiplicador. Ela é útil ao trabalhar com HDR.
Em geral, você deve depender apenas da iluminação ambiente em cenas simples ou grandes áreas externas. Também pode fazê-lo para melhorar o desempenho. A iluminação ambiente é rápida de renderizar, mas não oferece a melhor qualidade visual. É melhor gerar iluminação ambiente a partir de ReflectionProbe, VoxelGI ou SDFGI, pois eles simulam com mais precisão a propagação da luz indireta. Abaixo há uma comparação, em termos de qualidade, entre usar uma cor ambiente uniforme e um VoxelGI:
Utilizar um dos métodos descritos acima substituirá a iluminação ambiente constante pela iluminação ambiente proveniente das sondas.
Luz refletida
A luz refletida (também chamada de luz especular) é a outra das duas partes que compõem a iluminação baseada em imagem.
A luz refletida pode ser configurada em um de 3 modos:
Background: Reflete a partir do fundo, como o céu, cor personalizada ou cor de limpeza (padrão).
Disabled: Não reflete nenhuma luz do ambiente. Útil para cenas puramente internas ou para maximizar o desempenho em dispositivos de baixo custo.
Sky: Reflete a partir do céu de fundo, mesmo que o modo de fundo esteja definido para um modo diferente de Sky. Se o modo de fundo já for Sky, este modo se comporta de forma idêntica ao Background.
Mapa de Tons
Tonemap seleciona o algoritmo de tonemapping que será aplicado à cena, a partir de uma lista de algoritmos padrão utilizados nas indústrias de cinema e jogos. Modos de tonemapping diferentes de Linear são usados para tornar áreas claras e escuras mais homogêneas, ao mesmo tempo em que evitam o recorte de realces muito brilhantes. Cada algoritmo possui características de desempenho diferentes que devem ser consideradas ao escolher seu tonemapper.
As opções de mapeamento de tom são:
Mode: O modo de tonemapping a ser utilizado.
Linear: Não modifica os dados de cor, resultando em uma curva de mapeamento de tons (tonemapping) linear que corta valores brilhantes de forma não natural, fazendo com que a iluminação brilhante pareça estourada. O mapeador de tons mais simples e rápido.
Reinhard: Uma curva simples de mapeamento de tons que reduz os valores brilhantes para evitar o corte (clipping). Isso resulta em uma imagem que pode parecer opaca e com baixo contraste. Mais lento que o Linear. Quando White é deixado no valor padrão de
1.0, o Reinhard produz uma imagem idêntica ao Linear.Filmic: Usa uma curva de mapeamento de tons do tipo cinematográfica para evitar o corte de valores brilhantes e fornecer um contraste melhor do que o Reinhard. Ligeiramente mais lento que o Reinhard.
ACES: Usa uma curva de mapeamento de tons cinematográfica de alto contraste e dessatura valores brilhantes para uma aparência mais realista. Ligeiramente mais lento que o Filmic.
AgX: Usa uma curva de mapeamento de tons cinematográfica e dessatura valores brilhantes para uma aparência mais realista. Melhor do que outros mapeadores de tons em manter a matiz das cores à medida que se tornam mais brilhantes. A opção de mapeamento de tons mais lenta.
Exposure: Ajusta o brilho dos valores antes que eles sejam fornecidos ao mapeador de tons. Valores de Exposure mais altos resultam em uma imagem mais brilhante. Os valores fornecidos ao mapeador de tons também serão multiplicados por
2.0e1.8para Filmic e ACES, respectivamente, para produzir um brilho aparente semelhante ao Linear.White: O valor de referência de branco para o tonemapping, que indica onde o branco brilhante está localizado na escala de valores fornecida ao tonemapper. Para iluminação fotorrealista, valores recomendados ficam entre
6.0e8.0. Valores mais altos resultam em menos estouro de realces, mas podem fazer a cena parecer ter menos contraste. White não está disponível ao utilizar Linear. Se você estiver usando AgX, o renderizador móvel e HDR 2D estiver desabilitado, o valor definido aqui será ignorado e será utilizado o valor2.0.AGX Contrast: Disponível apenas ao usar o AgX. Aumentar isso torna os valores escuros mais escuros e os valores brilhantes mais brilhantes. Cria resultados melhores do que a opção de contraste na seção de ajustes, sem custo adicional de desempenho.
Efeitos de médio e pós processamento
O recurso Environment suporta muitos efeitos populares de médio e pós-processamento.
Nota
Efeitos de espaço de tela (screen-space) como SSR, SSAO, SSIL e glow não operam em geometrias localizadas fora da visão da câmera ou que estejam ocluídas por outra geometria opaca. Considere isso ao ajustar suas configurações para evitar mudanças que distraiam durante o jogo.
Reflexos em Espaço de Tela (SSR)
Este recurso só está disponível ao usar o renderizador Forward+, e não os modos Mobile ou Compatibility.
Embora o Godot ofereça suporte a várias fontes de dados de reflexos, como as Sondas de reflexos, elas podem não fornecer detalhes suficientes para todas as situações. Os cenários em que os reflexos em espaço da tela fazem mais sentido são aqueles em que os objetos estão em contato uns com os outros (um objeto sobre o chão, sobre uma mesa, flutuando na água, etc.).
Além de fornecer mais detalhes, os reflexos no espaço da tela (screen-space reflections) também funcionam em tempo real (enquanto outros tipos de reflexos geralmente são pré-computados). Isso pode ser usado para fazer com que personagens, carros, etc., reflitam em superfícies circundantes ao se moverem.
Os reflexos em espaço de tela podem ser usados ao mesmo tempo que outras fontes de reflexo para se beneficiar de reflexos detalhados quando possível, mantendo uma alternativa (fallback) para quando os reflexos em espaço de tela não puderem ser usados (por exemplo, para refletir objetos fora da tela).
Alguns parâmetros controlados pelo usuário estão disponíveis para melhor ajustar a técnica:
Max Steps: Determina o comprimento máximo do reflexo. Quanto maior esse número, mais custoso será o cálculo.
Fade In: Permite ajustar a curva de fade-in, o que é útil para tornar a área de contato mais suave.
Fade Out: Permite ajustar a curva de fade-out, para que o limite do passo desapareça suavemente.
Depth Tolerance: Pode ser usado para permitir que os raios do espaço de tela passem por trás de objetos. Os raios tratarão cada objeto como se ele tivesse essa profundidade ao determinar se podem passar por trás dele. Valores mais altos farão com que os reflexos em espaço de tela apresentem menos "quebras" (breakups), ao custo de alguns objetos criarem reflexos fisicamente incorretos.
Adicionalmente, você pode ajustar a qualidade do SSR nas configurações do projeto alternando Rendering > Environment > Screen Space Reflection > Half Size. Por padrão, os reflexos em espaço de tela são renderizados na metade da resolução por motivos de desempenho. Desativar essa configuração fará com que o efeito seja renderizado na resolução total, o que melhora a qualidade ao custo de um maior uso da GPU.
Nota
Lembre-se de que os reflexos em espaço da tela funcionam apenas para refletir geometria opaca. Materiais transparentes não serão refletidos, pois não escrevem no buffer de profundidade. Isso também se aplica a shaders que utilizam uniforms hint_screen_texture ou hint_depth_texture.
Oclusão Ambiente em Espaço de Tela (SSAO)
Este recurso só está disponível ao usar os renderizadores Forward+ e Compatibility, não o Mobile.
Como mencionado na seção Ambient, áreas onde a luz dos nós de iluminação não alcança (seja por estarem fora do alcance ou por estarem sombreadas) são iluminadas pela luz ambiente. O Godot pode simular isso usando VoxelGI, ReflectionProbe, o Sky ou uma cor ambiente constante. O problema, porém, é que todos os métodos propostos anteriormente atuam mais em uma escala ampla (grandes regiões) do que no nível de pequenos detalhes geométricos.
Cor constante de ambiente e céu são as mesmas em todo lugar, porém GI e Reflection Probes são detalhes mais localizados, mas não o suficiente para simular situações onde a luz não é capaz de preencher espaços côncavos ou ocos.
Isso pode ser simulado com Oclusão Ambiente em Espaço de Tela. Como podemos ver na imagem abaixo, seu propósito é deixar as áreas concavas mais escuras, simulando um caminho mais estreito para a luz entrar:
É um erro comum habilitar este efeito, ligar uma luz e não conseguir perceber seu resultado. Isso acontece porque SSAO atua apenas sobre a luz ambiente. Ele não afeta a iluminação direta.
É por isso que, na imagem acima, o efeito é menos perceptível sob iluminação direta (à esquerda). Se você quiser forçar o SSAO a funcionar também com luz direta, utilize o parâmetro Light Affect. Embora isso não seja fisicamente correto, alguns artistas preferem o resultado visual.
SSAO apresenta melhores resultados quando combinado com uma fonte real de iluminação indireta, como o VoxelGI:
É possível ajustar o SSAO utilizando diversos parâmetros:
Radius: A distância na qual os objetos podem ocluir uns aos outros ao calcular a oclusão de ambiente em espaço de tela. Valores mais altos resultarão em oclusão a uma distância maior, ao custo de desempenho e qualidade.
Intensity: A intensidade primária da oclusão de ambiente em espaço de tela. Age como um multiplicador para o efeito de oclusão de ambiente em espaço de tela. Um valor mais alto resulta em uma oclusão mais escura. Como o SSAO é um efeito de espaço de tela, recomenda-se ser conservador com este valor. Um SSAO muito forte pode distrair durante o jogo.
Power: A distribuição da oclusão. Um valor mais alto resulta em uma oclusão mais escura, semelhante à Intensity, mas com uma queda (falloff) mais nítida.
Detail: Define a força do nível adicional de detalhe para o efeito de oclusão de ambiente em espaço de tela. Um valor alto torna a passagem de detalhes mais proeminente, mas pode contribuir para serrilhado (aliasing) na sua imagem final.
Horizon: O limiar para considerar se um determinado ponto em uma superfície está ocluído ou não, representado como um ângulo do horizonte mapeado na faixa de 0.0-1.0. Um valor de 1.0 resulta em nenhuma oclusão.
Sharpness: A quantidade que o efeito de oclusão de ambiente em espaço de tela tem permissão para borrar (blur) sobre as bordas dos objetos. Definir um valor muito alto resultará em serrilhado ao redor das bordas dos objetos. Definir um valor muito baixo fará com que as bordas dos objetos pareçam borradas.
Light Affect: A intensidade da oclusão de ambiente em espaço de tela sob luz direta. Na vida real, a oclusão de ambiente só se aplica à luz indireta, o que significa que seus efeitos não podem ser vistos sob luz direta. Valores maiores que 0 tornarão o efeito SSAO visível sob luz direta. Valores acima de
0.0não são fisicamente precisos, mas alguns artistas preferem esse efeito.AO Channel Affect A intensidade da oclusão de ambiente em espaço de tela em materiais que possuem uma textura de AO definida. Valores maiores que
0.0tornarão o efeito SSAO visível em áreas escurecidas por texturas de AO.
Adicionalmente, você pode ajustar a qualidade do SSAO na seção Rendering > Environment > SSAO das configurações do projeto:
Quality: Sets the quality of the screen-space ambient occlusion effect. Higher values take more samples and so will result in better quality, at the cost of performance. Setting this to Ultra will use the Adaptive Target setting (see below).
Half Size: Se for
true, a oclusão de ambiente em espaço de tela será renderizada pela metade do tamanho e depois redimensionada (upscaled) antes de ser adicionada à cena. Isso é significativamente mais rápido, mas pode perder pequenos detalhes. Se forfalse, a oclusão de ambiente em espaço de tela será renderizada em tamanho total.Adaptive Target: Alvo de qualidade a ser usado quando Quality estiver definido como Ultra. Um valor de
0.0fornece qualidade e velocidade semelhantes ao Medium, enquanto um valor de1.0fornece uma qualidade muito superior a qualquer uma das outras configurações, ao custo de desempenho.Blur Passes: Número de passagens de desfoque (blur passes) a serem usadas ao computar a oclusão de ambiente em espaço de tela. Um número maior resultará em um visual mais suave, mas será mais lento para computar e terá menos detalhes de alta frequência.
Fadeout From: Distância na qual o efeito de oclusão de ambiente em espaço de tela começa a desaparecer (fade out). Use isso para ocultar a oclusão de ambiente de longe.
Fadeout To: Distância na qual a oclusão de ambiente em espaço de tela desaparece completamente. Use isso para ocultar a oclusão de ambiente de longe.
Nota
Desde o Godot 4.6, uma versão simplificada do SSAO está disponível no renderizador Compatibility. Esta implementação tem um visual diferente, mas deve apresentar um desempenho significativamente melhor em dispositivos de baixo custo se comparada ao SSAO no Forward+.
Ao usar o renderizador Compatibility, apenas os parâmetros Radius e Intensity podem ser ajustados.
Iluminação Indireta em Espaço de Tela (SSIL)
Este recurso só está disponível ao usar o renderizador Forward+, e não os modos Mobile ou Compatibility.
O SSIL fornece iluminação indireta para pequenos detalhes ou geometrias dinâmicas que outras técnicas de iluminação global não conseguem cobrir. Isso se aplica à iluminação difusa rebatida, mas também a materiais emissivos. Quando o SSIL está ativado sozinho, o efeito pode não ser tão perceptível, o que é intencional.
Em vez disso, o SSIL deve ser usado como um complemento para outras técnicas de iluminação global, como VoxelGI, SDFGI e LightmapGI. O SSIL também fornece um efeito sutil de oclusão de ambiente, semelhante ao SSAO, mas com menos detalhes.
Este recurso fornece apenas iluminação indireta. Não é uma solução de iluminação global completa. Isso o torna diferente da iluminação global em espaço de tela (SSGI) oferecida por outros motores 3D. O SSIL pode ser combinado com SSR e/ou SSAO para maior qualidade visual (ao custo de desempenho).
É possível ajustar o SSIL utilizando diversos parâmetros:
Radius: A distância que a luz rebatida pode percorrer ao usar o efeito de iluminação indireta em espaço de tela. Um valor maior resultará em luz rebatendo mais longe na cena, mas pode resultar em artefatos de subamostragem que parecem longos picos ao redor das fontes de luz.
Intensity: O multiplicador de brilho para o efeito de iluminação indireta em espaço de tela. Um valor mais alto resultará em uma luz mais brilhante.
Sharpness: A quantidade que o efeito de iluminação indireta em espaço de tela tem permissão para borrar (blur) sobre as bordas dos objetos. Definir um valor muito alto resultará em serrilhado ao redor das bordas dos objetos. Definir um valor muito baixo fará com que as bordas dos objetos pareçam borradas.
Normal Rejection: Quantidade de rejeição de normais usada ao calcular a iluminação indireta em espaço de tela. A rejeição de normais usa a normal de um determinado ponto de amostragem para rejeitar amostras que estão voltadas para o lado oposto ao pixel atual. A rejeição de normais é necessária para evitar o vazamento de luz (light leaking) quando apenas um lado de um objeto está iluminado. No entanto, a rejeição de normais pode ser desativada se o vazamento de luz for desejável, como quando a cena contém principalmente objetos emissivos que emitem luz a partir de faces que não podem ser vistas pela câmera.
Adicionalmente, você pode ajustar a qualidade do SSIL na seção Rendering > Environment > SSIL das configurações do projeto:
Quality: Sets the quality of the screen-space indirect lighting effect. Higher values take more samples and so will result in better quality, at the cost of performance. Setting this to Ultra will use the Adaptive Target setting (see below).
Half Size: If
true, screen-space indirect lighting will be rendered at half size and then upscaled before being added to the scene. This is significantly faster but may miss small details. Iffalse, screen-space indirect lighting will be rendered at full size.Adaptive Target: Alvo de qualidade a ser usado quando Quality estiver definido como Ultra. Um valor de
0.0fornece qualidade e velocidade semelhantes ao Medium, enquanto um valor de1.0fornece uma qualidade muito superior a qualquer uma das outras configurações, ao custo de desempenho. Ao usar o alvo adaptativo, o custo de desempenho varia de acordo com a complexidade da cena.Blur Passes: Número de passagens de desfoque (blur passes) a serem usadas ao computar a iluminação indireta em espaço de tela. Um número maior resultará em um visual mais suave, mas será mais lento para computar e terá menos detalhes de alta frequência.
Fadeout From: Distância na qual o efeito de iluminação indireta em espaço de tela começa a desaparecer (fade out). Use isso para ocultar a iluminação indireta em espaço de tela de longe.
Fadeout To: Distância na qual a iluminação indireta em espaço de tela desaparece completamente. Use isso para ocultar a iluminação indireta em espaço de tela de longe.
Iluminação Global por Campo de Distância Sinalizado (SDFGI)
Este recurso só está disponível ao usar o renderizador Forward+, e não os modos Mobile ou Compatibility.
A iluminação global por campo de distância sinalizado (SDFGI) é uma forma de iluminação global em tempo real. Não é um efeito de espaço de tela, o que significa que ela pode fornecer iluminação global para elementos fora da tela (ao contrário do SSIL).
Ver também
Consulte Iluminação global por Campo de Distância com Sinal (SDFGI) para obter instruções sobre como configurar esta técnica de iluminação global.
Brilho
Nota
Ao usar o método de renderização Compatibility, o glow usa uma implementação diferente, com algumas propriedades ficando indisponíveis e ocultas no inspetor: Levels, Normalized, Strength, Blend Mode, Mix, Map e Map Strength.
Esta implementação é otimizada para rodar em dispositivos de baixo custo e, como resultado, é menos flexível.
Na fotografia e no cinema, quando a quantidade de luz excede a luminância (brilho) máxima suportada pela mídia, ela geralmente se espalha para regiões mais escuras da imagem. Isso é simulado no Godot através do efeito Glow.
Por padrão, mesmo que o efeito esteja ativado, ele será fraco ou invisível. Uma das duas condições precisa ocorrer para que ele seja de fato exibido:
A luz em um pixel ultrapassa o Limite do HDR (Aonde 0 é toda luz que o ultrapassa, e 1.0 são luzes além do valor Branco tonemapper). Normalmente, se espera que esse valor seja 1.0, mas ele pode ser reduzido para permitir que mais luz vaze. Há também um parâmetro extra, Escala do HDR, que permite escalonar (tornando mais clara ou escura) a luz que ultrapassar o limite.
A propriedade Bloom possui um valor maior que
0.0. Conforme esse valor aumenta, toda a tela é enviada ao processador de glow em maior intensidade.
Ambos farão a luz começar vazar para fora das áreas mais claras.
Assim que o Glow estar visível, ele pode ser controlado com alguns parâmetros extras:
Intensity é uma escala geral para o efeito; ele pode ser fortalecido ou enfraquecido (
0.0o remove completamente).Strength define a intensidade com que o filtro gaussiano é processado. Valores maiores fazem o filtro saturar e se expandir para fora. Em geral, não é necessário alterar este parâmetro, pois o tamanho pode ser ajustado de forma mais eficiente através dos Levels.
O Modo de Mistura do efeito também pode ser alterado:
Additive é o modo mais intenso, pois apenas adiciona o efeito de glow sobre a imagem sem qualquer mistura. Em geral, é forte demais para uso comum, mas pode produzir bons resultados com Bloom de baixa intensidade (criando um efeito semelhante a um sonho).
Tela garante que o brilho nunca ilumine mais do que ele mesmo e funciona muito bem como um todo.
Luz suave é o padrão e o mais fraco, produzindo apenas uma leve mudança de cor em torno dos objetos. Esse modo funciona melhor em cenas escuras.
Replace pode ser utilizado para desfocar a tela inteira ou depurar o efeito. Ele exibe apenas o efeito de glow, sem a imagem original abaixo.
Mix mistura o efeito de glow com a imagem principal. Isso pode ser usado para um maior controle artístico. O fator de mistura é controlado pela propriedade Mix, que aparece acima do modo de mesclagem (apenas quando o modo de mesclagem está definido como Mix). Valores altos do fator de mistura parecerão escurecer a imagem, a menos que o Bloom seja aumentado.
Para mudar o tamanho e forma do efeito de brilho, a Godot possibilita usar Níveis. Níveis menores tem um brilho mais forte entorno do objeto, e níveis mais altos são brilhos mais nebulosos na tela inteira:
A real força desse sistema, no entanto, é combinar níveis para criar padrões mais interessantes de brilho:
Por fim, o efeito de glow pode ser controlado usando um glow map, que é uma textura que determina o quão brilhante o glow deve ser em cada parte da tela. Esta textura pode opcionalmente ser colorida para tingir o efeito de glow com a cor do glow map. A textura é esticada para caber na viewport, portanto, recomenda-se usar uma proporção que corresponda à proporção mais comum da sua viewport (como 16:9) para evitar distorções visíveis.
Existem 2 casos de uso principais para uma textura de glow map:
Criar um efeito de "sujeira na lente" (lens dirt) usando uma textura com padrão de sujeira.
Tornar o glow menos forte em partes específicas da tela usando uma textura de gradiente.
Por padrão, o glow usa um filtro de redimensionamento bicúbico em plataformas desktop e um filtro de redimensionamento bilinear em plataformas móveis. O filtro de redimensionamento bicúbico resulta em maior qualidade com uma aparência menos pixelada (blocky), mas tem um custo de desempenho na GPU que pode ser significativo em gráficos integrados. O modo de escala pode ser controlado usando a configuração de projeto Rendering > Environment > Glow > Upscale Mode. Esta configuração só é eficaz ao usar os renderizadores Forward+ ou Mobile, já que o Compatibility usa uma implementação de glow diferente.
Utilizando glow em 2D
Existem 2 maneiras de utilizar glow em 2D:
Desde o Godot 4.2, você pode ativar o HDR para renderização 2D ao usar os métodos de renderização Forward+ e Mobile. Isso tem um custo de desempenho, mas permite um alcance dinâmico maior. Isso também permite que você controle quais objetos brilham usando suas propriedades individuais de Modulate ou Self Modulate (use o controle deslizante de Intensidade no seletor de cores). Ativar o HDR também pode reduzir o banding (linhas de gradiente visíveis) na saída da renderização 2D.
Para ativar o HDR em 2D, abra as Configurações do Projeto, ative Rendering > Viewport > HDR 2D e reinicie o editor.
Se você quiser maximizar o desempenho, pode deixar o HDR desativado para a renderização 2D. No entanto, você terá menos controle sobre quais objetos brilham.
Ative o glow, defina o modo de fundo do ambiente como Canvas e diminua o Glow HDR Threshold para que pixels que não estejam superbrilhantes ainda brilhem. Para evitar que os elementos da interface do usuário (UI) brilhem, torne-os filhos de um nó CanvasLayer. Você pode controlar quais camadas são afetadas pelo glow usando a propriedade Background > Canvas Max Layer do recurso Environment.
Exemplo de uso do glow em uma cena 2D. O HDR 2D está ativado, enquanto as moedas e o projétil têm sua propriedade Modulate aumentada para valores superbrilhantes usando o controle deslizante de Intensidade no seletor de cores.
Aviso
O renderizador 2D renderiza no espaço de cor linear se a configuração de projeto Rendering > Viewport > HDR 2D estiver ativada, portanto, a dica source_color também deve ser usada para samplers uniformes que são usados como entrada de cor em shaders canvas_item. Se isso não for feito, a textura parecerá lavada.
Se o HDR 2D estiver desativado, source_color continuará funcionando corretamente em shaders canvas_item, então é recomendado usá-lo quando relevante de qualquer forma.
Usar o espaço de cor linear também significa que a mistura alfa (alpha blending) mudará. Sprites com valores de opacidade baixos geralmente se tornam mais visíveis, e a renderização de fontes parecerá mais em negrito devido aos pixels de baixa opacidade do anti-aliasing da fonte se tornarem mais visíveis. Isso também afeta a própria renderização do editor.
Usando o glow para borrar a tela
O glow pode ser usado para borrar (blur) toda a viewport, o que é útil para o desfoque de fundo quando um menu está aberto. Apenas a renderização 3D será afetada, a menos que o modo de fundo do ambiente esteja definido como Canvas. Para evitar que os elementos da interface do usuário sejam borrados ao usar o modo de fundo Canvas, torne-os filhos de um nó CanvasLayer. Você pode controlar quais camadas são afetadas por esse efeito de desfoque usando a propriedade Background > Canvas Max Layer do recurso Environment.
Para usar o glow como uma solução de desfoque:
Ative o Normalized e ajuste os níveis de acordo com a preferência. Aumentar os índices de níveis mais altos resultará em uma imagem mais borrada. É recomendado deixar um único nível de glow em
1.0e deixar todos os outros níveis de glow em0.0, mas isso não é obrigatório. Observe que a aparência final variará dependendo da resolução da viewport.Defina Intensity para
1.0e Bloom para1.0.Defina o modo de mesclagem (blend mode) para Replace e HDR Luminance Cap para
1.0.
Exemplo de uso do glow para borrar a renderização 2D no fundo do menu
Névoa
Nota
Esta seção se refere apenas à névoa não volumétrica (non-volumetric fog). É possível usar tanto a névoa não volumétrica quanto o Névoa Volumétrica e Volumes de Névoa (Fog Volumes) ao mesmo tempo.
A neblina, assim como na vida real, faz com que objetos distantes desapareçam gradualmente em uma cor uniforme. Existem dois tipos de neblina no Godot:
Depth Fog: Este é aplicado com base na distância da câmera.
Height Fog: Este é aplicado a qualquer objeto abaixo (ou acima) de uma certa altura, independentemente da distância da câmera.
Ambos os tipos de neblina permitem ajustar suas curvas, tornando a transição mais ou menos acentuada.
Duas propriedades podem ser ajustadas para tornar o efeito de névoa mais interessante:
O primeiro é Sun Scatter, que utiliza a cor e a energia da DirectionalLight3D presente na cena atual. Ao olhar na direção da luz direcional (geralmente o sol), a neblina será colorida de acordo com a cor da luz para simular a luz solar atravessando a névoa.
O segundo é o Aerial Perspective, que tinge a cor da névoa de acordo com a cor do céu para misturar melhor o céu com o fundo. Valores mais altos resultarão em mais tingimento, com 1.0 substituindo totalmente a cor normal da névoa pela perspectiva aérea. Isso pode ser usado em fases grandes de mundo aberto para fornecer uma melhor sensação de profundidade ou para evitar descontinuidades de cor entre as cores do céu e da névoa.
Se ambos Sun Scatter e Aerial Perspective forem maiores que 0.0, o espalhamento do sol será aplicado em cima da perspectiva aérea.
Nota
A névoa pode fazer com que o banding apareça na viewport, especialmente em níveis de densidade mais altos. Consulte Faixas de cores para orientações sobre como reduzir o banding.
Névoa Volumétrica (Volumetric Fog)
A névoa volumétrica fornece um efeito de névoa realista para a cena, com a cor da névoa sendo afetada pelas luzes que a atravessam.
Ver também
Consulte Névoa Volumétrica e Volumes de Névoa (Fog Volumes) para obter a documentação sobre como configurar a névoa volumétrica.
Ajustes
Ao fim do processamento, A Godot oferece a possibilidade de fazer alguns ajustes padrão de imagem.
Ajustes básicos de BCS (Brilho/Contraste/Saturação)
O primeiro ajuste permite alterar as propriedades tradicionais de Brightness, Contrast e Saturation:
Correção de cores usando um gradiente 1D
O segundo ajuste é feito fornecendo um gradiente de correção de cor. Isso pode ser feito atribuindo um recurso GradientTexture1D à propriedade Color Correction, ou carregando uma textura que contenha um gradiente horizontal. A parte mais à esquerda do gradiente representa o preto na imagem original, enquanto a parte mais à direita do gradiente representa o branco na imagem original.
Um gradiente linear preto para branco como o seguinte não produzirá nenhum efeito:
Mas criar gradientes específicos permite mudar cada canal de cor para uma cor diferente:
Correção de cores usando uma LUT 3D
Uma textura de busca 3D (LUT - look-up-texture) também pode ser usada para correção de cor. Esta é uma textura especial usada para modificar cada canal de cor separadamente (vermelho, verde, azul). Esta imagem pode ter qualquer resolução, mas como a correção de cor consiste em dados de baixa frequência, recomenda-se manter resoluções baixas por motivos de desempenho. A resolução de uma textura LUT é tipicamente 17×17×17, 33×33×33, 51×51×51 ou 65×65×65 (o tamanho ímpar permite uma melhor interpolação).
Para que isso funcione, o modo de importação da textura de busca deve ser definido como Texture3D na aba Import (em vez de ser importada como uma Texture2D comum):
Certifique-se de configurar também o número de fatias (slices) horizontais e verticais a serem importadas. Se você não fizer isso, a textura LUT não afetará a viewport corretamente quando usada. Você pode pré-visualizar como a textura 3D foi importada dando um duplo clique nela na aba FileSystem e depois indo ao inspetor para folhear as camadas da textura.
Você pode usar este modelo de LUT neutro de 33×33×33 como base (clique com o botão direito e escolha Save as…):
Com o modelo de LUT acima, após alterar seu modo de importação para Texture3D, defina seu número de fatias Horizontal para 33 na aba Import e clique em Reimport. Se você carregar esta LUT na propriedade Color Correction, não verá nenhuma diferença visível por enquanto, pois esta textura foi projetada para ser um ponto de partida neutro.
Este modelo de LUT pode ser modificado em um editor de imagem para dar um clima diferente à imagem. Um fluxo de trabalho comum é colocar a imagem da LUT ao lado de uma captura de tela da viewport 3D do projeto e, em seguida, usar um editor de imagem para modificar tanto a imagem da LUT quanto a captura de tela ao mesmo tempo. A LUT pode então ser salva e aplicada ao motor de jogo para realizar a mesma correção de cor em tempo real.
Por exemplo, modificar o modelo de LUT em um editor de imagem para dar a ele um visual "sépia" resulta na imagem à direita:
Nota
Os ajustes e a correção de cor são aplicados após o mapeamento de tons (tonemapping). Isso significa que as propriedades de mapeamento de tons definidas acima ainda têm efeito quando os ajustes estão ativados.
Opções de atributos da câmera
O Godot possui dois tipos de atributos de câmera: físicos e práticos. Ao usar CameraAttributesPhysical em vez de CameraAttributesPractical, a profundidade de campo é calculada automaticamente a partir da distância de foco, distância focal e abertura dos atributos da câmera. Além disso, as opções de Frustum ficam disponíveis.
Profundidade de Campo / Desfoque distante
Este efeito simula a distância focal de câmeras. Ele desfoca objetos que estão além de uma determinada faixa. Possui uma Distance inicial e uma região de Transition (em unidades do mundo):
O parâmetro Amount controla a quantidade de desfoque. Para desfoques mais intensos, pode ser necessário ajustar a qualidade da profundidade de campo nas configurações avançadas do projeto para evitar artefatos.
Profundidade de campo / Próximo de desfoque
Este efeito simula a distância focal de câmeras. Ele desfoca objetos próximos à câmera (atuando na direção oposta ao desfoque distante). Possui uma Distance inicial e uma região de Transition (em unidades do mundo):
O parâmetro Amount controla a quantidade de desfoque. Para desfoques mais intensos, pode ser necessário ajustar a qualidade da profundidade de campo nas configurações avançadas do projeto para evitar artefatos.
É comum usar ambos os blurs juntos para focalizar a atenção do espectador em um determinado objeto, ou criar um efeito chamado "tilt shift" effect.
Exposição
Isso multiplica o brilho geral da cena visível a partir da câmera. Valores mais altos resultam em uma cena visualmente mais brilhante.
Exposição automática
Este recurso só está disponível ao usar o renderizador Forward+, e não os modos Mobile ou Compatibility.
Embora, na maioria dos casos, a iluminação e a texturização sejam fortemente controladas pelo artista, o Godot oferece suporte a uma implementação básica de alta faixa dinâmica por meio do mecanismo de exposição automática. Esse recurso é geralmente utilizado para conferir realismo ao combinar ambientes internos com pouca luz e áreas externas muito iluminadas. A exposição automática simula o comportamento de uma câmera (ou do olho humano) ao se adaptar a locais claros e escuros e às suas diferentes intensidades de luz.
Nota
A autoexposição precisa avaliar o brilho da cena a cada quadro, o que tem um custo de desempenho moderado. Portanto, recomenda-se deixar a Auto Exposure desativada se ela não fizer muita diferença na sua cena.
A forma mais fácil de usar a auto exposição é tendo certeza de que as luzes do exterior (ou outra luz forte) tenha uma energia maior que 1.0. Isso é feito ao ajustar seu multiplicador de Energia (na própria Luz). Para tornar isso consistente, o Céu geralmente precisa usar o multiplicador de energia também, para se alinhar a luz direcional. Normalmente, valores entre 3.0 e 6.0 são o suficiente para simular as condições de interior-exterior.
Ao combinar o Auto Exposure com o pós-processamento Brilho, os pixels que ultrapassam o White (Branco) do tonemap sangrarão para o buffer de brilho (glow buffer), criando o efeito de bloom típico da fotografia.
Os valores controláveis pelo usuário na seção Exposição Automática por padrão vêm valores sensatos, mas você ainda pode ajustá-los:
Scale: Valor utilizado para escalar a iluminação. Valores maiores produzem imagens mais brilhantes, enquanto valores menores produzem imagens mais escuras.
Min Sensitivity / Min Exposure Value: Luminância mínima para a qual a exposição automática tentará se ajustar (em ISO ao usar CameraAttributesPractical, ou em EV100 ao usar CameraAttributesPhysical). A luminância corresponde à média da luz de todos os pixels da tela.
Max Sensitivity / Max Exposure Value: Luminância máxima que a autoexposição tentará ajustar (em ISO ao usar CameraAttributesPractical, ou em EV100 ao usar CameraAttributesPhysical).
Speed: Velocidade com que a luminância se corrige. Quanto maior o valor, mais rapidamente a correção ocorre. Valores altos podem ser mais adequados para jogos rápidos, mas podem ser distrativos em alguns cenários.
Ao usar CameraAttributesPractical, a exposição é definida usando a sensibilidade definida em ISO, em vez de um valor de exposição em EV100. Os valores típicos de ISO estão entre 50 e 3200, sendo que valores mais altos resultam em uma exposição final maior. Na vida real, a fotografia diurna geralmente usa valores de ISO entre 100 e 800.
Ver também
Consulte Unidades físicas de luz e câmera se desejar usar unidades do mundo real para configurar a exposição, o campo de visão e la profundidade de campo da sua câmera.