2个版本 (1个稳定版)
1.0.3 | 2022年1月10日 |
---|---|
0.1.0 | 2022年1月10日 |
#551 in 数学
每月113次下载
23KB
297 行
简简单单的噪声生成器和分形布朗运动算法。
使用use simple_simplex::NoiseConfig;
导入
Simple-Simplex是一个用于生成值的库。这被称为noise
。
Simple-Simplex还应用了被称为Fractal Brownian Motion
或FBM
的技术到生成的值上。
当许多这样的noise
值被生成并放入数组/列表/向量中时,它们被称为noisemaps
。Noisemaps可用于许多事情,例如生成图像、游戏《无人之地》/《我的世界》中的地形、粒子效果、数字艺术,甚至是程序生成的地牢。
Simple-Simplex支持...
-
生成噪声值、应用分形布朗运动以及将输出转换为范围。
-
在不应用分形布朗运动或范围的情况下生成噪声值。
-
使用
output()
和output_1d()
方法将Simplex噪声/FBM值直接输出到终端的ascii格式。
以下:使用output()
方法的示例,在VS Code终端中发送。
以下为在 VS Code 终端中发送的 output_1d()
方法的示例。
output()
和 output_1d()
允许用户了解给定噪声的最终噪声图将看起来像什么。
快速入门指南
如果您还不了解 FBM
(分形布朗运动)、Fractal Brownian Motion
、noise
(噪声)、Simplex Noise
(简并噪声)或 noisemap
(噪声图)等术语,我建议您阅读 /docs 中的 TERMSNDEF.md。
本节将帮助您开始使用 simple-simplex
1: 创建噪声配置。
simple-simplex 使用所谓的 Noise Configuration
(噪声配置)。请看下面的示例
use simple_simplex::NoiseConfig;
let config: NoiseConfig = NoiseConfig::new(
3, // Octaves
0.01, // X-Frequency
0.01, // Y-Frequency
0.05, // Amplitude
2.5, // Lacunarity
0.5, // Gain
(0.0, 255.0), // range
4201337 // seed
);
在上面的图像中,我们正在创建一个新的 NoiseConfig。一个 NoiseConfig 包含关于 FBM 将如何表现的数据。有关这些变量如何表现的更深入解释,请参阅 /docs 中的 NOISECONFIG.md。
2: 生成值。
创建噪声配置后,您就可以开始生成值了!
有几个方法可供您立即使用
-
config.generate_raw()
:生成一个 原始 简并噪声值。这里的“原始”意味着不对结果应用 FBM。该值不转换为范围。
-
config.generate_raw_range()
:生成一个 原始 简并噪声值。该值没有应用 FBM。值转换为噪声配置中指定的范围。
-
config.generate_range()
:生成一个应用了 FBM 的简并噪声值。这意味着应用了 FBM。该值转换为指定的范围。
-
config.generate_rangeless()
:生成一个应用了 FBM 的简并噪声值。这意味着应用了 FBM。该值不转换为指定的范围。
-
config.analyze()
:生成大量值并在终端打印关于配置输出的数据。当前功能不完整。打印
- 最大值数据。
- 最小值数据。
-
config.output()
:生成并输出一个噪声图到终端。注意,
size
变量既指输出图的宽度也指高度。请确保不要使图太宽,否则它将卷绕您的终端窗口。output()
还需要一个向量 ASCII 字符来输出。看起来像这样let vector: Vec<char> = vec![' ', '.', '-', '=', 'z','X', '#'];
这些字符是该方法将使用的输出。它们必须是升序或降序。
-
config.output_1d()
生成并输出一个 1d 噪声图到终端。不要让
height
变量太高。一个好的数字是30
。请确保不要让length
变量太高,否则它将卷绕终端窗口。
现在您可以从生成值开始了!
如果您有任何建议/错误报告/功能请求等,请将其作为问题提交。
依赖关系
~335KB