bevy_points

Crates.iobevy_points
lib.rsbevy_points
version
sourcesrc
created_at2022-11-21 06:25:35.131148+00
updated_at2025-05-08 01:04:43.63892+00
descriptionPoints mesh plugin for Bevy
homepagehttps://github.com/mattatz/bevy_points
repositoryhttps://github.com/mattatz/bevy_points
max_upload_size
id719769
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
mattatz (mattatz)

documentation

README

Bevy Points

crates.io

Points mesh plugin for Bevy.

Example

Usage

System setup

Add the plugin to your app:

use bevy::prelude::*;
use bevy_points::prelude::*;

fn main() {
    App::new()
        .add_plugin(PointsPlugin);
}

Apply a component to a MaterialMeshBundle

fn setup(
    mut commands: Commands,
    mut meshes: ResMut<Assets<Mesh>>,
    mut materials: ResMut<Assets<PointsMaterial>>,
) {
    let n = 320; // # of points
    let h = 3.0; // spiral height
    commands.spawn((
        Mesh3d(meshes.add(
            PointsMesh::from_iter((0..n).map(|i| {
                let t01 = (i as f32) / ((n - 1) as f32);
                let r = t01 * TAU * 4.0; // spiral fineness
                Vec3::new(r.cos(), (t01 - 0.5) * h, r.sin())
            })),
        )),
        MeshMaterial3d(materials.add(PointsMaterial {
            settings: PointsShaderSettings {
                point_size: 20.,    // Defines the size of the points. 
                ..Default::default()
            },
            perspective: true,      // Specify whether points' size is attenuated by the camera depth. 
            circle: true,           // Specify whether the shape of points is circular or rectangular.
            ..Default::default()
        })),
    ));

    commands.spawn((
        Mesh3d(meshes.add(
            // Mesh can be converted to PointsMesh & vice versa.
            PointsMesh::from(Mesh::from(Sphere {
                radius: 1.0
            }))
        )),
        MeshMaterial3d(materials.add(PointsMaterial {
            settings: PointsShaderSettings {
                color: Color::BLUE,
                opacity: 0.5,
                ..Default::default()
            },
            alpha_mode: AlphaMode::Blend,
            ..Default::default()
        })),
    ));
}

Compatibility

bevy bevy_points
0.9 0.1
0.10 0.2
0.11 0.3
0.12 0.4
0.13 0.5
0.14 0.6
0.15 0.7
0.16 0.8
Commit count: 33

cargo fmt