#noise #random #math #perlin-noise #generation #procedural #gradient

noice

noise-rs的分支,一个过程噪声生成库

2个版本

0.7.1 2020年12月15日
0.7.0 2020年12月15日

#1906算法

MIT/Apache

245KB
5.5K SLoC

noice

Build Status Documentation Crates.io

Rust的过程噪声生成库 - 由noise-rs分支而来

文档

use noise::{Fbm, NoiseFn};

let fbm = Fbm::new();

let val = fbm.get([42.0, 37.0, 2.0]);

API

梯度噪声

梯度噪声在空间中产生平滑、连续的值。这是通过将空间划分为区域,并在每个顶点上放置一个随机梯度,然后在这些梯度之间进行混合来实现的。

Perlin噪声

非常快且质量合理的梯度噪声

  • Perlin::()

OpenSimplex噪声

一种较慢但质量更高的梯度噪声形式

  • OpenSimplex::()

值噪声

值噪声(有时与梯度噪声混淆)产生质量较低的平滑噪声。它显示出明显的网格伪影,但可能比梯度噪声略快。基准测试显示,它比Perlin噪声快约1.2-1.3倍。

使用加权S曲线线性插值方法对单元格邻居进行混合。这消除了网格边缘的任何不连续性。

  • ::()

分数布朗运动

一种将噪声函数的多个八度音阶组合在一起以创建更丰富、更多样化的输出的方法

  • Fbm::()

Worley噪声

以Steven Worley的名字命名,也称为Voronoi噪声,它基于将空间划分为基于随机种子点距离的单元格

  • Worley::()

噪声函数

这些是实际的噪声函数,它们仅使用get()获取坐标并返回一个值。它们可以在声明时连接在一起,创建非常复杂的噪声结果。

请参阅各个函数页面以获取其描述,以及示例以了解其用法。

许可

根据以下之一许可

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献都将根据上述方式双许可,没有任何额外的条款或条件。

依赖关系

~5MB
~68K SLoC