58 lines
1.5 KiB
Markdown
58 lines
1.5 KiB
Markdown
# [znoise](https://github.com/zig-gamedev/znoise)
|
|
|
|
Zig build package and bindings for [FastNoiseLite](https://github.com/Auburn/FastNoiseLite)
|
|
|
|
## Getting started
|
|
|
|
Example `build.zig`:
|
|
|
|
```zig
|
|
pub fn build(b: *std.Build) void {
|
|
const exe = b.addExecutable(.{ ... });
|
|
|
|
const znoise = b.dependency("znoise", .{});
|
|
exe.root_module.addImport("znoise", znoise.module("root"));
|
|
exe.linkLibrary(znoise.artifact("FastNoiseLite"));
|
|
}
|
|
```
|
|
|
|
Now in your code you may import and use znoise:
|
|
|
|
```zig
|
|
const znoise = @import("znoise");
|
|
|
|
pub fn main() !void {
|
|
...
|
|
{
|
|
const gen = znoise.FnlGenerator{};
|
|
const n2 = gen.noise2(0.1, 0.2);
|
|
const n3 = gen.noise3(1.0, 2.0, 3.0);
|
|
|
|
var x: f32 = 1.0;
|
|
var y: f32 = 2.0;
|
|
var z: f32 = 3.0;
|
|
gen.domainWarp3(&x, &y, &z);
|
|
}
|
|
|
|
{
|
|
const gen = znoise.FnlGenerator{
|
|
.seed = 1337,
|
|
.frequency = 0.01,
|
|
.noise_type = .opensimplex2,
|
|
.rotation_type3 = .none,
|
|
.fractal_type = .none,
|
|
.octaves = 3,
|
|
.lacunarity = 2.0,
|
|
.gain = 0.5,
|
|
.weighted_strength = 0.0,
|
|
.ping_pong_strength = 2.0,
|
|
.cellular_distance_func = .euclideansq,
|
|
.cellular_return_type = .distance,
|
|
.cellular_jitter_mod = 1.0,
|
|
.domain_warp_type = .opensimplex2,
|
|
.domain_warp_amp = 1.0,
|
|
};
|
|
const n = gen.noise2(0.1, 0.2);
|
|
}
|
|
}
|
|
```
|