9 releases (5 breaking)

new 0.6.0 Feb 6, 2025
0.5.0 Jan 24, 2025
0.4.1 Dec 10, 2024
0.3.0 Aug 9, 2024
0.1.1 Jul 23, 2024

#195 in Game dev

Download history 2/week @ 2024-10-23 5/week @ 2024-10-30 7/week @ 2024-11-06 1/week @ 2024-11-13 4/week @ 2024-11-20 6/week @ 2024-11-27 145/week @ 2024-12-04 131/week @ 2024-12-11 1/week @ 2024-12-18 120/week @ 2025-01-22 13/week @ 2025-01-29 148/week @ 2025-02-05

281 downloads per month

MIT license

50KB
947 lines

bevy_lit demo

bevy_lit

A simple 2D lighting library designed for Bevy. It provides basic lighting features through the types:

  • Lighting2dSettings: Controls lighting parameters such as shadow softness.
  • AmbientLight2d: Provides a general light source that illuminates the entire scene uniformly.
  • PointLight2d: Emits light from a specific point, simulating light sources like lamps or torches.
  • LightOccluder2d: Creates shadows and blocks light from PointLight2d along side any Mesh2d.

Getting Started

Installation

Install it using the CLI:

cargo add bevy_lit

Or add bevy_lit to your Cargo.lock:

[dependencies]
bevy_lit = "*"

Usage

Below is a basic example demonstrating how to set up and use bevy_lit in your project:

use bevy::prelude::*;
use bevy_lit::prelude::*;

fn main() {
    App::new()
        .add_plugins((DefaultPlugins, Lighting2dPlugin))
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands, mut meshes: ResMut<Assets<Mesh>>) {
    commands.spawn((
        Camera2d,
        Lighting2dSettings::default(),
    ));

    commands.spawn(PointLight2d {
        color: Color::WHITE,
        intensity: 3.0,
        radius: 200.0,
        falloff: 2.0,
        ..default(),
    });

    commands.spawn((
        Mesh2d(meshes.add(Circle::new(50.0))),
        LightOccluder2d::default()),
        Transform::from_xyz(0.0, 200.0, 0.0)
    ));
}

Compatibility

bevy bevy_lit
0.15 0.4..0.6
0.14 0.3

Acknowledgement

This library took great inspiration from the following crates:

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

bevy_lit is licensed under the MIT License. See LICENSE for more details.

Dependencies

~45–82MB
~1.5M SLoC