9个版本
| 0.1.8 | 2023年10月4日 |
|---|---|
| 0.1.7 | 2023年10月3日 |
| 0.1.6 | 2023年2月11日 |
| 0.1.5 | 2022年11月7日 |
| 0.1.1 | 2021年5月25日 |
#118 in 图形API
38 个月下载量
215KB
407 行
wgsl-playground
这是一个简单的实验平台,用于使用WGSL片段着色器进行实验。通过传递一个 wgsl 文件来调用它。程序然后在提供的 wgsl 文件中查找名为 fs_main 的片段着色器,并在窗口中渲染它。这与shadertoy 的功能类似,只是使用 WGSL 而不是 GLSL,并且是在桌面上而不是在浏览器中。
wgsl-playground 还会监视文件的编辑。每次你保存文件时,它都会使用更新的着色器重新构建管道,并将其交换到重绘过程中。
在底层,它使用 wgpu 进行渲染,并使用 naga 进行验证。
请注意,WGSL 仍然是一个不断发展的规范。 此工具是为那些想要学习一些当前形式的 WSGL 的人准备的。

在 examples 目录中包含了一些示例着色器。上面的截图显示了 uniforms.wgsl 着色器。
用法
使用 cargo 安装
cargo install wgsl-playground
要运行现有的 .wgsl 文件,在命令行中传递它
wgsl-playground myfragshader.wgsl
要创建一个新的着色器文件,传递 -c 标志和要创建的文件名。这很有用,因为它提供了访问统一变量和顶点数据的样板代码。
环境
着色器接收以下顶点输入
- 此片段的裁剪空间 (x, y) 坐标作为
vec2<f32>,位置为location=0。 - 该片段的设备坐标窗口相对坐标是一个
vec4<f32>,在builtin(position)(即等于gl_Position)。
以下也是可用的统一变量
- 鼠标光标位置的裁剪空间(x, y)坐标是一个
vec2<f32>。只有当鼠标光标在窗口范围内时才会更新。起始值为(0.5, 0.5)。 - 程序开始以来的秒数(分数)作为一个
f32。当着色器重新加载时,它不会重置。
依赖项
~13–45MB
~728K SLoC