用途
该技能面向 Godot 引擎的着色器开发,提供专家级的着色器模式、反模式清单与可直接使用的脚本模板,重点解决批处理(batching)安全、深度预通道(depth prepass)兼容、阴影与屏幕空间效果等高性能渲染问题。
主要能力
技能以“场景 → 脚本触发器”的方式组织,针对匹配效果强制使用对应脚本,包括:
- 逐实例受击闪光且不破坏批处理:instance_uniform_hitflash.gdshader
- 植被风摆与阴影:foliage_wind_sway_expert.gdshader(使用 alpha scissor/hash,而非无条件 discard)
- 保留深度预通道的溶解:dissolve_scissor_expert.gdshader
- 后处理像素化/风格化:screenspace_hex_pixelate.gdshader
- 全屏四边形(Reversed-Z 安全):screenspace_full_quad.gdshader
- 深度到世界坐标重建(用于水/雾):depth_world_reconstruction.gdshader
- 玩家交互压平草地:global_grass_flatten.gdshader
- 无 UV 的悬崖/岩石三平面映射:triplanar_world_mapping.gdshader
- 实例网格上的唯一纹理:instance_texture_array.gdshader
- 顶点位移地形:noise_terrain_displacement.gdshader
- 运行时动画 uniform:shader_parameter_animator.gd
- VFX 移植模板:vfx_port_shader.gdshader
- 着色器预热加载:shader_warmup_loader.gd
使用方式
技能强调“渐进式披露”:仅在研究特定 API 时打开官方文档链接,仅在将工作路由到对等领域时加载相关技能,不要预加载整个知识网络。脚本按场景强制匹配使用,例如植被风摆必须使用 alpha scissor/hash 方案而非无条件 discard。
适用场景
适用于 Godot 项目中需要高性能、批处理友好的着色器实现,包括:大规模植被渲染、逐实例受击反馈、溶解与镂空效果、屏幕空间后处理、深度重建、三平面映射、实例纹理数组、地形位移、VFX 移植以及着色器预热等。
限制与注意事项
技能明确列出多项“绝不要做”的规则,例如:不要为优化而无条件使用 discard;不要在高性能着色器中对动态状态使用 if/else;不要精确比较浮点数;不要对大规模植被使用标准 Alpha Blending;不要在 4.3+ 中为全屏四边形硬编码 POSITION 为 vec4(VERTEX, 1.0);不要为改一个颜色/值而复制材质;不要在没有速度乘数的情况下使用 TIME;不要忘记为颜色 uniform 添加 hint_source_color;不要把可在 vertex() 中完成的复杂数学放在 fragment() 中;不要用 #define 宏做动态运行时开关;不要忘记归一化向量;不要在没有边界检查或 fract() 的情况下修改 UV。
前置与关联
前置技能:godot-project-foundations、godot-resource-data-patterns。互补技能:godot-3d-materials、godot-3d-lighting、godot-particles、godot-2d-animation、godot-camera-systems、godot-performance-optimization、godot-debugging-profiling。下游消费方:godot-procedural-generation、godot-3d-world-building、godot-genre-open-world。主入口:godot-master。
参考文档
技能引用官方文档包括:着色器介绍、着色语言、CanvasItem 着色器、Spatial 着色器、第一个 2D 着色器、第一个 3D 着色器、ShaderMaterial、自定义后处理、高级后处理、计算着色器、使用 VisualShaders、GPU 优化。深度配方文档包括:2d-effect-recipes.md、3d-and-postfx-recipes.md、uniforms-and-builtins.md、expert-advanced-patterns.md。