2 个不稳定版本
0.2.0 | 2024 年 7 月 5 日 |
---|---|
0.1.0 | 2024 年 6 月 7 日 |
306 在 游戏开发
145 每月下载次数
40KB
154 行
bevy_plane_cut
为 bevy 游戏引擎 提供的平面切割材质。
安装
安装包。
cargo add bevy_plane_cut
用法
将插件添加到应用
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(bevy_plane_cut::PlaneCutPlugin)
.run();
}
将材质添加到对象
use bevy::{
prelude::*,
color::palettes::basic,
pbr::ExtendedMaterial,
};
use bevy_plane_cut::*;
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<PlaneCutMaterial>>) {
commands.spawn(MaterialMeshBundle {
mesh: meshes.add(Sphere::new(1.0)),
material: materials.add(ExtendedMaterial {
base: StandardMaterial {
base_color: basic::RED.into(),
..default()
},
extension: PlaneCutExt {
plane: Vec4::new(-1.0, 1.0, -2.0, 0.0),
color: Color::linear_rgb(0.0, 0.0, 0.7),
shaded: true,
space: Space::World,
},
}),
..default()
});
}
示例
运行 "simple" 示例,如下所示
cargo run --example simple
这将显示一个红色的球体,球体周围有一个光在旋转,并且有一个蓝色的平面切割。
simple
- 一个带有平面切割的红色球体。simple_screenspace
- 一个带有屏幕空间平面切割的红色球体。moving_cut
- 一个在进出移动的红色球体,带有平面切割。
不工作示例
simple_deferred
- 与 simple 相同,但使用延迟渲染器。注意:这个在我的 macOS 机器上看起来不正确。deferred
- 使用延迟渲染器渲染的红色球体。它根本没有任何平面切割,并且在我的 macOS 上仍然看起来不正确。我使用 macOS,所以我想知道它在其他平台上是否正确。two_cuts
- 这是一个由PlaneCutExt
扩展了两次的材质。然而,它有一个错误。有关更多详细信息,请参阅two_cuts.rs
示例。欢迎提交 PR!
兼容性
bevy_plane_cut | bevy |
---|---|
0.2 | 0.14 |
0.1 | 0.13 |
许可证
此包根据 MIT 许可证或 Apache 许可证 2.0 许可。示例根据 CC0 许可证许可。
致谢
-
使用 Material Extension 在 Bevy 0.12 中扩展材质 由 Chris Biscardi 展示了
ExtendedMaterial
多么酷。 -
感谢 robtfm 编写了 bevy 中的原始 extended_material.rs 示例。
依赖
~23MB
~411K SLoC