PromptBase
Upgrade
Close icon
General
Home
Marketplace
Create
Hire
Login
Chat
Sell
Explore

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); }
♊️ Gemini

Godot 4x VFX Shader Forge

Add to Cart
Instant accessInstant access
Usage rightsCommercial use
Money-back guaranteeMoney‑back
By purchasing this prompt, you agree to our terms of service
GEMINI-3.0-PRO
Tested icon
Guide icon
4 examples icon
Free credits icon
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
Report
Browse Marketplace