#bevy #bevy-plugin #graphics #gamedev

bevy_points

Bevy的点网格插件

10个版本 (5个破坏性更新)

0.6.0 2024年8月8日
0.5.2 2024年4月18日
0.4.0 2024年1月10日
0.3.0 2023年9月5日
0.1.1 2022年11月21日

#29 in 渲染

Download history 6/week @ 2024-05-17 4/week @ 2024-05-24 4/week @ 2024-05-31 7/week @ 2024-06-07 2/week @ 2024-06-14 5/week @ 2024-06-21 2/week @ 2024-06-28 4/week @ 2024-07-05 3/week @ 2024-07-26 98/week @ 2024-08-02 70/week @ 2024-08-09 40/week @ 2024-08-16

每月211次下载
用于 2 crate

MIT 许可证

27KB
298

Bevy Points

crates.io

Bevy的点网格插件。

Example

用法

系统设置

将插件添加到您的应用

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

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

将组件应用到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(MaterialMeshBundle {
        mesh: 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())
            })),
        ),
        material: 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()
        }),
        ..Default::default()
    });

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

兼容性

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

依赖项

~37–75MB
~1.5M SLoC