3 个版本 (重大变更)
0.3.0 | 2024 年 7 月 3 日 |
---|---|
0.2.0 | 2024 年 5 月 26 日 |
0.1.1 |
|
0.1.0 | 2024 年 3 月 26 日 |
#19 in 渲染
每月 221 次下载
用于 bevy_vello
215KB
4K SLoC
[!WARNING] 此包的目标是为交互式图形提供 Lottie 规范的覆盖,直到 vello 能够渲染的范围。我们正在努力实现正确性,但以下列出了缺少的功能。
缺少的功能
以下 Lottie 功能尚未支持:
- 非线性缓动
- 位置关键帧 (
ti
,to
) 缓动 - 时间映射 (
tm
) - 文本
- 图像嵌入
- 高级形状(描边虚线、之字形等)
- 高级效果(运动模糊、阴影等)
- 正确处理颜色停止
- 分割旋转
- 分割位置
使用方法
Velato 使将 Lottie 编码为 vello::Scene
非常简单。
// Parse your lottie file
let lottie = include_str!("../lottie.json");
let composition = velato::Composition::from_str(lottie).expect("valid file");
// Render to a scene
let mut new_scene = vello::Scene::new();
// Render to a scene!
let mut renderer = velato::Renderer::new();
let frame = 0.0; // Arbitrary number chosen. Ensure it's a valid frame!
let transform = vello::kurbo::Affine::IDENTITY;
let alpha = 1.0;
renderer.render(&composition, frame, transform, alpha, &mut new_scene);
示例
跨平台(Winit)
cargo run -p with_winit
您还可以加载整个文件夹或单个文件。
cargo run -p with_winit -- examples/assets
Web 平台
由于Vello严重依赖计算着色器,我们依靠新兴的WebGPU标准在网络上运行。在浏览器支持变得广泛之前,可能需要使用开发浏览器版本(例如Chrome Canary)并显式启用WebGPU。
这使用cargo-run-wasm
来构建网络上的示例,并为它托管本地服务器。
# Make sure the Rust toolchain supports the wasm32 target
rustup target add wasm32-unknown-unknown
# The binary name must also be explicitly provided as it differs from the package name
cargo run_wasm -p with_winit --bin with_winit_bin
还可以在支持的网络浏览器上找到此处的网络演示。
[!警告] 目前网络不是Vello的主要目标,WebGPU实现不完整,因此您可能会遇到运行此示例的问题。
社区
关于Velato开发的讨论发生在Linebender Zulip,特别是#gpu 流。所有公开内容都可以在不登录的情况下阅读。
欢迎通过pull request贡献。适用Rust行为准则。
许可协议
在以下任一许可协议下授权:
- Apache许可证,版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
位于examples/assets
子目录中的文件仅在其目录中的相应许可证下授权,可在目录中的LICENSE
文件中找到。
贡献
除非您明确声明,否则您提交给工作的任何贡献,根据Apache-2.0许可证定义,将按照上述方式双重许可,没有任何额外的条款或条件。
依赖项
~11–43MB
~694K SLoC