diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-10-09 22:07:52 +0200 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-10-09 22:07:52 +0200 |
| commit | 030724a9aea346e4a9843d5842fb28c6d6c4cf1a (patch) | |
| tree | f06fb84aaef64b2f4e2d81b3d2d3eef71bad83ec /shaders/gl_phosphor_persistence_fragment.glsl | |
| parent | 412b2ef851516c1de8ba5006ddd284192cbcaf9b (diff) | |
Rearrangement and refactoring and optimizations and more accuracy
Diffstat (limited to 'shaders/gl_phosphor_persistence_fragment.glsl')
| -rw-r--r-- | shaders/gl_phosphor_persistence_fragment.glsl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/shaders/gl_phosphor_persistence_fragment.glsl b/shaders/gl_phosphor_persistence_fragment.glsl new file mode 100644 index 0000000..1633a2e --- /dev/null +++ b/shaders/gl_phosphor_persistence_fragment.glsl @@ -0,0 +1,17 @@ +out vec4 outcolor; +in vec2 frag_texture_coord; + +uniform sampler2D current_frame; +uniform sampler2D previous_frame; +uniform float decay; + +void main() { + vec3 current = texture(current_frame, frag_texture_coord).rgb; + vec3 previous = texture(previous_frame, frag_texture_coord).rgb; + + // Mix current frame with decayed previous frame + // Higher decay = more trail (0.5 = subtle, 0.7 = noticeable) + vec3 result = max(current, previous * decay); + + outcolor = vec4(result, 1.0); +} |
