GithubHelp home page GithubHelp logo

kywinston / bevy_vello Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linebender/bevy_vello

0.0 0.0 0.0 525 KB

An integration to render with Vello in Bevy game engine.

Home Page: https://vectorgameexperts.github.io/bevy_vello/

License: Apache License 2.0

Rust 98.32% WGSL 1.68%

bevy_vello's Introduction

Bevy Vello

A vector graphics rendering integration for Bevy game engine using Vello.

Discord MIT/Apache 2.0 Vello Following released Bevy versions

Dependency status Crates.io Docs Build status

Warning

The support of SVG and Lottie is limited. If there is an SVG-related issue, please file the issue in vello_svg. If there is a Lottie-related issue, please file the issue in velato. Please see the respective backends for for more information about limitations.

bevy_vello is a rendering integration for rendering vector graphics in the Bevy game engine. Currently it renders standard vello Scenes, as well as SVG and Lottie files.

Quickstart to run the demo:

cargo run -p demo

Alt text

It uses several support backends for assets:

  • vello_svg - Converting SVG files to a vello Scene
  • velato - Converting Lottie files to a vello Scene

Visual inconsistencies discovered should be reported to the respective backend.

Bevy version support

NOTE: You must use a git rev for now, but we are planning a publish. See issue #3.

bevy bevy_vello
0.13 0.1-0.2, main
< 0.13 unsupported

Features

  • Spawn vector graphics rendering in screen-space or world-space coordinates.
  • Runtime color swapping of Lottie files with a Theme component.
  • Augment playback options with a PlaybackOptions component.
  • Limited state machine support with a LottiePlayer component.
  • Text
    • NOTE: To avoid conflict with bevy's built-in font loader, rename fonts used by bevy_vello to end with *.vtff. This is a limitation of the bevy game engine, and can probably be an improvement in the future.
  • Debug drawing for bounding boxes and origin
  • Render immediate-mode vello Scenes

Examples

Cross platform (Bevy)

cargo run -p <demo name>

Web platform

Because Vello relies heavily on compute shaders, we rely on the emerging WebGPU standard to run on the web. Until browser support becomes widespread, it will probably be necessary to use development browser versions (e.g. Chrome Canary) and explicitly enable WebGPU.

This uses cargo-run-wasm to build the example for web, and host a local server for it

# 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 text

There is also a web demo available here on supporting web browsers.

Warning

The web is not currently a primary target for Vello, and WebGPU implementations are incomplete, so you might run into issues running this example.

Community

All Loopy projects and development happens in the Loopy Discord. The discord is open to the public.

Contributions are welcome by pull request. The Rust code of conduct applies.

License

Licensed under either of

at your option

The files in subdirectories of the examples/assets directory are licensed solely under their respective licenses, available in the LICENSE file in their directories.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

bevy_vello's People

Contributors

simbleau avatar seabassjh avatar pengiie avatar waywardmonkeys avatar dependabot[bot] avatar luke1188 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.