CurveXyzTexture
Однопиксельная полоса данных из Curve.
CurveXyzTexture создаёт float-текстуру: CurveX → R, CurveY → G, CurveZ → B в RGBF. Назначьте Curve и Width (32…4096). Источник — общая ссылка, его Changed пересоздаёт пиксели; отсутствующая кривая даёт нулевой канал. Значения выше 1 сохраняются без отдельного флага HDR.
Выборка использует Curve.SampleBaked(i/Width), а не i/(Width−1). Последний пиксель не выбирает точную координату 1. Для таблицы по всему диапазону подготовьте Curve с доменом 0…1: другой домен автоматически не масштабируется. Mipmaps не создаются.
В текущей реализации унаследованный GetImage() возвращает null даже при существующих GPU-пикселях. Для редкой диагностики можно получить Image через RenderingServer.Texture2DGet(texture.GetRid()); освобождайте полученный Image после использования. Не читайте GPU каждый кадр. Изменение BakeResolution источника требует EmitChanged() для обновления текстуры.
Проверены данные GPU в Windows Forward+/Vulkan, обновление общих источников и сохранение ресурса. Этот прогон не проверяет shader-выборку, производительность или качество графики.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
CurveXyzTextureКонструктор
public CurveXyzTexture();Создаёт полосу шириной 256 без источников Curve. Конструктор не гарантирует готовых пикселей до первого обновления.
Свойства4
CurveXСвойство
public Curve CurveX { get; set; }Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал R. Одну Curve можно использовать в нескольких каналах.
CurveYСвойство
public Curve CurveY { get; set; }Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал G. Одну Curve можно использовать в нескольких каналах.
CurveZСвойство
public Curve CurveZ { get; set; }Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал B. Одну Curve можно использовать в нескольких каналах.
WidthСвойство
public int Width { get; set; }Ширина полосы 32…4096, по умолчанию 256; высота всегда 1. Генерируются отсчёты i/Width, поэтому последний пиксель не достигает координаты 1. Mipmaps не создаются.
Методы7
GetCurveXCurve
public Curve GetCurveX();Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал R. Одну Curve можно использовать в нескольких каналах.
CurveТекущая общая Curve или null, не копия.
GetCurveYCurve
public Curve GetCurveY();Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал G. Одну Curve можно использовать в нескольких каналах.
CurveТекущая общая Curve или null, не копия.
GetCurveZCurve
public Curve GetCurveZ();Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал B. Одну Curve можно использовать в нескольких каналах.
CurveТекущая общая Curve или null, не копия.
SetCurveXvoid
public void SetCurveX(Curve curve);Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал R. Одну Curve можно использовать в нескольких каналах.
| Имя | Тип | По умолчанию |
|---|---|---|
curve | Curve | — |
curveОбщая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой.
SetCurveYvoid
public void SetCurveY(Curve curve);Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал G. Одну Curve можно использовать в нескольких каналах.
| Имя | Тип | По умолчанию |
|---|---|---|
curve | Curve | — |
curveОбщая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой.
SetCurveZvoid
public void SetCurveZ(Curve curve);Общая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой. Здесь задаётся канал B. Одну Curve можно использовать в нескольких каналах.
| Имя | Тип | По умолчанию |
|---|---|---|
curve | Curve | — |
curveОбщая ссылка на Curve, изначально null. Изменение источника через Changed пересоздаёт пиксели. Null заполняет канал нулями. Выборка всегда идёт в 0…1, даже если домен Curve другой.
SetWidthvoid
public void SetWidth(int width);Ширина полосы 32…4096, по умолчанию 256; высота всегда 1. Генерируются отсчёты i/Width, поэтому последний пиксель не достигает координаты 1. Mipmaps не создаются.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
widthШирина полосы 32…4096, по умолчанию 256; высота всегда 1. Генерируются отсчёты i/Width, поэтому последний пиксель не достигает координаты 1. Mipmaps не создаются.