1个不稳定版本
0.1.0 | 2022年6月2日 |
---|
#1714 in 游戏开发
200KB
537 行
适用于Bevy的像素完美轮廓着色器
一个易于使用的像素完美轮廓着色器,使用顶点扩展方法为Bevy开发。灵感来自这篇精彩的教程。
功能
- 像素完美:绘制的轮廓宽度以像素为单位,与我们想要的相同。
- 消除透视缩短:轮廓的宽度从近视图到远视图是均匀的。
- 可定制性。宽度和颜色可以由用户决定。
用法
首先,将bevy_outline
作为依赖项添加到你的Cargo.toml
[dependencies]
bevy_outline = "0.1.0"
其次,将OutlinePlugin
添加到你的应用中,并将Msaa
设置为合理的值
App::new()
.insert_resource(Msaa { samples: 4})
... ...
.add_plugin(OutlinePlugin)
... ...
第三,将OutlineMaterial
用作网格材质
fn setup(
...
mut outlines: ResMut<Assets<OutlineMaterial>>,
...
) {
...
commands
.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Cube { ..default() })),
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
transform: Transform::from_translation(translation),
..default()
})
.insert(outlines.add(OutlineMaterial {
width: 5.,
color: Color::rgba(0.2, 0.3, 0.4, 1.0),
}));
...
}
请注意,OutlineMaterial
的width
属性的单位是像素。
示例
请参阅示例
问题
-
轮廓的宽度似乎不均匀。 - 内建环面的轮廓看起来很奇怪(算法错误,将在0.8版本中修复)
Bevy版本支持
我打算跟踪Bevy的main
分支。欢迎支持这一点的PR!
bevy | bevy_outline |
---|---|
0.7 | 0.1 |
许可协议
本项目采用MIT许可协议。
贡献
除非你明确说明,否则你提交的任何旨在包含在bevy_outline中的贡献,均应许可为MIT,不附加任何额外条款或条件。
依赖项
~40–55MB
~800K SLoC