#bevy #color-space #shaders #graphics #gamedev

bevy_hsl_multiplier

在HSL颜色空间中乘以纹理值

1个不稳定版本

0.1.0 2024年1月25日

#1739 in 游戏开发

MIT OR Apache-2.0 OR CC0-1.0

1.5MB
56

bevy_hsl_multiplier

Maintenance CI crates-io api-docs

此Crate提供了一个着色器,可以在HSL颜色空间中乘以纹理的颜色;它可以应用于bevy游戏引擎上的2D和3D对象。

hsl multiplier example

安装

实际上在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许可证进行许可。

致谢

依赖

~22MB
~405K SLoC