Just Chromatic Aberration

This is a little shader to create a chromatic aberration without any other effect, you can control de X and Y displacement of  each color (RGB) individually.

Shader code
// chromatic aberration
//---------------------------------

shader_type canvas_item;

uniform vec2 r_displacement = vec2(3.0, 0.0);
uniform vec2 g_displacement = vec2(0.0, 0.0);
uniform vec2 b_displacement = vec2(-3.0, 0.0);


void fragment()
{
	float r = texture(SCREEN_TEXTURE, SCREEN_UV + vec2(SCREEN_PIXEL_SIZE*r_displacement), 0.0).r;
	float g = texture(SCREEN_TEXTURE, SCREEN_UV + vec2(SCREEN_PIXEL_SIZE*g_displacement), 0.0).g;
	float b = texture(SCREEN_TEXTURE, SCREEN_UV + vec2(SCREEN_PIXEL_SIZE*b_displacement), 0.0).b;
	
	COLOR = vec4(r, g, b, 1.0);
}
Tags
2d, 80, 90, chromatic aberration, color abberration, tv
The shader code and all code snippets in this post are under CC0 license and can be used freely without the author's permission. Images and videos, and assets depicted in those, do not fall under this license. For more info, see our License terms.

Related shaders

Double Vision w/ chromatic aberration

Chromatic Aberration Vignette

Chromatic Abberation (With Offset)

Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
YourFriendJoey
5 months ago

Godot 4.x compatibility:

add following line after shader_type canvas_item:

uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;