diff options
| author | LLLL Colonq <llll@colonq> | 2026-05-02 16:16:04 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-05-02 16:16:04 -0400 |
| commit | d3bd791297d6aaa7abaf613aafbec99a7bb17823 (patch) | |
| tree | ace9b887fc57681dcbe8a468278cdc74ecff1b2c /src/assets/shaders/plane/frag.glsl | |
| parent | ea5929c74a4e01bcbc776832b5597fceb5261a31 (diff) | |
Eating soup!
Diffstat (limited to 'src/assets/shaders/plane/frag.glsl')
| -rw-r--r-- | src/assets/shaders/plane/frag.glsl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/assets/shaders/plane/frag.glsl b/src/assets/shaders/plane/frag.glsl new file mode 100644 index 0000000..a323cc8 --- /dev/null +++ b/src/assets/shaders/plane/frag.glsl @@ -0,0 +1,23 @@ +uniform sampler2D texture_data; + +uniform vec2 texture_scale; +uniform vec2 texture_offset; +uniform float fog_distance; +uniform vec3 fog_color; +uniform float opacity; + +in float vertex_depth; + +void main() +{ + vec2 tcfull = vec2(vertex_texcoord.x, 1.0 - vertex_texcoord.y); + vec4 texel = texture(texture_data, tcfull * texture_scale + texture_offset); + if (fog_distance > 0.0) { + float t = clamp(vertex_depth / fog_distance, 0.0, 1.0); + texel.rgb = mix(texel.rgb, fog_color, t); + if (t == 1.0) texel.a = 1.0; + } + texel.a *= opacity; + if (texel.a == 0.0) discard; + frag_color = texel; +} |
