3 个不稳定版本
新 0.2.0 | 2024年8月18日 |
---|---|
0.1.1 | 2024年8月14日 |
0.1.0 | 2024年8月14日 |
#267 in 硬件支持
每月371次下载
470KB
6K SLoC
fastnoise2
fastnoise2提供了一个易于使用且大部分安全的接口,用于FastNoise2 C++库,该库通过SIMD提供基于节点图模块化的噪声生成。
此crate是FastNoise2的不安全绑定fastnoise2-sys的包装。
示例
以下是一个由FastNoise2的NoiseTool导出的编码节点树的示例。
use fastnoise2::SafeNode;
let (x_size, y_size) = (1000, 1000);
let encoded_node_tree = "EQACAAAAAAAgQBAAAAAAQBkAEwDD9Sg/DQAEAAAAAAAgQAkAAGZmJj8AAAAAPwEEAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MTD4AMzMzPwAAAAA/";
let node = SafeNode::from_encoded_node_tree(encoded_node_tree).unwrap();
// Allocate a buffer of enough size to hold all output data.
let mut noise_out = vec![0.0; (x_size * y_size) as usize];
let min_max = node.gen_uniform_grid_2d(
&mut noise_out,
-x_size / 2, // x offset
-y_size / 2, // y offset
x_size,
y_size,
0.01, // frequency
1337, // seed
);
// use `noise_out`!
您还可以使用FastNoise2的元数据系统手动编码节点树,使用Node
,或者通过组合生成器,参见SafeNode
。
查看examples
了解更多信息。
设置
fastnoise2-sys,fastnoise2的基础绑定,使用一个遵循特定编译和/或链接FastNoise2库顺序的构建脚本
- 从源码构建,如果启用了
build-from-source
功能。 - 如果环境变量
FASTNOISE2_LIB_DIR
设置为/path/to/lib/
,则会搜索静态FastNoise
库的该路径。 - 如果没有设置,则会回退到从源码构建。
从源码构建
要使用fastnoise2-sys从源码构建FastNoise2,请确保您有
- CMake
- C++17编译器
注意
- 如果您不想从源码构建,可以从FastNoise2 发布下载预编译的二进制文件。
FASTNOISE2_SOURCE_DIR
环境变量通常不需要,因为fastnoise2-sys将FastNoise2源代码作为Git子模块包含在内。如果您需要使用不同的源目录,请将FASTNOISE2_SOURCE_DIR
设置为指向FastNoise2源代码的根目录。
依赖关系
~0.3–2.7MB
~56K SLoC