> and spatial shaders for 3D, with vertex/fragment functions, uniforms (source_color, hint_range), TIME/UV animation, and screen-reading via hint_screen_texture. Use when authoring .gdshader files, writing fragment/vertex code, making 2D/3D visual effects, or porting 3.x shaders (SCREEN_TEXTURE, hint_color) to 4.x.
npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-shaders
Write canvas_item (2D) and spatial (3D) shaders in the Godot Shading Language, animate
with TIME/UV, expose uniforms, and read the screen. Targets Godot 4.3+.
.gdshader code or a ShaderMaterial: 2D effects (outline, dissolve,flash, water), 3D surface shaders (rim light, toon, scrolling UV), or screen-space
post effects.
When *not* to use: the cross-engine *concepts* of shading (UVs, vertex/fragment
theory) → shader-programming; particles/VFX nodes → general 3D; non-shader visuals.
shader_type canvas_item; for 2D(Sprite2D, TextureRect, anything CanvasItem) or shader_type spatial; for 3D
materials. (particles, sky, fog also exist.)
ShaderMaterial. Create a ShaderMaterial, assign your .gdshader,and put it on the node's material. Uniforms appear in the Inspector.
fragment() to set the output: COLOR (2D) or ALBEDO/EMISSION/ALPHA(3D). Optionally vertex() to move geometry and light() for custom lighting.
uniforms with hints (source_color, hint_range) so they areeditable and correctly color-managed.
TIME and sample textures with texture(tex, UV).material.set_shader_parameter("name", value).shader_type canvas_item;
uniform vec4 tint : source_color = vec4(1.0); // source_color = sRGB-correct color
uniform float scroll_speed : hint_range(0.0, 2.0) = 0.3;
void fragment() {
vec2 uv = UV;
uv.x += TIME * scroll_speed; // scroll horizontally over time
COLOR = texture(TEXTURE, uv) * tint; // TEXTURE = the node's texture
}
shader_type canvas_item;
uniform sampler2D noise : repeat_enable; // a NoiseTexture2D
uniform float amount : hint_range(0.0, 1.0) = 0.0;
void fragment() {
vec4 tex = texture(TEXTURE, UV);
float n = texture(noise, UV).r;
if (n < amount) {
discard; // cut the pixel away
}
COLOR = tex;
}
shader_type spatial;
uniform vec4 base_color : source_color = vec4(0.2, 0.5, 1.0, 1.0);
uniform vec3 rim_color : source_color = vec3(0.6, 0.8, 1.0);
uniform float rim_power : hint_range(0.5, 8.0) = 3.0;
void fragment() {
ALBEDO = base_color.rgb;
// VIEW and NORMAL are view-space built-ins; rim is strong at grazing angles.
float rim = pow(1.0 - dot(NORMAL, VIEW), rim_power);
EMISSION = rim_color * rim;
}
shader_type canvas_item;
// 4.x: declare the screen as a uniform with hint_screen_texture.
uniform sampler2D screen_tex : hint_screen_texture, filter_linear_mipmap;
uniform float blur : hint_range(0.0, 4.0) = 1.0;
void fragment() {
vec2 px = SCREEN_PIXEL_SIZE * blur;
vec4 c = texture(screen_tex, SCREEN_UV);
c += texture(screen_tex, SCREEN_UV + vec2(px.x, 0.0));
c += texture(screen_tex, SCREEN_UV - vec2(px.x, 0.0));
COLOR = c / 3.0;
}
Set a uniform from GDScript:
$Sprite2D.material.set_shader_parameter("amount", 0.7)
SCREEN_TEXTURE is removed — declareuniform sampler2D x : hint_screen_texture; and sample with SCREEN_UV. Color hints
hint_color→source_color; hint_albedo/hint_white→source_color;
hint_range stays. Depth/normal use hint_depth_texture / hint_normal_roughness_texture.
canvas_item write COLOR; in spatial write ALBEDO(and EMISSION, ALPHA, ROUGHNESS, METALLIC). Writing COLOR in a spatial shader
does nothing.
source_color are treated as raw linear values and lookwrong (washed/dark) because Godot won't sRGB-convert them.
ALPHA < 1.0 to blend, add a render mode or setthe material transparency; otherwise it's opaque/cut.
repeat_enable clamps. Add : repeat_enable tothe sampler uniform for tiling/scroll.
TIME is seconds since start and keeps growing — wrap with fract()/mod() forperiodic effects to avoid precision drift.
discard is costly on some hardware and breaks early-Z; prefer setting ALPHA/COLOR.a when you can.
varying, custom light(),vertex() displacement, and the visual shader graph, read
references/shading-language.md.
shader-programming — engine-agnostic shader concepts (GLSL/HLSL).godot-3d-essentials — materials, environment, and where spatial shaders live.godot-ui-control — applying shaders to UI for effects.Extract cognitive patterns and thinking fingerprints from any text. Use this skill when the user wants to analyze how someone thinks, understand cognitive style, profile writing or speech patterns, compare thinking styles between people, asks "what's my thinking style", "analyze how this person reasons", "cognitive profile", "thinking pattern", "DHDNA", "digital DNA", or wants to understand the mind behind any text. Also trigger when the user provides text and wants deeper insight into the author's reasoning patterns, decision-making style, or cognitive signature.
GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.
配图助手 - 把文章/模块内容转成统一风格、少字高可读的 16:9 信息图提示词;先定“需要几张图+每张讲什么”,再压缩文案与隐喻,最后输出可直接复制的生图提示词并迭代。
| YouTube clip generation and editing with automated workflows — pull source video, slice highlights, add captions, and export.
Best practices for writing Remotion animations that stay intuitive for agents and editable in Remotion Studio Visual Mode.
YouTube transcript extraction and content reformatting: given a YouTube video URL, opens the video's transcript panel, extracts all timestamped segments, and transforms the raw transcript into summaries, chapter outlines, Twitter/X threads, blog posts, or notable quotes. Use when the user shares a YouTube URL or video link, asks to summarize a video, get a transcript, extract content from a YouTube video, get YouTube captions, extract YouTube captions, download YouTube captions, transcribe YouTube video, YouTube video to text, make a thread from YouTube, YouTube to blog post, YouTube to article, pull transcript from YouTube, YouTube content extraction, convert YouTube to text, video to transcript. Also applies when user wants to reformat any YouTube video content into structured output (chapters, threads, blog articles, key quotes).
跨境电商全链路自动化工具。集成1688采集、智能清洗、多平台上架(微信小店/Shopify/TikTok)、推广方案(关键词/竞品分析/广告文案)、短视频创作(MoviePy竖屏视频)、一键代发、爆品挖掘(趋势聚合+6维评分)、闲鱼二手选品捡漏(品牌识别/虚标过滤/捡漏评分/价格监控)、全自动流水线(挖掘→采集→清洗→上架→推广→视频)。
生成历史名人现代访谈短视频文案,通过古今反差与网络热梗的爆笑结合,创作具有传播力的虚构趣味内容
Take gamedev-skills/godot-shaders from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.