NoiseTexture3D
Процедурная объёмная текстура с очередью генерации и общим ресурсом Noise.
Установите малые Width/Height/Depth и Noise, подпишитесь до ожидания Changed. Генерация отложена, затем обычно работает через worker; несколько setter могут объединяться, а промежуточный результат — публиковаться перед повторной генерацией. Размеры — желаемые метаданные, не доказательство уже загруженного объёма.
В отличие от NoiseTexture2D, GetData читает данные через RenderingServer, а не возвращает сохранённый CPU-массив. Для CPU-слоёв используйте Noise.GetImage3D. Changed приходит и без Noise; format/старый GPU-ресурс при пустом результате могут сохраниться. Проверяйте собственный жизненный цикл генерации; один Changed или RID не доказывает свежесть/успех данных.
ColorRamp создаёт RGBA8; без него используется формат шумовых изображений. Mipmaps у этой реализации отсутствуют. Оцените память всего объёма и временных данных. Ограничение Seamless/Depth=1 наследуется от CPU-генератора Noise; оно не было проверено через GPU.
Проверены очереди, уведомления, общие ресурсы, валидные настройки и формат-метаданные. Пиксели 3D volume, GPU readback/отображение, visual seams, HDR, пределы памяти и конкурентные изменения не проверялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
NoiseTexture3DКонструктор
public NoiseTexture3D();Создаёт объёмную текстуру с Width/Height/Depth=64, Normalize=true и без Noise. Назначьте малые размеры и генератор до ожидания Changed. Ресурс не хранит публичный готовый CPU-массив: GetData использует RenderingServer и требует отдельной проверки readback. Собственный ресурс Dispose после использования.
Свойства9
ColorRampСвойство
public Gradient ColorRamp { get; set; }Общая Gradient-рампа: яркость шумового Image используется как позиция Sample. Changed рампы запускает регенерацию. Результат переводится в RGBA8: HDR-цвета и точность float не сохраняются. Это преобразование после invert/normalize, а не изменение самого шума. Полученная alpha не означает, что NoiseTexture2D.HasAlpha вернёт true.
DepthСвойство
public int Depth { get; set; }Желаемое положительное число Z-слоёв, default 64. В 1.0.0 Seamless с Depth=1 наследует лишний skirt-слой из Noise: не используйте этот сценарий без проверки фактических данных. Этот крайний случай не проверялся через GPU. Для одиночного среза рассмотрите NoiseTexture2D.In3DSpace.
HeightСвойство
public int Height { get; set; }Желаемая положительная высота volume, default 64. Метаданные могут опережать реально загруженный ресурс; Changed не является проверкой всех его пикселей.
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. В отличие от 2D, setter 3D принимает только 0.05..1. Это дополнительные сэмплы/память, не гарантированная гладкость. Начните с default; экстремальные значения не проверены.
WidthСвойство
public int Width { get; set; }Желаемая положительная ширина volume, default 64. Меняется сразу, независимо от завершения фоновой генерации. Учитывайте произведение Width×Height×Depth и временные буферы; положительные размеры не гарантируют доступную GPU-память.
Методы15
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. В отличие от 2D, setter 3D принимает только 0.05..1. Это дополнительные сэмплы/память, не гарантированная гладкость. Начните с default; экстремальные значения не проверены.
floatСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
IsNormalizedbool
public bool IsNormalized();Читает настройку Normalize, не состояние завершения задачи. Включает min/max-нормализацию при генерации шумового изображения/объёма, default true. Меняет mapping данных, а не только отображение. Отдельно нормализованные чанки могут получить разный контраст; постоянное поле становится нулевой яркостью до invert. Изменение требует очереди генерации.
boolСохранённая настройка, не гарантия готовности пикселей/GPU-данных.
SetColorRampvoid
public void SetColorRamp(Gradient gradient);Устанавливает ColorRamp; применяется по правилам очереди генерации. Общая Gradient-рампа: яркость шумового Image используется как позиция Sample. Changed рампы запускает регенерацию. Результат переводится в RGBA8: HDR-цвета и точность float не сохраняются. Это преобразование после invert/normalize, а не изменение самого шума. Полученная alpha не означает, что NoiseTexture2D.HasAlpha вернёт true.
| Имя | Тип | По умолчанию |
|---|---|---|
gradient | Gradient | — |
gradientОбщая ссылка на ресурс; изменения Changed отслеживаются, копия не создаётся.
SetDepthvoid
public void SetDepth(int depth);Устанавливает Depth; применяется по правилам очереди генерации. Желаемое положительное число Z-слоёв, default 64. В 1.0.0 Seamless с Depth=1 наследует лишний skirt-слой из Noise: не используйте этот сценарий без проверки фактических данных. Этот крайний случай не проверялся через GPU. Для одиночного среза рассмотрите NoiseTexture2D.In3DSpace.
| Имя | Тип | По умолчанию |
|---|---|---|
depth | int | — |
depthПоложительный желаемый размер; ограничьте память и дождитесь генерации данных.
SetHeightvoid
public void SetHeight(int height);Устанавливает Height; применяется по правилам очереди генерации. Желаемая положительная высота volume, default 64. Метаданные могут опережать реально загруженный ресурс; Changed не является проверкой всех его пикселей.
| Имя | Тип | По умолчанию |
|---|---|---|
height | int | — |
heightПоложительный желаемый размер; ограничьте память и дождитесь генерации данных.
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. В отличие от 2D, setter 3D принимает только 0.05..1. Это дополнительные сэмплы/память, не гарантированная гладкость. Начните с default; экстремальные значения не проверены.
| Имя | Тип | По умолчанию |
|---|---|---|
seamlessBlendSkirt | float | — |
seamlessBlendSkirtНовое значение SeamlessBlendSkirt; диапазон и область действия указаны в описании.
SetWidthvoid
public void SetWidth(int width);Устанавливает Width; применяется по правилам очереди генерации. Желаемая положительная ширина volume, default 64. Меняется сразу, независимо от завершения фоновой генерации. Учитывайте произведение Width×Height×Depth и временные буферы; положительные размеры не гарантируют доступную GPU-память.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
widthПоложительный желаемый размер; ограничьте память и дождитесь генерации данных.