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 渲染
每月211次下载
用于 2 crate
27KB
298 行
Bevy Points
Bevy的点网格插件。
用法
系统设置
将插件添加到您的应用
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