mcpField
T
threejs-shaders

threejs-shaders

github.com/cesartevisual开发11384 次安装7 周前更新
代码仓库

关于 threejs-shaders

threejs-shaders 是面向 Three.js 自定义着色器开发的指导技能,帮助开发者在现有项目架构和已安装版本中实现着色效果。内容涵盖着色器编写、渲染细节、兼容性检查与验证。

主要功能

  1. 01识别渲染器与着色器管线
  2. 02规范坐标空间与法线变换
  3. 03稳定更新 uniforms
  4. 04分步构建并检查着色器
  5. 05处理位移、阴影与包围体

适用场景

  1. 01为 Three.js 项目添加自定义着色效果
  2. 02排查着色器编译或链接错误
  3. 03验证阴影、拾取及移动端精度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cesartevisual/threejs-skills --skill threejs-shaders

安装后在 Claude Code 中输入/threejs-shaders确认已加载。

详细介绍

自定义着色器

使用项目已安装的版本和现有架构。这些说明是对用户任务的补充,不授权进行无关更改或外部操作。

编写着色器代码前,先确认渲染器、已安装的版本、着色器语言和材质扩展机制。在兼容的管线中使用 GLSL ShaderMaterial/RawShaderMaterial;不要假定 WebGL 着色器可以直接用于 WebGPU 材质。

明确记录每个位置、法线、光线向量和 varying 所处的坐标空间。在非均匀缩放下正确变换法线。保持 uniform 稳定,更新其值,而不是每帧重建材质。避免不必要的逐片元运算和动态着色器变体。

逐步构建效果:恒定输出、坐标、纹理采样,然后再实现效果。启用完整错误信息,检查编译和链接日志。对零向量的归一化、接近零的除法以及未定义的 smoothstep 范围进行防护。导数需要在适当的阶段使用,并确保获得支持。

置换顶点时,应更新法线或计算合适的着色结果,扩展边界以支持剔除,并考虑为阴影匹配相应的深度/距离材质。除非提供相应方案,否则 CPU 射线检测仍使用 CPU 几何体。

将 onBeforeCompile 和着色器块视为对版本敏感的内容。自定义编译变体需要不同程序时,使用合适的自定义程序缓存键,并保留可复现的着色器测试样例以供升级使用。在输出边界验证显示颜色和色调映射。

检查极端参数值、调整大小、移动设备精度、透明对象重叠、阴影和拾取。若此功能为可选功能,应保留普通材质作为回退方案。

API 参考

请查阅官方文档,了解准确的签名和特定版本的行为。如果无法访问文档,请检查已安装的类型定义和源代码,并说明任何尚未确定之处。

评论

支持 Markdown