3个不稳定版本
0.2.0 | 2023年12月12日 |
---|---|
0.1.2 | 2023年12月10日 |
0.1.1 | 2023年12月10日 |
0.1.0 |
|
#1049 in 游戏开发
30 每月下载量
55KB
1K SLoC
bevy_procedural_grass
一个为bevy生成网格上草的插件,版本为bevy 0.12
。
用法
将bevy_procedural_grass
依赖项添加到Cargo.toml
[dependencies]
bevy_procedural_grass = "0.2.0"
在实体上生成草
use bevy::prelude::*;
use bevy_procedural_grass::prelude::*;
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
ProceduralGrassPlugin::default(), // add grass plugin
))
.add_systems(Startup, setup)
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
) {
let plane = commands.spawn(
PbrBundle {
mesh: meshes.add(Mesh::from(shape::Plane::default())),
..default()
},
).id();
// spawn grass
commands.spawn(GrassBundle {
mesh: meshes.add(GrassMesh::mesh(7)), // how many segments you want in the mesh (no. of verts = segments * 2 + 1)
grass: Grass {
entity: Some(plane.clone()), // set entity that grass will generate on top of.
..default()
},
lod: GrassLODMesh::new(meshes.add(GrassMesh::mesh(3))), // optional: enables LOD
..default()
});
}
特性
- 基于网格生成的草位置
- 风动画
- 方向光的光照/阴影
- GPU实例化
- 视锥体/距离裁剪
- LOD
待办事项
- 点光和聚光灯的光照(目前仅支持方向光)。
- 改进动画。
- 减少均匀性的草簇生成。
- 草交互,允许草避开其他实体。
- 密度图。
- 计算着色器,使用计算着色器在每一帧生成草实例数据以优化内存使用。
资源
依赖项
~50–88MB
~1.5M SLoC