#shaders #glsl-shader #vulkan #glsl #graphics #creative

pilka_winit

将winit分离为单独的crate,嗯嗯

5个版本 (3个破坏性更新)

0.5.0 2021年8月31日
0.3.1 2021年3月13日
0.2.3 2021年2月20日
0.1.1 2021年2月20日
0.1.0 2021年2月20日

#17 in #creative


3 个crate中使用 (通过 pilka_incremental)

GPL-2.0-or-later

3KB

pilka 🔩

Crates.io

Pilka是一个跨平台的实时编码工具,用于创建着色器*演示,类似于 BonzomaticKodeLifesh4der-jockey

可用功能

  • 热重载
  • 保存着色器
  • 截图
  • 录制视频
  • 后处理计算管线

preview

如何使用

在当前状态下,pilka尝试查找shaders文件夹中的文件shader.vertshader.frag,如果失败,pilka将为您生成默认设置。然后在您喜欢的代码编辑器(VS、emacs、vim、ed等)中打开着色器,每次保存后pilka都会获取更改。

控制

  • F1: 打印帮助
  • F2: 切换播放/暂停
  • F3: 暂停并后退一帧
  • F4: 暂停并前进一帧
  • F5: 从帧0重新播放(TimePos = 0)
  • F6: 打印参数
  • F10: 保存着色器
  • F11: 截图
  • F12: 开始/停止录制视频
  • ESC: 退出应用程序
  • 箭头键: 改变Pos

参数

(per-draw-update)

名称 类型 范围
位置 vec3 (-∞, ∞)
时间 float [0, ∞)
分辨率 vec2 [0, a]
鼠标 vec2 [-1, 1]
鼠标按下 bool
uint
时间差 float
记录周期 float
前帧 纹理

标志

  • --record f32 - 指定录制视频的持续时间
  • --size u32xu32 - 指定窗口大小并锁定调整大小

要求

需要Vulkan SDK。

在最新的macOS上,为了捕获声音输入(以便生成FFT纹理),您需要:打开系统偏好设置,点击“安全性与隐私”,然后点击“隐私”标签页,再点击“麦克风”菜单项。确保 pilka 在列表中并已勾选... 嗯,可能吧。我没有macOS。

安装

cargo install pilka

您还可以通过下载源代码并在本地构建来安装应用程序。

# or through ssh [email protected]:pudnax/pilka.git
git clone https://github.com/pudnax/pilka.git
cd pilka
cargo install --path .

依赖关系

winit 是Rust生态系统中的“默认”窗口库。它涵盖了您大部分的跨平台问题。

png 用于将截图编码为png文件。

notify 是一个文件监视器,并维护热重载。

ash 是一个Vulkan绑定库。我选择 ash 因为我认为 pilka 是一个学习项目,并想接触最多的未被触及的Vulkan。出于同样的原因,我没有使用 vulkanoeruptvulkanismvkvk

Ffmpeg 用于录制视频。就我的担忧而言,这是一个临时解决方案,在此之后我将切换到它发布时的 rav1e

灵感来源地(我从哪里窃取代码)

依赖关系

~2.3–3.5MB
~74K SLoC