6个版本
0.14.0 | 2024年7月8日 |
---|---|
0.13.1 | 2024年4月1日 |
0.1.2 | 2024年2月28日 |
#189 in 游戏开发
每月42次下载
在 bevy_procedural_vegetatio… 中使用
105KB
2K SLoC
Bevy程序化:网格
Bevy程序化项目的目标是提供一套全面的程序化图形生成包,这些包通过一致的API进行统一。
Bevy程序化项目 的目的是为 Bevy 游戏引擎提供一个程序化网格构建器。它可以使用 Lyon 生成 2D 形状并将其挤出为 3D 网格。还可以使用 Meshopt 优化网格,以改进其性能。未来版本的计划还包括更高级的网格操作,如 3D 逻辑运算、参数化表面和 L 系统。
警告
此crate仍处于开发初期。请期待频繁的API修改、错误和缺失的功能。请随时通过在 Github Discussion 或 Bevy Discord 打开问题、拉取请求或分享您的想法来贡献力量。
示例
尝试在线示例!
或者在您的计算机上运行 示例,例如,使用以下命令:cargo run --features="bevy/default" --example 2d
。
对于包开发,我们建议使用editor
-子crate。此示例包含一个小的egui编辑器。使用以下命令运行:cargo watch -w editor/src -w src -x "run -p editor --profile fast-dev"
。使用fast-dev
配置文件将启用对依赖项的优化,但不会对包本身进行优化。这将显著减慢首次构建速度,但增量构建会稍微快一些,并且bevy的性能会大幅提升。
用法
使用以下命令安装:cargo add bevy_procedural_meshes
。为bevy创建网格,例如
use bevy_procedural_meshes::*;
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
let mut mesh = PMesh::<u32>::new();
mesh.fill(0.01, |builder| {
builder
.begin_here()
.quadratic_bezier_to(Vec2::new(3.0, 3.0), Vec2::new(1.5, 3.0))
.quadratic_bezier_to(Vec2::new(0.0, 3.0), Vec2::new(0.0, 0.0))
.close();
});
commands.spawn(PbrBundle {
mesh: meshes.add(mesh.to_bevy(RenderAssetUsages::all())),
material: materials.add(StandardMaterial::default()),
..default()
});
}
特性
以下特性可用
meshopt
-- 使用Meshopt优化生成网格的性能。lyon
-- 使用Lyon对2D形状(如贝塞尔曲线和笔画)进行细分。inspector
-- 将bevy-inspector-egui支持添加到不同的结构体中。dynamic
-- 将bevy编译为动态库。这对于开发构建很有用。
支持的Bevy版本
以下表格显示了bevy_procedural_meshes
与Bevy某些版本的兼容性
bevy | bevy_procedural_meshes |
---|---|
0.14 | 0.14.*, main |
0.13 | 0.1.* |
许可证
bevy-procedural包是免费的、开源的,并且是许可的。除非另有说明(以下或个别文件中),这些存储库中的所有代码都是双许可的,允许您在以下之间进行选择
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
贡献
除非您明确声明,否则您提交的任何贡献,根据Apache-2.0许可证定义,都应如上所述双许可,不附加任何额外条款或条件。
依赖项
~36–74MB
~1.5M SLoC