NoiseTexture2D
Процедурная 2D-текстура с отложенной генерацией, цветовой рампой и normal map.
Задайте Width/Height и Noise, подпишитесь на Changed до ожидания и дайте очереди выполнить обновление. Constructor/setter не возвращают готовые пиксели. Первая генерация выполняется в отложенном вызове без worker; последующие при поддержке потоков уходят в WorkerThreadPool. Поэтому первая большая картинка тоже может задержать главный поток.
GetImage возвращает текущую общую CPU-картинку, не копию и не обязательно результат последних setter. Размеры ресурса — желаемые настройки. При быстрых изменениях может публиковаться промежуточный результат перед повторной генерацией; Changed не подтверждает готовность именно последнего набора параметров. Настройте стабильный набор параметров и проверяйте данные после уведомления. Noise=null тоже даёт Changed, но CPU Image становится null; прежний GPU-ресурс не гарантированно очищается. RID может быть placeholder и не доказывает готовность.
Порядок: noise/invert/normalize → ColorRamp в RGBA8 → AsNormalMap → mipmaps. Общие Noise/Gradient отслеживаются по Changed; не меняйте их параллельно генерации. HasAlpha в 1.0.0 возвращает false даже при alpha-пикселях рампы — не используйте его как доказательство непрозрачности.
Проверены малые CPU-картинки, отложенные обновления и настройки. Видимая графика, GPU readback, швы, HDR и гонки потоков не проверялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NoiseTexture2DКонструктор
public NoiseTexture2D();Создаёт текстурный ресурс с Width/Height=512, GenerateMipmaps=true, Normalize=true и без Noise. Генерация отложена: сначала назначьте небольшой размер и Noise, подпишитесь на Changed до ожидания. Сам конструктор не даёт готового CPU Image. Собственный ресурс Dispose после завершения использования.
Свойства12
AsNormalMapСвойство
public bool AsNormalMap { get; set; }После ColorRamp превращает яркость в normal map через BumpStrength, затем создаёт mipmaps. Не создаёт геометрию, смещение поверхности или освещение автоматически. Для нормалей из исходного heightfield обычно оставьте ColorRamp пустой.
BumpStrengthСвойство
public float BumpStrength { get; set; }Сила градиента высоты при AsNormalMap=true, default 8. Это не высота mesh. Если normal-map режим выключен, значение сохраняется без запуска регенерации. Проверяйте конечный осмысленный диапазон сами.
ColorRampСвойство
public Gradient ColorRamp { get; set; }Общая Gradient-рампа: яркость шумового Image используется как позиция Sample. Changed рампы запускает регенерацию. Результат переводится в RGBA8: HDR-цвета и точность float не сохраняются. Это преобразование после invert/normalize, а не изменение самого шума. Полученная alpha не означает, что NoiseTexture2D.HasAlpha вернёт true.
GenerateMipmapsСвойство
public bool GenerateMipmaps { get; set; }Генерирует mip-уровни после ColorRamp/normal-map, default true. Снижает aliasing при уменьшении текстуры, но требует дополнительной работы и памяти; не увеличивает детализацию базового изображения. Флаг не является статусом выполняющейся задачи.
HeightСвойство
public int Height { get; set; }Желаемая положительная высота, default 512. Не является индикатором завершения генерации; сопоставляйте с реально полученным Image после обновления.
In3DSpaceСвойство
public bool In3DSpace { get; set; }Для 2D-текстуры берёт 3D-шум на срезе z=0 с учётом Offset генератора; default false использует 2D-шум. Не создаёт volume texture и не добавляет глубину Image.
InvertСвойство
public bool Invert { get; set; }Инвертирует яркость исходного изображения до ColorRamp и normal-map обработки. Не меняет seed и не означает инверсию финальных RGB. Изменение ставит регенерацию в очередь.
NoiseСвойство
public Noise Noise { get; set; }Общая ссылка на генератор Noise, например FastNoiseLite. Setter подписывается на его Changed и ставит обновление в очередь; результат не готов сразу. Изменения одного общего генератора обновляют все подписанные текстуры. При null Changed тоже может прийти, но новых данных нет; прежний GPU-ресурс не гарантированно очищается. Не Dispose заимствованный getter-wrapper и не меняйте генератор из другого потока во время выборки.
NormalizeСвойство
public bool Normalize { get; set; }Включает min/max-нормализацию при генерации шумового изображения/объёма, default true. Меняет mapping данных, а не только отображение. Отдельно нормализованные чанки могут получить разный контраст; постоянное поле становится нулевой яркостью до invert. Изменение требует очереди генерации.
SeamlessСвойство
public bool Seamless { get; set; }Выбирает blending расширенного шумового поля для повторения. Не гарантирует непрерывность произвольных terrain-чанков и не включает Repeat у материала. Дополнительная работа/память зависит от SeamlessBlendSkirt; видимое качество швов здесь не проверялось.
SeamlessBlendSkirtСвойство
public float SeamlessBlendSkirt { get; set; }Доля дополнительного поля для Seamless, default 0.1; setter принимает 0..1, но крайние/большие значения не проверены. Даже 0 оставляет минимальную область blending в реализации Noise. Это не пиксели и не качество AA. Для обычного случая начните с default.
WidthСвойство
public int Width { get; set; }Желаемая положительная ширина, default 512. Setter сразу меняет метаданные и откладывает регенерацию: старый GetImage может иметь другой размер. Ограничьте размер по памяти/устройству; диапазон Inspector не является гарантией доступной GPU-текстуры.
Методы22
GetBumpStrengthfloat
public float GetBumpStrength();Читает настройку BumpStrength, не состояние завершения задачи. Сила градиента высоты при AsNormalMap=true, default 8. Это не высота mesh. Если normal-map режим выключен, значение сохраняется без запуска регенерации. Проверяйте конечный осмысленный диапазон сами.
floatСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
GetColorRampGradient
public Gradient GetColorRamp();Читает настройку ColorRamp, не состояние завершения задачи. Общая Gradient-рампа: яркость шумового Image используется как позиция Sample. Changed рампы запускает регенерацию. Результат переводится в RGBA8: HDR-цвета и точность float не сохраняются. Это преобразование после invert/normalize, а не изменение самого шума. Полученная alpha не означает, что NoiseTexture2D.HasAlpha вернёт true.
GradientОбщий назначенный ресурс либо null; не Dispose заимствованный wrapper.
GetInvertbool
public bool GetInvert();Читает настройку Invert, не состояние завершения задачи. Инвертирует яркость исходного изображения до ColorRamp и normal-map обработки. Не меняет seed и не означает инверсию финальных RGB. Изменение ставит регенерацию в очередь.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
GetNoiseNoise
public Noise GetNoise();Читает настройку Noise, не состояние завершения задачи. Общая ссылка на генератор Noise, например FastNoiseLite. Setter подписывается на его Changed и ставит обновление в очередь; результат не готов сразу. Изменения одного общего генератора обновляют все подписанные текстуры. При null Changed тоже может прийти, но новых данных нет; прежний GPU-ресурс не гарантированно очищается. Не Dispose заимствованный getter-wrapper и не меняйте генератор из другого потока во время выборки.
NoiseОбщий назначенный ресурс либо null; не Dispose заимствованный wrapper.
GetSeamlessbool
public bool GetSeamless();Читает настройку Seamless, не состояние завершения задачи. Выбирает blending расширенного шумового поля для повторения. Не гарантирует непрерывность произвольных terrain-чанков и не включает Repeat у материала. Дополнительная работа/память зависит от SeamlessBlendSkirt; видимое качество швов здесь не проверялось.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
GetSeamlessBlendSkirtfloat
public float GetSeamlessBlendSkirt();Читает настройку SeamlessBlendSkirt, не состояние завершения задачи. Доля дополнительного поля для Seamless, default 0.1; setter принимает 0..1, но крайние/большие значения не проверены. Даже 0 оставляет минимальную область blending в реализации Noise. Это не пиксели и не качество AA. Для обычного случая начните с default.
floatСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
IsGeneratingMipmapsbool
public bool IsGeneratingMipmaps();Читает настройку GenerateMipmaps, не состояние завершения задачи. Генерирует mip-уровни после ColorRamp/normal-map, default true. Снижает aliasing при уменьшении текстуры, но требует дополнительной работы и памяти; не увеличивает детализацию базового изображения. Флаг не является статусом выполняющейся задачи.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
IsIn3DSpacebool
public bool IsIn3DSpace();Читает настройку In3DSpace, не состояние завершения задачи. Для 2D-текстуры берёт 3D-шум на срезе z=0 с учётом Offset генератора; default false использует 2D-шум. Не создаёт volume texture и не добавляет глубину Image.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
IsNormalMapbool
public bool IsNormalMap();Читает настройку AsNormalMap, не состояние завершения задачи. После ColorRamp превращает яркость в normal map через BumpStrength, затем создаёт mipmaps. Не создаёт геометрию, смещение поверхности или освещение автоматически. Для нормалей из исходного heightfield обычно оставьте ColorRamp пустой.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
IsNormalizedbool
public bool IsNormalized();Читает настройку Normalize, не состояние завершения задачи. Включает min/max-нормализацию при генерации шумового изображения/объёма, default true. Меняет mapping данных, а не только отображение. Отдельно нормализованные чанки могут получить разный контраст; постоянное поле становится нулевой яркостью до invert. Изменение требует очереди генерации.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
SetAsNormalMapvoid
public void SetAsNormalMap(bool asNormalMap);Устанавливает AsNormalMap; применяется по правилам очереди генерации. После ColorRamp превращает яркость в normal map через BumpStrength, затем создаёт mipmaps. Не создаёт геометрию, смещение поверхности или освещение автоматически. Для нормалей из исходного heightfield обычно оставьте ColorRamp пустой.
| Имя | Тип | По умолчанию |
|---|---|---|
asNormalMap | bool | — |
asNormalMapНовое значение AsNormalMap; диапазон и область действия указаны в описании.
SetBumpStrengthvoid
public void SetBumpStrength(float bumpStrength);Устанавливает BumpStrength; применяется по правилам очереди генерации. Сила градиента высоты при AsNormalMap=true, default 8. Это не высота mesh. Если normal-map режим выключен, значение сохраняется без запуска регенерации. Проверяйте конечный осмысленный диапазон сами.
| Имя | Тип | По умолчанию |
|---|---|---|
bumpStrength | float | — |
bumpStrengthНовое значение BumpStrength; диапазон и область действия указаны в описании.
SetColorRampvoid
public void SetColorRamp(Gradient gradient);Устанавливает ColorRamp; применяется по правилам очереди генерации. Общая Gradient-рампа: яркость шумового Image используется как позиция Sample. Changed рампы запускает регенерацию. Результат переводится в RGBA8: HDR-цвета и точность float не сохраняются. Это преобразование после invert/normalize, а не изменение самого шума. Полученная alpha не означает, что NoiseTexture2D.HasAlpha вернёт true.
| Имя | Тип | По умолчанию |
|---|---|---|
gradient | Gradient | — |
gradientОбщая ссылка на ресурс; изменения Changed отслеживаются, копия не создаётся.
SetGenerateMipmapsvoid
public void SetGenerateMipmaps(bool invert);Устанавливает GenerateMipmaps; применяется по правилам очереди генерации. Генерирует mip-уровни после ColorRamp/normal-map, default true. Снижает aliasing при уменьшении текстуры, но требует дополнительной работы и памяти; не увеличивает детализацию базового изображения. Флаг не является статусом выполняющейся задачи.
| Имя | Тип | По умолчанию |
|---|---|---|
invert | bool | — |
invertНесмотря на имя invert, true включает mipmaps, false выключает. Не меняет Invert текстуры.
SetHeightvoid
public void SetHeight(int height);Устанавливает Height; применяется по правилам очереди генерации. Желаемая положительная высота, default 512. Не является индикатором завершения генерации; сопоставляйте с реально полученным Image после обновления.
| Имя | Тип | По умолчанию |
|---|---|---|
height | int | — |
heightПоложительный желаемый размер; ограничьте память и дождитесь генерации данных.
SetIn3DSpacevoid
public void SetIn3DSpace(bool enable);Устанавливает In3DSpace; применяется по правилам очереди генерации. Для 2D-текстуры берёт 3D-шум на срезе z=0 с учётом Offset генератора; default false использует 2D-шум. Не создаёт volume texture и не добавляет глубину Image.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableНовое значение In3DSpace; диапазон и область действия указаны в описании.
SetInvertvoid
public void SetInvert(bool invert);Устанавливает Invert; применяется по правилам очереди генерации. Инвертирует яркость исходного изображения до ColorRamp и normal-map обработки. Не меняет seed и не означает инверсию финальных RGB. Изменение ставит регенерацию в очередь.
| Имя | Тип | По умолчанию |
|---|---|---|
invert | bool | — |
invertНовое значение Invert; диапазон и область действия указаны в описании.
SetNoisevoid
public void SetNoise(Noise noise);Устанавливает Noise; применяется по правилам очереди генерации. Общая ссылка на генератор Noise, например FastNoiseLite. Setter подписывается на его Changed и ставит обновление в очередь; результат не готов сразу. Изменения одного общего генератора обновляют все подписанные текстуры. При null Changed тоже может прийти, но новых данных нет; прежний GPU-ресурс не гарантированно очищается. Не Dispose заимствованный getter-wrapper и не меняйте генератор из другого потока во время выборки.
| Имя | Тип | По умолчанию |
|---|---|---|
noise | Noise | — |
noiseОбщая ссылка на ресурс; изменения Changed отслеживаются, копия не создаётся.
SetNormalizevoid
public void SetNormalize(bool normalize);Устанавливает Normalize; применяется по правилам очереди генерации. Включает min/max-нормализацию при генерации шумового изображения/объёма, default true. Меняет mapping данных, а не только отображение. Отдельно нормализованные чанки могут получить разный контраст; постоянное поле становится нулевой яркостью до invert. Изменение требует очереди генерации.
| Имя | Тип | По умолчанию |
|---|---|---|
normalize | bool | — |
normalizeНовое значение Normalize; диапазон и область действия указаны в описании.
SetSeamlessvoid
public void SetSeamless(bool seamless);Устанавливает Seamless; применяется по правилам очереди генерации. Выбирает blending расширенного шумового поля для повторения. Не гарантирует непрерывность произвольных terrain-чанков и не включает Repeat у материала. Дополнительная работа/память зависит от SeamlessBlendSkirt; видимое качество швов здесь не проверялось.
| Имя | Тип | По умолчанию |
|---|---|---|
seamless | bool | — |
seamlessНовое значение Seamless; диапазон и область действия указаны в описании.
SetSeamlessBlendSkirtvoid
public void SetSeamlessBlendSkirt(float seamlessBlendSkirt);Устанавливает SeamlessBlendSkirt; применяется по правилам очереди генерации. Доля дополнительного поля для Seamless, default 0.1; setter принимает 0..1, но крайние/большие значения не проверены. Даже 0 оставляет минимальную область blending в реализации Noise. Это не пиксели и не качество AA. Для обычного случая начните с default.
| Имя | Тип | По умолчанию |
|---|---|---|
seamlessBlendSkirt | float | — |
seamlessBlendSkirtНовое значение SeamlessBlendSkirt; диапазон и область действия указаны в описании.
SetWidthvoid
public void SetWidth(int width);Устанавливает Width; применяется по правилам очереди генерации. Желаемая положительная ширина, default 512. Setter сразу меняет метаданные и откладывает регенерацию: старый GetImage может иметь другой размер. Ограничьте размер по памяти/устройству; диапазон Inspector не является гарантией доступной GPU-текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
widthПоложительный желаемый размер; ограничьте память и дождитесь генерации данных.