Skip to content

malbernaz/bevy_lit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

233 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevy_lit demo

bevy_lit

A simple 2D lighting library designed for Bevy.

Features

  • Multiple light sources including PointLight2d, SpotLight2d and TextureLight2d
  • Includes primitives CustomLight2dPlugin and Light2dMaterial for defining custom light sources
  • Light occlusion through LightOccluder2d that can be used along side any Mesh2d
  • Per camera fine grain control over lighting parameters such as shadow softness and more
  • Terraria-like light penetration effect
  • Web support for WebGPU

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,
        outer_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.17.3 0.9
0.17 0.8
0.16 0.7
0.15 0.4..0.6
0.14 0.3

License

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

About

A lighting 2d library for Bevy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors