2 个版本
0.1.6 | 2024年5月24日 |
---|---|
0.1.5 | 2022年11月18日 |
0.1.4 |
|
在 图形 API 中排名 #103
每月下载量 382 次
40KB
896 行
Frag
Frag 模块。在 Rust 中编写片段着色器,可以跳过样板代码,直接编写片段着色器。例如,在编写光线追踪着色器时很有用。
特性
- 组合多个部分或文件的着色器
- 实时编码:当文件更新时进行更新
- 键盘控制时间
- 分辨率无关:渲染和显示可以分别使用不同的分辨率。可以用于拉伸、像素化或抗锯齿
- 使用 FFMPEG 渲染 MP4
- 将当前帧保存为 PNG 图片
控制
- 空格:暂停/恢复时间和渲染
- 左键(按住):后退时间
- 右键(按住):前进时间
- 下键:将时间设置为 0
- PageDown:后退 5 秒
- PageUp:前进 5 秒
待办事项
- 后处理片段着色器可访问
示例
实时编码示例,具有像素艺术风格
use frag::*;
let streamer = shader::ShaderStreamer::new()
.with_file("lib.glsl")
.with_file("shader.glsl");
FragConf::new()
.with_window_width(1600)
.with_window_height(900)
.with_canvas_width(320)
.with_canvas_height(180)
.with_pixelate(true)
.with_streamer(streamer)
.run_live().expect("Could not run.");
渲染到视频的示例
use frag::*;
let streamer = shader::ShaderStreamer::new()
.with_file("lib.glsl")
.with_file("shader.glsl");
FragConf::new()
.with_window_width(1600)
.with_window_height(900)
.with_streamer(streamer)
.into_ffmpeg_renderer()
.with_framerate(30)
.with_crf(20)
.with_preset(Preset::Slow)
.with_tune(Tune::Animation)
.with_length(600)
.with_output("render.mp4")
.render().expect("Could not render.");
许可证
Copyright (C) 2024 Cody Bloemhard
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖关系
~18–28MB
~432K SLoC