bevy_terminal_shader

Crates.iobevy_terminal_shader
lib.rsbevy_terminal_shader
version0.2.0
sourcesrc
created_at2024-01-09 10:21:37.971516
updated_at2024-07-23 06:57:03.527344
descriptionAn old school terminal shader for the bevy game engine
homepage
repositoryhttps://github.com/shanecelis/bevy_terminal_shader
max_upload_size
id1093759
size1,500,946
Shane Celis (shanecelis)

documentation

README

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

Commit count: 0

cargo fmt