FastNoiseLite

Наследует: Noise < Resource < RefCounted < Object

Генерирует шум с помощью библиотеки FastNoiseLite.

Описание

Этот класс генерирует шум с помощью библиотеки FastNoiseLite, которая представляет собой набор из нескольких алгоритмов шума, включая Cellular, Perlin, Value и другие.

Большинство генерируемых значений шума находятся в диапазоне [-1, 1], но не всегда. Некоторые алгоритмы клеточного шума возвращают результаты выше 1.

Свойства

CellularDistanceFunction

cellular_distance_function

0

float

cellular_jitter

1.0

CellularReturnType

cellular_return_type

1

float

domain_warp_amplitude

30.0

bool

domain_warp_enabled

false

float

domain_warp_fractal_gain

0.5

float

domain_warp_fractal_lacunarity

6.0

int

domain_warp_fractal_octaves

5

DomainWarpFractalType

domain_warp_fractal_type

1

float

domain_warp_frequency

0.05

DomainWarpType

domain_warp_type

0

float

fractal_gain

0.5

float

fractal_lacunarity

2.0

int

fractal_octaves

5

float

fractal_ping_pong_strength

2.0

FractalType

fractal_type

1

float

fractal_weighted_strength

0.0

float

frequency

0.01

NoiseType

noise_type

1

Vector3

offset

Vector3(0, 0, 0)

int

seed

0


Перечисления

enum NoiseType: 🔗

NoiseType TYPE_VALUE = 5

Решетке точек присваиваются случайные значения, а затем они интерполируются на основе соседних значений.

NoiseType TYPE_VALUE_CUBIC = 4

Аналогично шуму значений (TYPE_VALUE), но медленнее. Имеет большую дисперсию пиков и впадин.

Кубический шум можно использовать для предотвращения определённых артефактов при использовании шума значений для создания рельефной карты. В целом, этот режим следует всегда использовать, если шум значений используется для карты высот или рельефной карты.

NoiseType TYPE_PERLIN = 3

Решетка случайных градиентов. Их скалярные произведения интерполируются для получения значений между решетками.

NoiseType TYPE_CELLULAR = 2

Сотовая связь включает в себя как шум Worley, так и диаграммы Voronoi, которые создают различные области с одинаковым значением.

NoiseType TYPE_SIMPLEX = 0

В отличие от TYPE_PERLIN, градиенты существуют в симплексной решетке, а не в сетке сетки, избегая направленных артефактов. Внутренне использует тип шума OpenSimplex2 от FastNoiseLite.

NoiseType TYPE_SIMPLEX_SMOOTH = 1

Измененная, более качественная версия TYPE_SIMPLEX, но медленнее. Внутренне использует тип шума OpenSimplex2S от FastNoiseLite.


enum FractalType: 🔗

FractalType FRACTAL_NONE = 0

Отсутствие фрактального шума.

FractalType FRACTAL_FBM = 1

Метод, использующий дробное броуновское движение для объединения октав во фрактал.

FractalType FRACTAL_RIDGED = 2

Метод объединения октав во фрактал, в результате чего получается «ребристый» вид.

FractalType FRACTAL_PING_PONG = 3

Метод объединения октав во фрактал с эффектом пинг-понга.


enum CellularDistanceFunction: 🔗

CellularDistanceFunction DISTANCE_EUCLIDEAN = 0

Евклидово расстояние до ближайшей точки.

CellularDistanceFunction DISTANCE_EUCLIDEAN_SQUARED = 1

Квадрат Евклидова расстояния до ближайшей точки.

CellularDistanceFunction DISTANCE_MANHATTAN = 2

Расстояние по Манхэттену (по шкале taxicab) до ближайшей точки.

CellularDistanceFunction DISTANCE_HYBRID = 3

Сочетание DISTANCE_EUCLIDEAN и DISTANCE_MANHATTAN для получения изогнутых границ ячеек.


enum CellularReturnType: 🔗

CellularReturnType RETURN_CELL_VALUE = 0

Функция расстояния между ячейками вернет одинаковое значение для всех точек внутри ячейки.

CellularReturnType RETURN_DISTANCE = 1

Функция расстояния по ячейке вернет значение, определяемое расстоянием до ближайшей точки.

CellularReturnType RETURN_DISTANCE2 = 2

Функция расстояния по ячейке возвращает расстояние до второй ближайшей точки.

CellularReturnType RETURN_DISTANCE2_ADD = 3

Расстояние до ближайшей точки прибавляется к расстоянию до второй по близости точки.

CellularReturnType RETURN_DISTANCE2_SUB = 4

Расстояние до ближайшей точки вычитается из расстояния до второй по близости точки.

CellularReturnType RETURN_DISTANCE2_MUL = 5

Расстояние до ближайшей точки умножается на расстояние до второй по ближайшей точке.

CellularReturnType RETURN_DISTANCE2_DIV = 6

Расстояние до ближайшей точки делится на расстояние до второй по ближайшей точке.


enum DomainWarpType: 🔗

DomainWarpType DOMAIN_WARP_SIMPLEX = 0

Домен деформируется с помощью алгоритма симплексного шума.

DomainWarpType DOMAIN_WARP_SIMPLEX_REDUCED = 1

Домен деформируется с использованием упрощенной версии алгоритма симплексного шума.

