1个不稳定版本
新 0.1.1 | 2024年8月14日 |
---|---|
0.1.0 |
|
#1323 在 硬件支持
每月 208 次下载
用于 fastnoise2
180KB
4K SLoC
fastnoise2
fastnoise2提供了一个易于使用且大部分安全的接口,用于FastNoise2 C++库,该库使用SIMD提供基于模块化节点图噪声生成。
此crate作为fastnoise2-sys的包装,即FastNoise2的不安全绑定。
示例
以下是一个由FastNoise2的NoiseTool导出的编码节点树的示例。
use fastnoise2::FastNoise;
let (x_size, y_size) = (1000, 1000);
let encoded_node_tree = "EQACAAAAAAAgQBAAAAAAQBkAEwDD9Sg/DQAEAAAAAAAgQAkAAGZmJj8AAAAAPwEEAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MTD4AMzMzPwAAAAA/";
let node = FastNoise::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];
// SAFETY: for now, it has to be unsafe, see the examples for more details.
let min_max = unsafe {
node.gen_uniform_grid_2d_unchecked(
&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的元数据系统手动编码一个节点树。有关更多信息,请参阅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–2MB
~41K SLoC