3个版本 (破坏性更新)
0.3.0 | 2023年12月3日 |
---|---|
0.2.0 | 2023年7月16日 |
0.1.0 | 2023年4月19日 |
#310 in 渲染
34KB
137 行
Bevy Toon Shader
特性
- "太阳"颜色 & 方向
- 镜面高光
- 光带
- 投影阴影
- 反射率图(基础颜色纹理)
不支持(尚不支持)
- 动态颜色带量
- 接收阴影
- 边缘照明
安装
cargo add bevy_toon_shader
use bevy::prelude::*;
use bevy_toon_shader::{ToonShaderMainCamera, ToonShaderMaterial, ToonShaderPlugin, ToonShaderSun};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ToonShaderPlugin)
.add_systems(Startup, setup)
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut toon_materials: ResMut<Assets<ToonShaderMaterial>>,
) {
// Camera
commands.spawn((
Camera3dBundle { /* ... */ },
ToonShaderMainCamera,
));
// Sun
commands.spawn((
DirectionalLightBundle { /* ... */ },
ToonShaderSun,
));
// Ambient light
commands.insert_resource(AmbientLight {
color: Color::GRAY * 0.2,
..default()
});
let material = toon_materials.add(ToonShaderMaterial::default());
// 3D object
commands.spawn(MaterialMeshBundle {
mesh: meshes.add(Mesh::try_from(shape::Torus::default()).unwrap()),
transform: Transform::from_xyz(0., 2., 0.),
material: toon_material,
..default()
});
}
运行示例
git clone https://github.com/tbillington/bevy_toon_shader.git
cd bevy_toon_shader
cargo run --example scene
Bevy支持表
bevy | bevy_toon_shader |
---|---|
0.12 | 0.3 |
0.11 | 0.2 |
0.10 | 0.1 |
致谢
代码最初改编自Roystan的这篇出色的Unity教程。
许可证
除非另有说明,本存储库中除注明外的所有代码均根据您的选择在以下许可证下双授权:
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
这意味着您可以选择您喜欢的许可证!这种双授权方法是Rust生态系统中的事实标准,并且包含两个许可证有很好的理由。原因在这里。
您的贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的工作将根据上述双授权进行授权,不附加任何额外的条款或条件。
依赖关系
~45–79MB
~1M SLoC