3 个版本 (重大变更)

0.3.0 2024 年 7 月 3 日
0.2.0 2024 年 5 月 26 日
0.1.1 2024 年 5 月 25 日
0.1.0 2024 年 3 月 26 日

#19 in 渲染

Download history 56/week @ 2024-04-29 2/week @ 2024-05-06 31/week @ 2024-05-13 344/week @ 2024-05-20 95/week @ 2024-05-27 45/week @ 2024-06-03 26/week @ 2024-06-10 15/week @ 2024-06-17 20/week @ 2024-06-24 178/week @ 2024-07-01 13/week @ 2024-07-08 41/week @ 2024-07-15 25/week @ 2024-07-22 82/week @ 2024-07-29 80/week @ 2024-08-05 32/week @ 2024-08-12

每月 221 次下载
用于 bevy_vello

Apache-2.0 OR MIT

215KB
4K SLoC

Velato

一个用于解析和渲染 LottieVello 集成。

Linebender Zulip dependency status MIT/Apache 2.0 vello version
Crates.io Docs Build status

[!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行为准则

许可协议

在以下任一许可协议下授权:

任选其一。

位于examples/assets子目录中的文件仅在其目录中的相应许可证下授权,可在目录中的LICENSE文件中找到。

贡献

除非您明确声明,否则您提交给工作的任何贡献,根据Apache-2.0许可证定义,将按照上述方式双重许可,没有任何额外的条款或条件。

依赖项

~11–43MB
~694K SLoC