bevy_outline_post_process

An adaptive outline post-processing effect for the Bevy game engine

2 releases

0.3.1 Aug 4, 2024
0.3.0 Jul 22, 2024

#826 in Game dev

0BSD OR MIT OR Apache-2.0

545KB
228 lines

bevy_outline_post_process

Crates License Tag Build Docs

A plugin for the Bevy engine which adds an outline post-processing effect. Optionally supports adaptive outlining, so darker areas are outlined in white rather than black, based on luminance.

Note: This is a full-screen post process effect and cannot be enabled/disabled for specific objects.

Screenshots

Configuration Used:

bevy_outline_post_process::components::OutlinePostProcessSettings::new(2.0, 0.0, false);

Compatibility

Crate Version Bevy Version
0.3 0.14
0.1-0.2 0.13

Installation

crates.io

[dependencies]
bevy_outline_post_process = "0.3"

Using git URL in Cargo.toml

[dependencies.bevy_outline_post_process]
git = "https://github.com/exvacuum/bevy_outline_post_process.git"

Usage

In main.rs:

use bevy::prelude::*;
use bevy_outline_post_process;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            bevy_outline_post_process::OutlinePostProcessPlugin,
        ))
        .insert_resource(Msaa::Off)
        .run();
}

When spawning a camera:

commands.spawn((
    // Camera3dBundle...
    NormalPrepass,
    bevy_outline_post_process::components::OutlinePostProcessSettings::new(2.0, 0.0, false);
));

This effect will only run for cameras which contain this component.

License

This crate is licensed under your choice of 0BSD, Apache-2.0, or MIT license.

Dependencies

~36–73MB
~1.5M SLoC