着色器开发工具

用于处理Minecraft核心着色器、后期着色器、后期效果和渲染管线的客户端Fabric模组,无需重启游戏或重新加载资源包。

游戏机制

Shader DevTools

客户端 Fabric 模组,用于开发 Minecraft 核心着色器、后处理着色器、后处理效果和渲染管线,无需重启游戏或重新加载资源包。

https://github.com/seailz/shader-devtools

功能

  • 按需重新加载着色器(核心着色器和后处理着色器),无需完整重新加载资源包
  • 在游戏内实时编辑着色器文件,支持语法高亮
  • 当着色器存在于多个资源包中(包括原版)时,可以单独编辑每个资源包中的版本(原版着色器除外,它们是只读的)并强制加载它们
  • 可以快速可视化着色器正在渲染的内容
  • 解析后处理效果 JSON 文件,并支持编辑它们
  • 解析并可视化所有渲染管线
  • 可以覆盖 Globals uniform 缓冲区中的任意值

着色器调试日志

你可以在支持的着色器程序中添加类似 dbg("time=" + GameTime); 的调用,其值将被写入 logs/latest.log。

注意事项:

  • 在 OpenGL 和 Vulkan 上均可使用
  • 支持 ASCII 字符串字面量
  • 支持顶层字符串拼接,因此 "abc" + someValue 可以正常工作
  • 常见标量和向量值会自动转换为文本

警告:

  • dbg(...) 在热着色器(尤其是片段着色器)中开销仍然很大
  • 诸如 GameTime 这类频繁变化的值如果被大量记录,可能会降低 FPS