关于 shader-programming
这是供 OpenClaw 使用的着色器编程技能,面向游戏与实时图形开发者,可生成、优化和调试 GLSL 或 HLSL 着色器,并检查版本与硬件兼容性。
主要功能
- 01生成 GLSL 和 HLSL 着色器代码
- 02分析并优化着色器性能
- 03诊断编译错误与运行时瑕疵
- 04检查着色器版本和硬件兼容性
适用场景
- 01为游戏视觉效果编写着色器
- 02降低移动游戏的 GPU 负载
- 03调试开发中的着色器问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill shader-programming安装后在 Claude Code 中输入/shader-programming确认已加载。
详细介绍
用途
此技能可让 OpenClaw 为游戏引擎中的实时图形生成、优化和调试 GLSL 或 HLSL 着色器。它专注于编写顶点、片段或计算着色器等任务,并确保与 OpenGL、Vulkan 或 DirectX 等 API 兼容。
适用场景
当用户请求用于视觉效果、性能调整或与游戏引擎集成的自定义着色器时,请使用此技能。具体包括:
- 优化手机游戏着色器以降低 GPU 负载(例如,尽量减少纹理采样)。
- 在 Unity 或 Unreal 等工具中创建水面渲染或后期处理等高级效果。
- 在游戏开发迭代过程中调试着色器代码。
主要功能
- 根据用户规格(例如,着色器类型、输入、输出)生成完整的 GLSL/HLSL 代码片段。
- 通过分析和修改代码来优化着色器,以提升性能,例如减少指令或使用精度限定符。
- 针对编译错误或运行时伪影等常见问题进行调试,并建议修复方法。
- 支持 GLSL 330 或 HLSL 5.0 等着色器版本,并检查硬件兼容性。
使用模式
要在 OpenClaw 中调用此技能,请使用命令:openclaw execute shader-programming --task <task-type> --input <details>。请务必指定着色器语言(例如,--lang glsl)和目标平台(例如,--platform vulkan)。生成代码时,请提供如下 JSON 配置:{"type": "vertex", "inputs": ["position", "normal"], "outputs": ["gl_Position"]}。请遵循以下模式:
- 从清晰的任务开始,例如:
openclaw execute shader-programming --task generate --lang hlsl --input '{"features": ["lighting"]}'。 - 优化时,通过管道传入现有代码,例如:echo "existing shader code" | openclaw execute shader-programming --task optimize --lang glsl。
- 如果需要身份验证(例如,使用外部编译器),请在运行命令前在环境中设置 $OPENCLAW_API_KEY。
常用命令/API
使用这些与 OpenClaw 集成的命令处理着色器任务:
- 编译 GLSL 着色器:通过 OpenClaw 的子进程运行
glslangValidator -V -o output.spv input.vert,例如:openclaw execute shader-programming --subprocess "glslangValidator -V -o myShader.spv myShader.vert"。 - 编译 HLSL 着色器:使用
fxc /T vs_5_0 /E MainVS /Fo compiled.bin input.hlsl,并通过openclaw execute shader-programming --subprocess "fxc /T vs_5_0 /E MainVS /Fo output.bin input.hlsl"调用。 - API 端点:向 OpenClaw 的 /api/shader/generate 发送 POST 请求并附带 JSON 负载,例如:curl -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"lang": "glsl", "type": "fragment"}' https://api.openclaw.com/api/shader/generate。
- 配置格式:输入使用 JSON,例如:{"shader": {"version": "330", "precision": "highp float"}}。检查错误时,在命令中加入 --validate 等标志,例如:
openclaw execute shader-programming --task validate --input "shader code" --flags "--validate"。
集成说明
将生成的着色器嵌入项目工作流,即可集成此技能。对于 Unity,将 GLSL/HLSL 文件保存到 Assets/Shaders 目录,并在材质中引用它们。在 Unreal 中,HLSL 使用 .usf 格式。请务必将 OpenClaw 调用封装在脚本中,例如,在 Python 中:import subprocess; subprocess.run(["openclaw", "execute", "shader-programming", "--task", "generate", "--lang", "glsl"])。为确保跨引擎兼容性,请在配置中指定配置文件(例如,移动端使用 {"profile": "gles3"})。如果使用外部工具,请确保已设置 $OPENCLAW_API_KEY,以便进行经过身份验证的 API 调用,避免失败。
错误处理
解析编译器输出以处理着色器错误。对于 GLSL,检查 glslangValidator 日志中是否包含类似 "ERROR: 0:5: 'undeclared identifier'" 的模式,然后建议修复方法,例如添加缺失的变量。在代码中:try { subprocess.run(["glslangValidator", "-V", "input.vert"]) } catch e { print(e.stderr); if "syntax error" in e.stderr: return "Fix line 5 with correct syntax" }。对于 HLSL,像 "error X3004: undeclared identifier" 这样的 fxc 错误需要重新声明变量。使用 OpenClaw 的内置验证:openclaw execute shader-programming --task debug --input "shader code",它会返回类似 {"errors": ["Line 10: missing semicolon"]} 的 JSON。始终记录带时间戳的错误,并使用修正后的输入重试。
具体使用示例
-
为简单的 3D 对象生成基本的 GLSL 顶点着色器:使用
openclaw execute shader-programming --task generate --lang glsl --input '{"type": "vertex", "inputs": ["vec3 position"]}'。这会生成:attribute vec3 aPosition; void main() { gl_Position = vec4(aPosition, 1.0); } -
优化现有的 HLSL 片段着色器以提升性能:运行
openclaw execute shader-programming --task optimize --lang hlsl --input "float4 PSMain(float2 uv : TEXCOORD) : SV_Target { return float4(uv, 0.0, 1.0); }"。输出可能为:float4 PSMain(float2 uv : TEXCOORD) : SV_Target { return float4(uv.x, uv.y, 0.0, 1.0); } // 通过内联进行优化。
图关系
- 相关:game-dev 集群(例如,与 graphics-programming 共享用于渲染管线的节点)。
- 链接到:graphics-programming(用于更广泛的 API 集成)、rendering-engines(用于特定引擎的着色器钩子)和 performance-optimization(用于着色器调优技术)。