Crate bevy_terminal_shader

source ·
Expand description

§bevy_terminal_shader

Maintenance CI crates-io api-docs

This crate provides an old school terminal-like, or oscilloscope, effect that can be applied to 2D and 3D objects on the bevy game engine.

Terminal shader example

§Install

cargo add bevy_terminal_shader

§Usage

§Add plugin to app

use bevy::prelude::*;
fn main() {
    App::new()
        .add_plugins(bevy_terminal_shader::TerminalShaderPlugin)
        .run()
}

§Add settings to camera

use bevy::prelude::*;

fn setup(
    mut commands: Commands,
    mut meshes: ResMut<Assets<Mesh>>,
    mut materials: ResMut<Assets<TerminalMaterial>>) {
    commands.spawn(Camera2dBundle::default());
    
    commands.spawn(MaterialMesh2dBundle {
        mesh: meshes
            .add(shape::Quad::new(Vec2::new(1300., 800.)).into())
            .into(),
        material: materials.add(TerminalMaterial::green()),
        ..default()
    });

§Example

Run the “quad” example like so:

cargo run --example quad

This will show a large quad like the one shown at the beginning of this README.

cargo run --example cube

This will show a rotating cube with the shader as its surfaces.

§TODO

  • Consider renaming crate to bevy_oscilloscope_shader.

§Compatibility

bevy_terminal_shaderbevy
0.20.14
0.10.12.1

§License

This crate is licensed under the MIT License or the Apache License 2.0 or CC0 License.

§Acknowlegments

Structs§

Constants§