Prompt Details
Model
(gemini-3.0-pro)
Token size
306
Example input
[Shader Type]: canvas_item
[Target Object]: Fullscreen ColorRect
[Effect Description]: Underwater distortion effect that distorts the screen content behind the object (SCREEN_TEXTURE). Add a sine-wave motion for liquid feel, a blue tint, and subtle chromatic aberration on edges.
Example output
shader_type canvas_item;
// Godot 4.x requirement for reading the screen behind the object
uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_linear_mipmap;
// --- UNIFORMS --- //
group_uniforms Wave_Settings;
// Controls how fast the water ripples move
uniform float wave_speed : hint_range(0.0, 10.0, 0.1) = 2.0;
// Controls the density of the ripples (higher = more ripples)
uniform float wave_freq : hint_range(0.0, 50.0, 0.1) = 10.0;
// Controls the physical distance of the distortion (strength)
uniform float wave_amp : hint_range(0.0, 0.05, 0.001) = 0.005;
group_uniforms Chromatic_Aberration;
// Strength of the color channel separation at the edges of distortion
uniform float aberration_amount : hint_range(0.0, 10.0, 0.1) = 1.0;
group_uniforms Water_Tint;
// The color of the water overlay
uniform vec4 tint_color : source_color = vec4(0.0, 0.2, 0.8, 1.0);
// How strongly to mix the tint with the original screen (0.0 = clear, 1.0 = solid color)
uniform float tint_intensity : hint_range(0.0, 1.0, 0.01) = 0.4;
void fragment() {
// 1. MATH OPTIMIZATION: Calculate Wave Motion
// We use simple algebraic sine/cosine functions based on Time and UV coordinates.
// We offset X based on Y and vice-versa to create a non-linear "wobbly" feel.
float time_factor = TIME * wave_speed;
vec2 wave_offset;
// Sin wave on X axis modified by Y position
wave_offset.x = sin(SCREEN_UV.y * wave_freq + time_factor) * wave_amp;
// Cos wave on Y axis modified by X position (adds complexity to the motion)
wave_offset.y = cos(SCREEN_UV.x * wave_freq + time_factor) * wave_amp;
// Apply the wave offset to the base Screen UV
vec2 distorted_uv = SCREEN_UV + wave_offset;
// 2. CHROMATIC ABERRATION
// Instead of one texture lookup, we perform three with slight offsets.
// This simulates light refracting differently for R, G, and B wavelengths.
// We scale the offset by SCREEN_PIXEL_SIZE to ensure consistency across resolutions.
vec2 aber_offset = vec2(aberration_amount, 0.0) * SCREEN_PIXEL_SIZE;
// Read Red channel shifted left
float r = texture(screen_texture, distorted_uv - aber_offset).r;
// Read Green channel centered
float g = texture(screen_texture, distorted_uv).g;
// Read Blue channel shifted right
float b = texture(screen_texture, distorted_uv + aber_offset).b;
vec3 screen_color = vec3(r, g, b);
// 3. COMPOSITION & TINT
// Mix the distorted screen color with the water tint color.
// We use the tint_color's alpha combined with intensity for the mix weight.
vec3 final_color = mix(screen_color, tint_color.rgb, tint_intensity);
COLOR = vec4(final_color, 1.0);
}
By purchasing this prompt, you agree to our terms of service
GEMINI-3.0-PRO
Instantly generate production-ready Godot 4.x shaders. Optimized for Gemini 3.0 Pro, this prompt writes clean, performant GLSL code with automatic 'group_uniforms' for a professional Inspector UI.
Capable of creating:
- Math-based Holograms & Glitches
- Screen-Reading Water & Distortion
- UI Shine & texture effects
Stop writing boilerplate. Get copy-paste ready VFX code that works immediately. Strictly follows Godot 4.x syntax.
...more
Added over 1 month ago
