Joepli wobble

Unlit wobbly shader based on the sokpop shader for Unity as seen in:


Shader code
shader_type spatial;
render_mode depth_draw_opaque, unshaded, world_vertex_coords;

uniform vec4 albedo : source_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform sampler2D texture_albedo : source_color,filter_linear_mipmap,repeat_enable;

uniform float normal_offset : hint_range(0, 1, 0.01) = 0.02;
uniform float time_influence : hint_range(0, 50) = 3;
uniform float y_div : hint_range(0, 10, .1) = 2.87;

void vertex() {
    VERTEX.x += sin(VERTEX.y * y_div + round(TIME * time_influence)) * normal_offset;
    VERTEX.y += sin(VERTEX.x * y_div + round(TIME * time_influence)) * normal_offset;
    VERTEX.z += sin(VERTEX.y * y_div + round(TIME * time_influence)) * normal_offset;

void fragment() {
	vec2 base_uv = UV;
	vec4 albedo_tex = texture(texture_albedo, base_uv);
	albedo_tex *= COLOR;
	ALBEDO = albedo.rgb * albedo_tex.rgb;
godot4, sokpop, stilized
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.

More from afk

Palette Swap using two textures

Sokpop Skybox


Newest Most Voted
Inline Feedbacks
View all comments
3 months ago

Is this something that has to be applied to every object individually or can it somehow be applied globally?

1 month ago

It’s giving me some errors on lines 4 and 5.
I’m not sure what needs to happen. It’s saying “Expect a valid type hint after ‘:’ ”
It’s not liking the colons in both of those lines.