noisy_bevy

crates.io MIT docs.rs

Simple stupid noise primitives for glam types (Vec2, Vec3) and wgsl.

Main motivations are:

screenshot of an asteroid generated on the gpu and cpu

Implemented noise primitives:

Usage

From rust

Zero initialization, just call the noise functions:

```rust use bevy::prelude::*; use noisybevy::simplexnoise_2d;

let p = Vec2::new(12.3, 45.6); let value = simplexnoise2d(p); ```

From wgsl shaders

First add the plugin to the Bevy app:

rust ignore App::new() .add_plugin(NoisyShaderPlugin)

And import it and use it in your shaders, with the same API as on the CPU-side:

```wgsl

import noisy_bevy::prelude

// ...

let p = vec2(12.3, 45.6); let value = simplexnoise2d(p); ```

See the asteroids example, for an example that uses noise to procedurally generate a tilemap on the CPU and a matching background in a wgsl shader.

Bevy Version Support

The main branch targets the latest bevy release.

|bevy|noisy_bevy| |----|----------| |0.10| 0.3, main| |0.9 | 0.2 | |0.8 | 0.1 |

License

MIT

The original simplex noise source is MIT-only, however all changes made by me or PRs to this repo are also available under Apache-2.0.

Acknowledgments

The noise primitives are ports/copies of these

Contributions

PRs welcome!