SuperAPI AI 工具集

shader-programming-glsl

设计与创作

查看项目

更新于 10-17 03:23

技能介绍

用途

Shader Programming GLSL 是一套面向 GPU 着色器编写的技能工作流,核心用途是指导用户使用 GLSL(OpenGL Shading Language)编写顶点与片元着色器,用于 WebGL、Three.js 或游戏引擎中的视觉效果实现。

主要能力

  • 讲解渲染管线中顶点着色器与片元着色器的分工:顶点着色器通过 gl_Position 将 3D 坐标变换到 2D 屏幕空间,片元着色器通过 gl_FragColor 为单个像素着色。
  • 说明 uniform(由 CPU 传入、对所有顶点/片元恒定的数据)与 varying(从顶点着色器插值传递到片元着色器的数据)的用法,例如通过 varying 传递 UV 坐标实现渐变。
  • 介绍向量 swizzling 与向量运算,如 color.rgb、color.zyx 等分量访问与重排。
  • 覆盖常见视觉效果方向:后期处理(模糊、泛光、颜色校正)、程序化生成纹理或几何体、自定义视觉效果。
  • 给出性能优化最佳实践:用 mix() 做线性插值、用 step()/smoothstep() 做阈值与软边以减少 if 分支、用 vec4 打包数据减少内存访问、避免循环中重分支、把常量在 CPU 侧预计算并以 uniform 传入。

使用方式

资料以技能包形式组织,包含 SKILL.md 等工作流文件,以及 references、examples、scripts、agents、assets 等支持资源家族(资料中对应路径均标记为 n/a,即暂无具体文件)。使用流程为:先确认任务目标与范围,再按渐进披露原则只加载会实质影响结果的上游文件,并保持来源信息(metadata.json 的 external_source 块、ORIGIN.md)可见。资料给出的示例包括:直接调用该技能处理任务、基于来源信息做审阅、执行前先缩小支持文件范围、以及为代码评审构建审阅材料包。

适用场景

  • 在 WebGL、Three.js 或游戏引擎中创建自定义视觉效果。
  • 优化图形渲染性能。
  • 实现后期处理效果(模糊、泛光、颜色校正)。
  • 在 GPU 上程序化生成纹理或几何体。

限制

  • 仅在任务明确匹配上述范围时使用;不应把输出当作具体环境验证、测试或专家评审的替代品。
  • 当缺少必要输入、权限、安全边界或成功标准时,应停止并请求澄清。
  • 若任务转向调试、架构、设计、安全或发布编排等更适合其他专门技能的方向,应按相关资料中的关联技能部分进行移交。
  • 常见问题排查:着色器能编译但屏幕全黑时,检查 gl_Position.w 是否正确(通常为 1.0)、uniform 是否真的由宿主程序设置、UV 坐标是否在 [0,1] 范围内。