用于创建和适配 Unreal Engine 5 插件中的 Shader 代码,覆盖 Global Shader(VS/PS)、Compute Shader、Ray Tracing Shader,包括 .usf 文件、C++ Shader 注册、参数结构体、模块初始化和版本差异适配说明。适用于需要脚手架、移植、排错或评审 UE5 插件 Shader 实现(如 IMPLEMENT_GLOBAL_SHADER、SHADER_USE_PARAMETER_STRUCT、AddShaderSourceDirectoryMapping、RDG Compute Dispatch、光追插件集成)时。
用这份 skill 生成或适配 UE5 插件 Shader 代码,覆盖三类常见场景:
优先参考 Epic 官方文档和目标仓库中已能工作的本地示例,不要优先套用泛化教程片段。
.usf shader file in plugin Shaders/Private/.IMPLEMENT_GLOBAL_SHADER.建议执行顺序:
AddShaderSourceDirectoryMapping(...)Shaders/Private/ 下创建 .usfIMPLEMENT_GLOBAL_SHADER联网时优先看这些(作为主参考):
Shaders in PluginsCreating a New Global Shader as a PluginCreating a Compute Shader - C++How to Create a Custom Ray Tracing Shader as a Plugin对社区光追示例要默认按“版本相关”处理,几乎一定需要改。
在生成新代码前,先搜索目标插件里已有的 Shader 写法。
可用搜索命令:
rg -n "AddShaderSourceDirectoryMapping|IMPLEMENT_GLOBAL_SHADER|DECLARE_GLOBAL_SHADER|SHADER_USE_PARAMETER_STRUCT|SF_RayGen" Source -g "*.cpp" -g "*.h"
只读当前任务需要的参考文件:
references/global-shader.md for regular VS/PS Global Shaderreferences/compute-shader.md for Compute Shader (RDG-first)references/ray-tracing-shader.md for Ray Tracing Shader (RayGen-first)在说“写完了”之前,必须逐项检查:
*.Build.cs dependencies include required modules (RenderCore, RHI, Renderer, Projects, etc.) for the chosen path.StartupModule() registers plugin shader directory mapping with AddShaderSourceDirectoryMapping(...)."/Plugin/MyPlugin/Private/MyShader.usf").IMPLEMENT_GLOBAL_SHADER(...) matches the .usf function exactly.ShouldCompilePermutation(...) gates correctly for platform and feature support.#if RHI_RAYTRACING (or project-specific equivalent).UE5 不同小版本的 Shader API 变化较多,按下面规则处理:
翻译后的执行原则:
当用户让你“写一份 Shader 代码”时,输出至少包含:
.cpp, .h, .usf, and sometimes *.Build.cs).usf) with matching entry point names/Plugin/...) after moving .usf filesAddShaderSourceDirectoryMapping(...)IMPLEMENT_GLOBAL_SHADER entry point name mismatch*.Build.cs