| Crates.io | bevy_outline |
| lib.rs | bevy_outline |
| version | 0.1.0 |
| created_at | 2022-06-02 05:12:55.813456+00 |
| updated_at | 2022-06-02 05:12:55.813456+00 |
| 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.