Noise
Интерфейс координатного шума и создания CPU-изображений.
Используйте реализацию, например FastNoiseLite; Noise не является готовым конкретным генератором. Числовые сэмплы, grayscale Image и GPU texture — разные данные. Для heightfield сначала определите координаты и масштаб значений; не приравнивайте L8 к исходному float.
Базовые Image-методы сэмплируют целую сетку от нуля. Normalize растягивает диапазон отдельного изображения или всего запрошенного объёма; это может изменить контраст соседних отдельно созданных чанков. Для непрерывного мира подавайте согласованные координаты и используйте общий mapping значений.
Seamless blending предназначен для повторяемых изображений, не для произвольной склейки мира. В FastNoiseLite 1.0.0 есть проверенные особенности GetNoise1D/Offset.x и seamless-объёма depth=1; они описаны у методов. Проверены CPU-сэмплы/байты/размеры; визуальные швы, GPU и большие запросы не проверялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Методы9
GetImageImage
public Image GetImage(int width, int height, bool invert = false, bool in3DSpace = false, bool normalize = true);Синхронно создаёт CPU Image. Базовая реализация и FastNoiseLite сэмплируют целые x/y от 0 и возвращают L8 без mipmaps. in3DSpace=true берёт срез z=0, false использует 2D. normalize=true растягивает min/max этой картинки в 0..255; постоянное поле становится чёрным. false отображает −1..1 в 0..255 с обрезкой и потерей точности. invert меняет байт на 255−byte. Не создаёт GPU texture и не сохраняет файл.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
height | int | — |
invert | bool | false |
in3DSpace | bool | false |
normalize | bool | true |
widthПоложительная ширина изображения; ограничьте размер по памяти и времени CPU.
heightПоложительная высота изображения, не world-размер.
invertИнвертирует яркость после отображения в байты; не меняет seed или сэмплы генератора.
in3DSpacetrue сэмплирует 3D на z=0; false — 2D. Учитывается Offset реализации.
normalizetrue растягивает min/max всего запрошенного поля; false использует фиксированный mapping с обрезкой.
ImageНовый собственный CPU Image либо null с диагностикой при недопустимых условиях.
GetImage3DReckfell.Collections.Array<Image>
public Reckfell.Collections.Array<Image> GetImage3D(int width, int height, int depth, bool invert = false, bool normalize = true);Создаёт типизированный Array<Image> CPU-срезов z=0..depth−1, а не ImageTexture3D. Базовая реализация/FastNoiseLite даёт L8 без mipmaps; normalize=true использует общий min/max ВСЕГО запрошенного объёма. Раздельная нормализация чанков может дать разные шкалы яркости; для согласованных числовых heightfields задавайте собственный общий mapping. Освободите собственные Image после использования; у typed Array нет Dispose.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
height | int | — |
depth | int | — |
invert | bool | false |
normalize | bool | true |
widthПоложительная ширина изображения; ограничьте размер по памяти и времени CPU.
heightПоложительная высота изображения, не world-размер.
depthПоложительное число Z-срезов; для seamless depth=1 в 1.0.0 проверьте лишний слой.
invertИнвертирует яркость после отображения в байты; не меняет seed или сэмплы генератора.
normalizetrue растягивает min/max всего запрошенного поля; false использует фиксированный mapping с обрезкой.
Reckfell.Collections.Array<Image>Типизированный Array<Image> CPU-слоёв; Dispose собственные Image, проверяйте фактический Count.
GetNoise1Dfloat
public float GetNoise1D(float x);Возвращает числовой сэмпл реализации Noise. Для FastNoiseLite 1.0.0 это 2D-срез с дополнительной предварительной обработкой: Offset.x применяется дважды при выключенном warp. Если нужен однократный срез, вызывайте GetNoise2D(x, 0). Диапазон зависит от алгоритма; результат не обязательно 0..1.
| Имя | Тип | По умолчанию |
|---|---|---|
x | float | — |
xКонечная X-координата входного поля; масштаб учитывается реализацией/Frequency.
floatЧисловой сэмпл алгоритма, не гарантированная вероятность или нормализованная высота.
GetNoise2Dfloat
public float GetNoise2D(float x, float y);Сэмплирует шум в координате x/y, не в индексе готового Image. У FastNoiseLite учитывает Offset.X/Y, warp и Frequency. Для соседних terrain-чанков подавайте согласованные глобальные координаты, а не начинайте каждый чанк с нуля. Не гарантирует universal диапазон [−1,1].
| Имя | Тип | По умолчанию |
|---|---|---|
x | float | — |
y | float | — |
xКонечная X-координата входного поля; масштаб учитывается реализацией/Frequency.
yКонечная Y-координата того же поля.
floatЧисловой сэмпл алгоритма, не гарантированная вероятность или нормализованная высота.
GetNoise2Dvfloat
public float GetNoise2Dv(Vector2 v);Векторная форма GetNoise2D(v.X, v.Y) с теми же настройками и диапазоном. Не преобразует координаты Entity автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
v | Vector2 | — |
vКонечные координаты входного поля в Vector2/Vector3.
floatЧисловой сэмпл алгоритма, не гарантированная вероятность или нормализованная высота.
GetNoise3Dfloat
public float GetNoise3D(float x, float y, float z);Сэмплирует объёмный шум x/y/z. Это не отдельные независимые 2D-карты: изменение z задаёт другой срез того же поля. У FastNoiseLite применяются три компоненты Offset и 3D warp. Для анимации можно менять координату, но API не принимает время в секундах автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
x | float | — |
y | float | — |
z | float | — |
xКонечная X-координата входного поля; масштаб учитывается реализацией/Frequency.
yКонечная Y-координата того же поля.
zКонечная Z-координата объёмного поля.
floatЧисловой сэмпл алгоритма, не гарантированная вероятность или нормализованная высота.
GetNoise3Dvfloat
public float GetNoise3Dv(Vector3 v);Векторная форма GetNoise3D(v.X, v.Y, v.Z), не чтение пикселя или voxel из готового ресурса.
| Имя | Тип | По умолчанию |
|---|---|---|
v | Vector3 | — |
vКонечные координаты входного поля в Vector2/Vector3.
floatЧисловой сэмпл алгоритма, не гарантированная вероятность или нормализованная высота.
GetSeamlessImageImage
public Image GetSeamlessImage(int width, int height, bool invert = false, bool in3DSpace = false, float skirt = 0.1f, bool normalize = true);Создаёт CPU-картинку для повторения, смешивая расширенное поле по краям. skirt задаёт долю дополнительного поля, а не число пикселей: даже 0 оставляет минимум один дополнительный пиксель. Это не то же поле, что GetImage без blending, и не решение непрерывности произвольных соседних чанков. Используйте положительные размеры и разумный конечный skirt; отрицательный запрещён. Размер/формат проверены, визуальное качество стыка и экстремальные skirt — нет.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
height | int | — |
invert | bool | false |
in3DSpace | bool | false |
skirt | float | 0.1f |
normalize | bool | true |
widthПоложительная ширина изображения; ограничьте размер по памяти и времени CPU.
heightПоложительная высота изображения, не world-размер.
invertИнвертирует яркость после отображения в байты; не меняет seed или сэмплы генератора.
in3DSpacetrue сэмплирует 3D на z=0; false — 2D. Учитывается Offset реализации.
skirtРазумная конечная неотрицательная доля дополнительного поля, default 0.1; не пиксели. Большие значения увеличивают работу и не проверены.
normalizetrue растягивает min/max всего запрошенного поля; false использует фиксированный mapping с обрезкой.
ImageНовый собственный CPU Image либо null с диагностикой при недопустимых условиях.
GetSeamlessImage3DReckfell.Collections.Array<Image>
public Reckfell.Collections.Array<Image> GetSeamlessImage3D(int width, int height, int depth, bool invert = false, float skirt = 0.1f, bool normalize = true);Создаёт массив CPU-срезов со смешиванием по трём осям. В 1.0.0 depth=1 возвращает лишний skirt-слой: проверяйте Count; для одного 3D-среза используйте GetSeamlessImage(..., in3DSpace:true), если достаточно бесшовности по X/Y. Проверен объём depth=4; не предполагайте корректность любых размеров/skirt. normalize относится к расширенному полю. Метод не создаёт GPU volume и не доказывает отсутствие видимых швов.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
height | int | — |
depth | int | — |
invert | bool | false |
skirt | float | 0.1f |
normalize | bool | true |
widthПоложительная ширина изображения; ограничьте размер по памяти и времени CPU.
heightПоложительная высота изображения, не world-размер.
depthПоложительное число Z-срезов; для seamless depth=1 в 1.0.0 проверьте лишний слой.
invertИнвертирует яркость после отображения в байты; не меняет seed или сэмплы генератора.
skirtРазумная конечная неотрицательная доля дополнительного поля, default 0.1; не пиксели. Большие значения увеличивают работу и не проверены.
normalizetrue растягивает min/max всего запрошенного поля; false использует фиксированный mapping с обрезкой.
Reckfell.Collections.Array<Image>Типизированный Array<Image> CPU-слоёв; Dispose собственные Image, проверяйте фактический Count.