An implementation of the Jump Flooding Algorithm for the Bevy engine.

Overview

bevy_jfa

The Jump Flooding Algorithm (JFA) for Bevy.

Features

This crate provides an OutlinePlugin that can be used to add outlines to Bevy meshes. See the examples/ directory for examples of API usage.

Setup

To add an outline to a mesh:

  1. Add the OutlinePlugin to the base App.
  2. Add the desired OutlineStyle as an Asset.
  3. Add a CameraOutline component with the desired OutlineStyle to the camera which should render the outline. Currently, outline styling is tied to the camera rather than the mesh.
  4. Add an Outline component to the mesh with enabled: true.

License

Licensed under either of

at your option.

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.

You might also like...
Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions
Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions

Introduction Proof-of-concept of getting OpenXR rendering support for Bevy game engine using gfx-rs abstractions. (hand interaction with boxes missing

A physics lib for the bevy game engine based on physme

physimple Physimple aims to be the simplest(and capable) physics engine(currently for bevy) WARNING Beware for breaking changes with each update for n

An immediate mode 2D drawing API for Bevy game engine

Bevy Canvas API prototype An unofficial immediate mode 2D drawing API for Bevy game engine. Check the documentation or the examples to know how to use

Simple RUST game with the Bevy Engine

Simple RUST Game using the Bevy Engine YouTube videos for this code base: Episode 1 - Rust Game Development tutorial from Scratch with Bevy Engine Epi

A highly customizable snake clone made in Rust with the Bevy engine, named after the Japanese word for snake, 蛇.
A highly customizable snake clone made in Rust with the Bevy engine, named after the Japanese word for snake, 蛇.

Hebi 🐍 A highly customizable snake clone made in Rust with the Bevy engine, named after the Japanese word for snake, 蛇(へび). Configuration One of the

2d Endless Runner Game made with Bevy Game Engine
2d Endless Runner Game made with Bevy Game Engine

Cute-runner A 2d Endless Runner Game made with Bevy Game Engine. Table of contents Project Infos Usage Screenshots Disclaimer Project Infos Date: Sept

A Bevy Engine plugin for making 2D paths, smooth animations with Bezier curves
A Bevy Engine plugin for making 2D paths, smooth animations with Bezier curves

bevy_pen_tool A Bevy Engine plugin for making 2D paths and smooth animations with Bezier curves TODO: Mesh-making functionality for building 2D shapes

A vdom-free reactive UI lib for the bevy game engine

ui4 ui4 is my fourth major attempt at making a UI dataflow library for the Bevy game engine. More specifically, it's a vdom-less UI library which uses

A game of snake written in Rust using the Bevy game engine, targeting WebGL2

Snake using the Bevy Game Engine Prerequisites cargo install cargo-make Build and serve WASM version Set your local ip address in Makefile.toml (loca

Comments
  • upgrade to Bevy 0.8

    upgrade to Bevy 0.8

    Thanks a lot for the awesome work!

    I have upgraded to 0.8, hope it saves you some work, in case you wanted to do it yourself.

    Adding bevy_asset was necessary to get it to compile, adding bevy_winit was necessary to get rid of some warnings with the example and also it wouldn't render anything (I can provide more details on what happened).

    Hope it's OK. Please let me know if you have any feedback.

    opened by wilk10 1
  • Bevy 0.9

    Bevy 0.9

    Objective

    bumb to bevy 0.9

    Issues

    Launching the example we have wgpu error:

    2022-11-13T11:16:16.956602Z ERROR wgpu::backend::direct: Handling wgpu errors as fatal by default
    thread 'main' panicked at 'wgpu error: Validation Error
    
    Caused by:
        In a RenderPass
          note: encoder = `<CommandBuffer-(0, 1, Metal)>`
        In a set_pipeline command
          note: render pipeline = `jfa_outline_pipeline`
        Render pipeline targets are incompatible with render pass
        Incompatible color attachment: the renderpass expected [Some(Bgra8UnormSrgb)] but was given [Some(Rgba8UnormSrgb)]
    
    ', /me/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-0.14.0/src/backend/direct.rs:2403:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    -[_MTLCommandEncoder dealloc]:131: failed assertion `Command encoder released without endEncoding'
    
    opened by ManevilleF 0
  • Extract outline component

    Extract outline component

    The outline component was never extracted which means the outline is always applied to everything. This was probably an artifact of the update to 0.8.

    I also fixed a bug where the app would crash when using more than one camera because it was using unwrap instead of returning when the query failed.

    opened by IceSentry 0
Owner
null
Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.

vx_bevy A voxel engine prototype made using the Bevy game engine. Goals and features Very basic worldgen Animated chunk loading (ala cube world) Optim

Lucas Arriesse 125 Dec 31, 2022
Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.

Portals for Bevy Bevy Simple Portals is a Bevy game engine plugin aimed to create portals. Those portals are (for now) purely visual and can be used t

Sélène Amanita 11 May 28, 2023
bevy-hikari is an implementation of voxel cone tracing global illumination with anisotropic mip-mapping in Bevy

Bevy Voxel Cone Tracing bevy-hikari is an implementation of voxel cone tracing global illumination with anisotropic mip-mapping in Bevy. Bevy Version

研究社交 208 Dec 27, 2022
A gravitation simulation with Barnes-Hut algorithm implementation.

Gravitation Particles A Barnes-Hut implementation of n-body gravitation simulation in Rust. Running the project The video rendering feature is impleme

Artem 3 Oct 5, 2023
A simple extension for `bevy-editor-pls` to support tilemap editing right inside the bevy app.

What is this This is a simple tilemap editor plugin, that hooks right into bevy_editor_pls to work with bevy_ecs_tilemap. It works completely within i

null 3 May 8, 2023
Minecraft using Bevy and Bevy-Meshem

minecraft_bevy Minecraft_bevy was built to showcase bevy_meshem. After a week of developing it has: Chunk loading / unloading each chunk's mesh is bei

Adam 7 Oct 4, 2023
Basic first-person fly camera for the Bevy game engine

bevy_flycam A basic first-person fly camera for Bevy 0.4 Controls WASD to move horizontally SPACE to ascend LSHIFT to descend ESC to grab/release curs

Spencer Burris 85 Dec 23, 2022
Inspector plugin for the bevy game engine

bevy-inspector-egui This crate provides the ability to annotate structs with a #[derive(Inspectable)], which opens a debug interface using egui where

Jakob Hellermann 517 Dec 31, 2022
Crossterm plugin for the bevy game engine

What is bevy_crossterm? bevy_crossterm is a Bevy plugin that uses crossterm as a renderer. It provides custom components and events which allow users

null 79 Nov 2, 2022
Concise Reference Book for the Bevy Game Engine

Unofficial Bevy Cheat Book Click here to read the book! Concise reference to programming in the Bevy game engine. Covers useful syntax, features, prog

null 947 Jan 8, 2023