FastNoiseLite
Наследует: Noise < Resource < RefCounted < Object
Генерирует шум с помощью библиотеки FastNoiseLite.
Описание
Этот класс генерирует шум с помощью библиотеки FastNoiseLite, которая представляет собой набор из нескольких алгоритмов шума, включая Cellular, Perlin, Value и другие.
Большинство генерируемых значений шума находятся в диапазоне [-1, 1], но не всегда. Некоторые алгоритмы клеточного шума возвращают результаты выше 1.
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Перечисления
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 🔗
void set_cellular_distance_function(value: CellularDistanceFunction)
CellularDistanceFunction get_cellular_distance_function()
Определяет, как вычисляется расстояние до ближайшей/второй по близости точки.
Максимальное расстояние, на которое точка может сместиться от своей позиции сетки. Установите 0 для равномерной сетки.
CellularReturnType cellular_return_type = 1 🔗
void set_cellular_return_type(value: CellularReturnType)
CellularReturnType get_cellular_return_type()
Тип возврата из расчетов клеточного шума.
float domain_warp_amplitude = 30.0 🔗
Устанавливает максимальное расстояние деформации от начала координат.
bool domain_warp_enabled = false 🔗
Если этот параметр включен, для деформации пространства используется другой экземпляр FastNoiseLite, что приводит к искажению шума.
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 🔗
void set_domain_warp_fractal_type(value: DomainWarpFractalType)
DomainWarpFractalType get_domain_warp_fractal_type()
Метод объединения октав во фрактал, используемый для деформации пространства.
float domain_warp_frequency = 0.05 🔗
Частота шума, который деформирует пространство. Низкая частота приводит к плавному шуму, а высокая частота приводит к более грубому, гранулярному шуму.
DomainWarpType domain_warp_type = 0 🔗
void set_domain_warp_type(value: DomainWarpType)
DomainWarpType get_domain_warp_type()
Алгоритм варпа.
Определяет силу каждого последующего слоя шума во фрактальном шуме.
Низкое значение делает больший акцент на базовых слоях с более низкой частотой, тогда как высокое значение делает больший акцент на слоях с более высокой частотой.
float fractal_lacunarity = 2.0 🔗
Множитель частоты между последующими октавами. Увеличение этого значения приводит к тому, что более высокие октавы производят шум с более тонкими деталями и более грубым внешним видом.
Количество слоев шума, которые выбираются для получения окончательного значения для типов фрактального шума.
float fractal_ping_pong_strength = 2.0 🔗
Устанавливает силу фрактального типа пинг-понга.
FractalType fractal_type = 1 🔗
void set_fractal_type(value: FractalType)
FractalType get_fractal_type()
Метод объединения октав во фрактал.
float fractal_weighted_strength = 0.0 🔗
Более высокий вес означает, что более высокие октавы оказывают меньшее влияние, если более низкие октавы оказывают большее влияние.
Частота для всех типов шума. Низкая частота приводит к гладкому шуму, а высокая частота приводит к более грубому, более гранулярному шуму.
Используемый алгоритм шума.
Vector3 offset = Vector3(0, 0, 0) 🔗
Перевести входные координаты шума по заданному Vector3.
Начальное значение случайного числа для всех типов шума.