1个不稳定版本
0.1.0 | 2024年1月25日 |
---|
#1739 in 游戏开发
1.5MB
56 行
bevy_hsl_multiplier
此Crate提供了一个着色器,可以在HSL颜色空间中乘以纹理的颜色;它可以应用于bevy游戏引擎上的2D和3D对象。
安装
实际上在crates.io上尚不可用。
# cargo add bevy_hsl_multiplier
但您可以直接从仓库中获取。
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()
});
}
示例
按如下方式运行"quad"示例
cargo run --example quad
这将显示一个类似于本README开头所示的大四边形。
cargo run --example cube
这将显示一个以着色器为表面的旋转立方体。
许可
此Crate根据MIT许可证、Apache许可证2.0或CC0许可证进行许可。
致谢
-
由PrinceOfBorgo的问题启发。
-
大部分代码直接复制自我的其他Crate bevy_terminal_shader。
依赖
~22MB
~405K SLoC