DomainWarpType DOMAIN_WARP_BASIC_GRID = 2

Домен деформируется с помощью простой сетки шума (не такой гладкой, как другие методы, но более производительной).


enum DomainWarpFractalType: 🔗

DomainWarpFractalType DOMAIN_WARP_FRACTAL_NONE = 0

Отсутствие фрактального шума, деформирующего пространство.

DomainWarpFractalType DOMAIN_WARP_FRACTAL_PROGRESSIVE = 1

Пространство постепенно деформируется, октава за октавой, что приводит к более "жидкому" искажению.

DomainWarpFractalType DOMAIN_WARP_FRACTAL_INDEPENDENT = 2

Искривление пространства происходит независимо для каждой октавы, что приводит к более хаотичным искажениям.


Описания свойств

CellularDistanceFunction cellular_distance_function = 0 🔗

Определяет, как вычисляется расстояние до ближайшей/второй по близости точки.


float cellular_jitter = 1.0 🔗

  • void set_cellular_jitter(value: float)

  • float get_cellular_jitter()

Максимальное расстояние, на которое точка может сместиться от своей позиции сетки. Установите 0 для равномерной сетки.


CellularReturnType cellular_return_type = 1 🔗

Тип возврата из расчетов клеточного шума.


float domain_warp_amplitude = 30.0 🔗

  • void set_domain_warp_amplitude(value: float)

  • float get_domain_warp_amplitude()

Устанавливает максимальное расстояние деформации от начала координат.


bool domain_warp_enabled = false 🔗

  • void set_domain_warp_enabled(value: bool)

  • bool is_domain_warp_enabled()

Если этот параметр включен, для деформации пространства используется другой экземпляр FastNoiseLite, что приводит к искажению шума.


float domain_warp_fractal_gain = 0.5 🔗

  • void set_domain_warp_fractal_gain(value: float)

  • float get_domain_warp_fractal_gain()

Определяет силу каждого последующего слоя шума, который используется для деформации пространства.

Низкое значение делает больший акцент на базовых слоях с более низкой частотой, тогда как высокое значение делает больший акцент на слоях с более высокой частотой.


float domain_warp_fractal_lacunarity = 6.0 🔗

  • void set_domain_warp_fractal_lacunarity(value: float)

  • float get_domain_warp_fractal_lacunarity()

Изменение частоты между октавами, также известное как «лакунарность», фрактального шума, искажающего пространство. Увеличение этого значения приводит к повышению октав, создавая шум с более мелкими деталями и более грубым внешним видом.


int domain_warp_fractal_octaves = 5 🔗

  • void set_domain_warp_fractal_octaves(value: int)

  • int get_domain_warp_fractal_octaves()

Количество слоев шума, которые выбираются для получения окончательного значения фрактального шума, искажающего пространство.


DomainWarpFractalType domain_warp_fractal_type = 1 🔗

Метод объединения октав во фрактал, используемый для деформации пространства.


float domain_warp_frequency = 0.05 🔗

  • void set_domain_warp_frequency(value: float)

  • float get_domain_warp_frequency()

Частота шума, который деформирует пространство. Низкая частота приводит к плавному шуму, а высокая частота приводит к более грубому, гранулярному шуму.


DomainWarpType domain_warp_type = 0 🔗

Алгоритм варпа.


float fractal_gain = 0.5 🔗

  • void set_fractal_gain(value: float)

  • float get_fractal_gain()

Определяет силу каждого последующего слоя шума во фрактальном шуме.

Низкое значение делает больший акцент на базовых слоях с более низкой частотой, тогда как высокое значение делает больший акцент на слоях с более высокой частотой.


float fractal_lacunarity = 2.0 🔗

  • void set_fractal_lacunarity(value: float)

  • float get_fractal_lacunarity()

Множитель частоты между последующими октавами. Увеличение этого значения приводит к тому, что более высокие октавы производят шум с более тонкими деталями и более грубым внешним видом.


int fractal_octaves = 5 🔗

  • void set_fractal_octaves(value: int)

  • int get_fractal_octaves()

Количество слоев шума, которые выбираются для получения окончательного значения для типов фрактального шума.


float fractal_ping_pong_strength = 2.0 🔗

  • void set_fractal_ping_pong_strength(value: float)

  • float get_fractal_ping_pong_strength()

Устанавливает силу фрактального типа пинг-понга.


FractalType fractal_type = 1 🔗

Метод объединения октав во фрактал.


float fractal_weighted_strength = 0.0 🔗

  • void set_fractal_weighted_strength(value: float)

  • float get_fractal_weighted_strength()

Более высокий вес означает, что более высокие октавы оказывают меньшее влияние, если более низкие октавы оказывают большее влияние.


float frequency = 0.01 🔗

  • void set_frequency(value: float)

  • float get_frequency()

Частота для всех типов шума. Низкая частота приводит к гладкому шуму, а высокая частота приводит к более грубому, более гранулярному шуму.


NoiseType noise_type = 1 🔗

Используемый алгоритм шума.


Vector3 offset = Vector3(0, 0, 0) 🔗

Перевести входные координаты шума по заданному Vector3.


int seed = 0 🔗

  • void set_seed(value: int)

  • int get_seed()

Начальное значение случайного числа для всех типов шума.