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...
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 |
in float PI |
Uma constante |
in float TAU |
Uma constante |
in float E |
Uma constante |
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. |