#shadertoy #shader #glsl #glium #opengl #graphics

app shadercrab

一个简单的单缓冲 Shadertoy 模拟器

3 个版本

0.1.2 2021 年 12 月 28 日
0.1.1 2021 年 12 月 28 日
0.1.0 2021 年 12 月 28 日

#219 in 渲染

MIT/Apache

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许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。

依赖

约7-11MB
约211K SLoC