7个版本 (破坏性更新)
0.7.0 | 2024年7月10日 |
---|---|
0.6.0 | 2024年2月23日 |
0.5.0 | 2023年11月6日 |
0.4.0 | 2023年7月13日 |
0.1.0 | 2022年10月25日 |
#678 在 游戏开发
521 每月下载次数
在 2 crates 中使用
91KB
285 行
noisy_bevy
为glam类型(Vec2
,Vec3
)和wgsl提供的简单噪声原语。
主要动机是
- 与Bevy的易用性
- Rust和wgsl上的结果相同(尽管不是位级完美)
实现的噪声原语
simplex_noise_2d
simplex_noise_2d_seeded
simplex_noise_3d
fbm_simplex_2d
fbm_simplex_2d_seeded
fbm_simplex_3d
使用方法
从rust
零初始化,只需调用噪声函数
use bevy::prelude::*;
use noisy_bevy::simplex_noise_2d;
let p = Vec2::new(12.3, 45.6);
let value = simplex_noise_2d(p);
从wgsl着色器
首先将插件添加到Bevy应用
App::new()
.add_plugins(NoisyShaderPlugin)
然后导入并使用它,在着色器中使用与CPU端相同的API
#import noisy_bevy::simplex_noise_2d
// ...
let p = vec2(12.3, 45.6);
let value = simplex_noise_2d(p);
请参阅asteroids example
,该示例使用噪声在CPU上以程序化方式生成tilemap,并在wgsl着色器中创建匹配的背景。
Bevy版本支持
main
分支针对最新的Bevy版本。
bevy | noisy_bevy |
---|---|
0.14 | 0.7,main |
0.13 | 0.6 |
0.12 | 0.5 |
0.11 | 0.4 |
0.10 | 0.3 |
0.9 | 0.2 |
0.8 | 0.1 |
许可证
MIT
原始simplex噪声源仅限于MIT,但我或PR对此仓库所做的所有更改也适用于Apache-2.0。
致谢
噪声原语是以下这些的端口/副本
- https://github.com/stegu/psrdnoise
- https://gist.github.com/munrocket/236ed5ba7e409b8bdf1ff6eca5dcdc39
贡献
PR欢迎!
依赖项
~33–70MB
~1M SLoC