5个不稳定版本
使用旧的Rust 2015
0.6.1 | 2018年6月2日 |
---|---|
0.6.0 | 2018年5月13日 |
0.5.1 | 2018年1月16日 |
0.5.0 | 2018年1月6日 |
0.4.1 | 2018年1月4日 |
#119 in 渲染
70KB
1.5K SLoC
Rusty Shadertoy 浏览器
为Mac打造的Shadertoy 浏览器和查看器,使用Rust 编写。
此应用程序使用Shadertoy REST API 搜索Shadertoy,然后在本地上传它们并使用shaderc-rs
和 spirv-cross
转换,以便在Mac上使用 metal-rs
本地渲染。
警告:某些Shadertoy着色器对GPU要求极高,可能导致系统无响应。
API查询通过shadertoy
包进行,该包也是此存储库的一部分,位于src/shadertoy
构建
首先确保已安装Rust。然后构建和运行就很简单了
$ git clone https://github.com/repi/shadertoy-browser
$ cd shadertoy-browser
$ cargo build --release
# this will download and view all shadertoys with "car" in the name
$ cargo run --release -- -s car
使用方法
键盘
LEFT
和RIGHT
- 在Shadertoy之间切换。SPACE
- 切换网格视图模式ENTER
- 打开shadertoy.com查看当前着色器
如果屏幕变红,则表示着色器无法构建。
可选的命令行设置
USAGE:
shadertoy-browser [FLAGS] [OPTIONS]
FLAGS:
--help Prints help information
-h, --headless Don't render, only download shadertoys
-V, --version Prints version information
-v, --verbose More verbose log output, including list of all shadertoys found
OPTIONS:
-k, --apikey <key> Set shadertoy API key to use. Create your key on https://www.shadertoy.com/myapps
[default: BtHtWD]
-f, --filter <filter>... Inclusion filters [values: VR, SoundOutput, SoundInput, Webcam, MultiPass,
MusicStream]
-y, --gridheight <grid_height> Grid height [default: 4]
-x, --gridwidth <grid_width> Grid width [default: 4]
-l, --limit <limit> The maximum number of shaders to download. -1 = no limit [default: -1]
-o, --order <order> Sort order [default: Popular] [values: Name, Love, Popular, Newest, Hot]
-h, --resheight <res_height> Window resolution height [default: 768]
-w, --reswidth <res_width> Window resolution width [default: 1024]
-s, --search <string> Search string to filter which shadertoys to get
-t, --threads <threads> How many threads to use for downloading & processing shaders. 0 = disables
threading, -1 = use all logical processors [default: -1]
要在其他应用程序或库中直接使用Rust shadertoy API,请参阅shadertoy
包,文档 和 README。
待办事项
此存储库和应用程序是Rust的一个实验性测试范围,并不旨在支持所有或所有Shadertoy。但以下是我打算在未来实现的一些功能
- 使用DX12和DXC在Windows上渲染
- 使用SPIRV的渲染后端
- 在网格视图中通过点击选择Shadertoy
- 基本的IMGUI用于交互式搜索和筛选
- 基于异步未来的Shadertoy客户端REST API版本
- 异步后台下载和构建Shadertoy
- 使用键值缓存存储而不是文件
- 支持使用纹理和缓冲区的Shadertoy
- 支持使用多个通路的Shadertoy
- 支持使用键盘输入的shadertoys
许可证
以下任一许可证下均可使用,由您选择
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
贡献
欢迎贡献!请注意,您的贡献被视为Apache-2.0/MIT双重授权。
依赖关系
~29–42MB
~779K SLoC