2 unstable releases
0.2.0 | Jul 23, 2024 |
---|---|
0.1.0 | Jan 9, 2024 |
#1144 in Game dev
1.5MB
99 lines
bevy_terminal_shader
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.
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
-
Terminal Shader by mrange originally released under the CC0 License.
Dependencies
~37–75MB
~1.5M SLoC