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.
cargo add bevy_terminal_shader
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(bevy_terminal_shader::TerminalShaderPlugin)
.run()
}
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()
});
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.
- Consider renaming crate to
bevy_oscilloscope_shader
.
bevy_terminal_shader | bevy |
---|---|
0.2 | 0.14 |
0.1 | 0.12.1 |
This crate is licensed under the MIT License or the Apache License 2.0 or CC0 License.
-
Terminal Shader by mrange originally released under the CC0 License.