Crates.io | bevy_outline |
lib.rs | bevy_outline |
version | 0.1.0 |
source | src |
created_at | 2022-06-02 05:12:55.813456 |
updated_at | 2022-06-02 05:12:55.813456 |
description | Pixel-Perfect Outline Shader for Bevy |
homepage | https://github.com/YoshieraHuang/bevy_outline |
repository | https://github.com/YoshieraHuang/bevy_outline |
max_upload_size | |
id | 598662 |
size | 283,881 |
A easy-use pixel-perfect outline shader for bevy using vertex extrusion method. Inspired by this wonderful tutorial.
First, add bevy_outline
as a dependency into your Cargo.toml
:
[dependencies]
bevy_outline = "0.1.0"
Second, add OutlinePlugin
into your app add set Msaa
to a reasonable value:
App::new()
.insert_resource(Msaa { samples: 4})
... ...
.add_plugin(OutlinePlugin)
... ...
Third, use OutlineMaterial
as a mesh material:
fn setup(
...
mut outlines: ResMut<Assets<OutlineMaterial>>,
...
) {
...
commands
.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Cube { ..default() })),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
transform: Transform::from_translation(translation),
..default()
})
.insert(outlines.add(OutlineMaterial {
width: 5.,
color: Color::rgba(0.2, 0.3, 0.4, 1.0),
}));
...
}
Note that the unit of width
attribute of OutlineMaterial
is pixel.
See Example
I intend to track the main
branch of Bevy. PRs supporting this are welcome!
bevy | bevy_outline |
---|---|
0.7 | 0.1 |
This project is licensed under the MIT License.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in bevy_outline by you, shall be licensed as MIT, without any additional terms or conditions.