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.

Shaders de neblina (Fog shaders)

Shaders de névoa (fog shaders) são usados para definir como a névoa é adicionada (ou subtraída) de uma cena em uma determinada área. Shaders de névoa são sempre usados em conjunto com FogVolumes e névoa volumétrica. Shaders de névoa possuem apenas uma função de processamento, a função fog().

A resolução dos shaders de névoa depende da resolução da grade de froxels da névoa volumétrica. Consequentemente, o nível de detalhe que um shader de névoa pode adicionar depende de quão perto o FogVolume está da câmera.

Os shaders de névoa são uma forma especial de shader de computação que é executada uma vez para cada froxel tocado por uma caixa delimitadora alinhada aos eixos do FogVolume associado. Isso significa que até mesmo os froxels que mal tocam um determinado FogVolume ainda serão utilizados.

Embutidos

Valores marcados como in são somente leitura. Valores marcados como out podem opcionalmente ser gravados e não conterão necessariamente valores sensíveis. Samplers não podem ser gravados, portanto não são marcados.

Built-ins globais

As funções integradas globais estão disponíveis em todos os lugares, incluindo em funções personalizadas.

Integrado

Descrição

in float TIME

Tempo global desde que o motor foi iniciado, em segundos. Ele se repete a cada 3.600 segundos (o que pode ser alterado com a configuração rollover). É afetado pelo time_scale, mas não pelo congelamento (pausa). Se você precisar de uma variável TIME que não seja afetada pela escala de tempo, adicione seu próprio uniform global de shader e atualize-o a cada quadro.

in float PI

Uma constante PI (3.141592). A razão entre a circunferência de um círculo e seu diâmetro e o número de radianos em uma meia volta.

in float TAU

Uma constante TAU (6.283185). Equivalente a PI * 2 e o número de radianos em uma volta completa.

in float E

Uma constante E (2.718281). O número de Euler, a base do logaritmo natural.

Nativos de neblina

Todos os valores de saída dos volumes de névoa se sobrepõem uns aos outros. Isso permite que os FogVolumes sejam renderizados de forma eficiente, pois todos podem ser desenhados de uma só vez.

Integrado

Descrição

in vec3 WORLD_POSITION

Posição da célula froxel atual no espaço do mundo.

in vec3 OBJECT_POSITION

Posição do centro do FogVolume atual no espaço do mundo.

in vec3 UVW

UV tridimensional, usada para mapear uma textura 3D ao FogVolume atual.

in vec3 SIZE

Tamanho do FogVolume atual quando o seu formato (shape) possui um tamanho.

in vec3 SDF

Campo de distância sinalizado até a superfície do FogVolume. Negativo se estiver dentro do volume, positivo caso contrário.

out vec3 ALBEDO

Valor de cor de base de saída, interage com a luz para produzir a cor final. Só é gravado no volume de névoa se for usado.

out float DENSITY

Valor de densidade de saída. Pode ser negativo para permitir a subtração de um volume de outro. A densidade deve ser usada para que o shader de névoa grave qualquer coisa.

out vec3 EMISSION

Valor da cor de emissão de saída, adicionado à cor durante a passagem de luz para produzir a cor final. Só é gravado no volume de névoa se for usado.