3 个版本
0.1.2 | 2021 年 12 月 28 日 |
---|---|
0.1.1 | 2021 年 12 月 28 日 |
0.1.0 | 2021 年 12 月 28 日 |
#219 in 渲染
18KB
250 行
Shadercrab
一个简单的单缓冲 Shadertoy 模拟器
安装
使用 cargo(Rust 的包管理器):cargo install shadercrab
从源代码(也需要 cargo):克隆此仓库,并运行 cargo build --release
来编译程序
使用方法
如果使用 cargo 安装且在路径中:shadercrab "path/to/shader"
从源代码:cargo run --release -- "path/to/shader"
Shadercrab 接受单个文件路径作为参数。然后编译此着色器并将其显示在输出窗口中。当按下 R 键或文件被修改时,着色器将被重新加载。
着色器是按照 shadertoy 处理 "main" 选项卡的方式进行的,这意味着它需要此函数:mainImage(out vec4 fragColor, in vec2 fragCoord)
其中
fragColor
是像素的输出颜色,在 sRGB 空间中fragCoord
是像素坐标,左下角为 (0, 0),右上角为(window_width, window_height)
以下常量也被定义
float iTime
是着色器(重新)加载后经过的时间,以秒为单位int iFrame
是已渲染的帧数vec3 iResolution
其中 xy 是窗口的分辨率,z 是宽高比(y/x)vec4 iMouse
其中 xy 是鼠标光标位置,以像素坐标表示,zw 表示鼠标按钮是否按下。可以通过拖动鼠标来更改鼠标位置
许可证
许可方式如下
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。
依赖
约7-11MB
约211K SLoC