#lisp #shader #glsl #reload #shdergraph

bin+lib shadergraph

使用热代码重载的 Lisp 和 GLSL 创建不断演变的艺术图像

1 个不稳定版本

0.1.0 2021 年 9 月 7 日

#863 in 图形 API

MIT 许可证

7MB
2K SLoC

Rust 1.5K SLoC // 0.1% comments GLSL 576 SLoC // 0.1% comments

shadergraph

Shadergraph 是一个用于构建热代码重载着色器管道的工具。有关如何开始的教程,请参阅介绍性博客文章shadergraph lisp 语言文档

用法

通过 cargo install shadergraph 安装 shadergraph 后,通过运行来测试是否正确安装

shadergraph --help

这将打印一些用法信息。要创建一个新项目,运行

shadergraph new path/to/project

这将创建一个新示例项目在指定的目录。要运行 shadergraph,cd 进入项目目录并运行

shadergraph run

这将打开一个新窗口并开始运行您的图。如果您想进行更改,请不要关闭窗口;相反,在您选择的编辑器中打开项目 - 图将自动更新。

如果在重新加载时遇到构建错误,shadergraph 将记录错误并继续执行旧图。

更高级的用法

您可以使用 - 标志将输入图像和视频传递给 shadergraph。此标志接受照片/视频的路径列表 - 您必须传递与 shader.graph 中指定的 (input ...) 数量相同的输入照片/视频。

一旦您有一个漂亮的 shadergraph,要渲染出 png 序列,请使用 render 子命令。此子命令与 run 完全相同,但需要一个输出目录。要将生命游戏演示渲染为 gif,运行

mkdir out
shadergraph render demos/life -o out -s 30 -e 430
ffmpeg -i "out/frame-%4d.png" -framerate 30 life.gif

您应该看到类似这样的东西(它可能有点复杂)

祝您快乐编码!

依赖项

~23–38MB
~405K SLoC