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