Skip to content

An old school terminal shader for the bevy game engine

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
CC0-1.0
LICENSE-CC0
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

shanecelis/bevy_terminal_shader

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_shader bevy
0.2 0.14
0.1 0.12.1

License

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

Acknowlegments

About

An old school terminal shader for the bevy game engine

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
CC0-1.0
LICENSE-CC0
MIT
LICENSE-MIT

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published