GradientTexture2D
Текстура из Gradient: линейная, радиальная, квадратная или угловая.
Назначьте Gradient, размер и точки FillFrom/FillTo в нормализованных координатах. По умолчанию размер 64×64, Fill=Linear, FillFrom=(0,0), FillTo=(1,0), Repeat=None, UseHdr=false, а Gradient=null. Конструктор сам не создаёт Gradient.
Linear использует проекцию на ось, Radial — расстояние, Square — максимум расстояний по осям, Conic — угол. Repeat меняет координату при генерации рисунка; он не настраивает повторение готовой текстуры в материале. Если FillFrom и FillTo совпали, вся сетка выбирает Gradient.Sample(0).
Полный проверенный пример создания горизонтального перехода; возвращённую Texture2D можно назначить свойству Texture подходящего элемента:
using Reckfell;
public static class GradientRamp
{
public static GradientTexture2D Create()
{
using var gradient = new Gradient
{
Offsets = new[] { 0.0f, 1.0f },
Colors = new[] { Colors.Black, Colors.White },
InterpolationMode = Gradient.InterpolationModeEnum.Linear,
InterpolationColorSpace = Gradient.ColorSpace.Srgb,
};
return new GradientTexture2D
{
Gradient = gradient,
Width = 256,
Height = 32,
Fill = GradientTexture2D.FillEnum.Linear,
FillFrom = Vector2.Zero,
FillTo = new Vector2(1, 0),
Repeat = GradientTexture2D.RepeatEnum.None,
};
}
}Изменение общего Gradient обновляет связанные текстуры; GetImage принудительно завершает ожидающую генерацию. Чтение возвращает отдельное изображение. Null-источник не стирает прежние пиксели. UseHdr выбирает RGBAF вместо ограниченного RGBA8, но не включает эффекты окружения или HDR монитора.
Режимы заполнения, Repeat/Mirror, HDR/LDR, обновление и независимая загрузка сохранённого ресурса проверены в Forward+/Vulkan. Пример создаёт данные текстуры, а не иллюстрацию качества графики. Shader-выборка, все разрешения, производительность и другие backend этим прогоном не подтверждены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
GradientTexture2DКонструктор
public GradientTexture2D();Создаёт текстуру без назначенного Gradient и без готовых пикселей. Значения параметров по умолчанию не означают, что изображение уже создано.
Свойства8
FillСвойство
public GradientTexture2D.FillEnum Fill { get; set; }Форма координаты выборки: Linear проецирует на ось FillFrom→FillTo; Radial использует расстояние от FillFrom, Square — максимум расстояний по осям, Conic — угол вокруг FillFrom с нулевым лучом в сторону FillTo. По умолчанию Linear.
FillFromСвойство
public Vector2 FillFrom { get; set; }Начало заполнения в нормализованных координатах текстуры, по умолчанию (0, 0). Для Radial, Square и Conic это центр. Это не координаты в пикселях; setter не ограничивает вектор диапазоном 0…1.
FillToСвойство
public Vector2 FillTo { get; set; }Вторая точка в нормализованных координатах, по умолчанию (1, 0). Задаёт конец линейной оси, масштаб Radial/Square или нулевой луч Conic. При равенстве FillFrom вся текстура выбирает Gradient.Sample(0), независимо от Repeat.
GradientСвойство
public Gradient Gradient { get; set; }Источник цветов, по умолчанию null в C#-конструкторе. Это общая ссылка, не копия. Изменения Gradient ставят пересоздание пикселей в очередь; GetImage синхронно обрабатывает ожидающее обновление. Назначение null отключает источник, но не очищает уже созданные пиксели.
HeightСвойство
public int Height { get; set; }Высота в пикселях, изначально 64. Допустимо 1…16384; изображение остаётся двумерной сеткой. Mipmaps этим ресурсом не создаются.
RepeatСвойство
public GradientTexture2D.RepeatEnum Repeat { get; set; }Обработка координаты градиента вне 0…1: None ограничивает её, Repeat циклически повторяет с периодом 1, Mirror отражает с периодом 2. При Repeat точная координата 1 переходит в 0. Это генерация рисунка, а не режим повторения sampler у готовой текстуры.
UseHdrСвойство
public bool UseHdr { get; set; }По умолчанию false: пиксели RGBA8 с ограничением 0…1 и квантованием. True выбирает RGBAF и сохраняет расширенный диапазон, включая значения выше 1. Это формат данных текстуры; свечение и HDR-вывод окна отдельно не включаются.
WidthСвойство
public int Width { get; set; }Ширина в пикселях, изначально 64. Setter допускает 1…16384, но это не гарантия доступной GPU-памяти. Изменение ставит пересоздание изображения в очередь.
Методы14
GetFillGradientTexture2D.FillEnum
public GradientTexture2D.FillEnum GetFill();Возвращает значение GradientTexture2D.Fill.
GetFillFromVector2
public Vector2 GetFillFrom();Возвращает значение GradientTexture2D.FillFrom.
GetFillToVector2
public Vector2 GetFillTo();Возвращает значение GradientTexture2D.FillTo.
GetGradientGradient
public Gradient GetGradient();Возвращает значение GradientTexture2D.Gradient.
GradientТекущий источник Gradient; null, если он не назначен. Это общая ссылка, не копия.
GetRepeatGradientTexture2D.RepeatEnum
public GradientTexture2D.RepeatEnum GetRepeat();Возвращает значение GradientTexture2D.Repeat.
IsUsingHdrbool
public bool IsUsingHdr();Возвращает значение GradientTexture2D.UseHdr.
SetFillvoid
public void SetFill(GradientTexture2D.FillEnum fill);Назначает значение GradientTexture2D.Fill.
| Имя | Тип | По умолчанию |
|---|---|---|
fill | GradientTexture2D.FillEnum | — |
fillРежим Linear, Radial, Square или Conic.
SetFillFromvoid
public void SetFillFrom(Vector2 fillFrom);Назначает значение GradientTexture2D.FillFrom.
| Имя | Тип | По умолчанию |
|---|---|---|
fillFrom | Vector2 | — |
fillFromНормализованная начальная точка или центр, не пиксельная позиция.
SetFillTovoid
public void SetFillTo(Vector2 fillTo);Назначает значение GradientTexture2D.FillTo.
| Имя | Тип | По умолчанию |
|---|---|---|
fillTo | Vector2 | — |
fillToНормализованная вторая точка, задающая ось, масштаб или нулевой луч.
SetGradientvoid
public void SetGradient(Gradient gradient);Назначает значение GradientTexture2D.Gradient.
| Имя | Тип | По умолчанию |
|---|---|---|
gradient | Gradient | — |
gradientОбщий Gradient или null. Null не удаляет ранее сгенерированные пиксели.
SetHeightvoid
public void SetHeight(int height);Назначает значение GradientTexture2D.Height.
| Имя | Тип | По умолчанию |
|---|---|---|
height | int | — |
heightВысота в пикселях, 1…16384; проверяйте затраты памяти выбранного размера.
SetRepeatvoid
public void SetRepeat(GradientTexture2D.RepeatEnum repeat);Назначает значение GradientTexture2D.Repeat.
| Имя | Тип | По умолчанию |
|---|---|---|
repeat | GradientTexture2D.RepeatEnum | — |
repeatNone, Repeat или Mirror для координаты генерируемого рисунка.
SetUseHdrvoid
public void SetUseHdr(bool enabled);Назначает значение GradientTexture2D.UseHdr.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledTrue для RGBAF, false для ограниченного и квантованного RGBA8.
SetWidthvoid
public void SetWidth(int width);Назначает значение GradientTexture2D.Width.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
widthШирина в пикселях, 1…16384; доступная память GPU зависит от устройства.
GradientTexture2D.FillEnum
| Значение | Описание |
|---|---|
Conic = 3 | Цвета интерполируются линейно по конусообразной схеме. |
Linear = 0 | Цвета линейно интерполируются по прямой линии. |
Radial = 1 | Цвета линейно интерполируются по круговому шаблону. |
Square = 2 | Цвета линейно интерполируются в квадратный узор. |
GradientTexture2D.RepeatEnum
| Значение | Описание |
|---|---|
Mirror = 2 | Текстура заполняется, начиная со смещений |
None = 0 | Градиентная заливка ограничена диапазоном, определяемым смещениями |
Repeat = 1 | Текстура заполняется, начиная со смещений |