Crates.io | bevy_hsl_multiplier |
lib.rs | bevy_hsl_multiplier |
version | 0.1.0 |
source | src |
created_at | 2024-01-25 09:37:58.374686 |
updated_at | 2024-01-25 09:37:58.374686 |
description | Multiply texture values in HSL color space |
homepage | |
repository | https://github.com/shanecelis/bevy_hsl_multiplier |
max_upload_size | |
id | 1113606 |
size | 1,365,546 |
This crate provides a shader that multiplies a texture's color in HSL color space; it can be applied to 2D and 3D objects on the bevy game engine.
Not actually available on crates.io yet.
# cargo add bevy_hsl_multiplier
But you can get it from the repo directly.
cargo add --git https://github.com/shanecelis/bevy_hsl_multiplier.git
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(bevy_hsl_multiplier::HslMultiplierPlugin)
.run()
}
use bevy::prelude::*;
/// Setup a quad and camera.
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<HslMultiplierMaterial>>,
asset_server: Res<AssetServer>,
) {
commands.spawn(Camera2dBundle::default());
commands.spawn(MaterialMesh2dBundle {
mesh: meshes
.add(shape::Quad::new(Vec2::new(1024., 1024.)).into())
.into(),
material: materials.add(HslMultiplierMaterial {
hsla_multiplier: Vec4::new(1.0, 1.0, 1.0, 1.0),
color_texture: Some(asset_server.load("rust_crab.png")),
alpha_mode: AlphaMode::Opaque,
}),
..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.
This crate is licensed under the MIT License or the Apache License 2.0 or CC0 License.
Prompted by PrinceOfBorgo's question on reddit.
Most code copied wholesale from my other crate the bevy_terminal_shader.