reckfellENGINE

Gradient

Цветовые точки и выборка с Linear, Constant или Cubic.

На этой странице
class GradientReckfellSharpНаследует Resource

Gradient хранит пары позиции и цвета, а не пиксели текстуры. По умолчанию это непрозрачный чёрный в 0 и белый в 1, Linear и Srgb. Sample возвращает цвет для позиции; за крайними точками остаётся ближайший крайний цвет. Пустой массив точек даёт непрозрачный чёрный.

Индексы не являются постоянными идентификаторами: Sample, GetColor и GetOffset могут отсортировать точки. При работе с массивами назначайте Colors и Offsets согласованной длины: каждый setter меняет число точек. Полученные массивы — копии; их редактирование не меняет ресурс. Используйте конечные уникальные позиции.

Для LinearSrgb и Oklab RGB преобразуется для интерполяции и возвращается в sRGB; Constant использует цвет точки напрямую. Cubic может дать значения выше 1 или ниже 0. При передаче результата в градиентную текстуру учитывайте UseHdr: RGBA8 ограничивает диапазон, RGBAF сохраняет расширенные значения.

Выборка, режимы, цветовые пространства, сортировка, массивы и обновление связанных текстур проверены в текущем Runtime. Совпадающие позиции, NaN/Infinity и неверные индексы не проверялись как допустимые данные.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

GradientКонструктор
# Gradient
C#
public Gradient();

Создаёт две точки: непрозрачный чёрный в 0 и белый в 1, Linear и Srgb.

Свойства4

ColorsСвойство
# Colors
C#
public Color[] Colors { get; set; }

Массив цветов текущих точек. Чтение возвращает отдельный Color[], без принудительной сортировки точек. Изменение копии не меняет ресурс. Назначение массива меняет число точек до его длины и может удалить прежние точки. Подготовьте Colors и Offsets одинаковой длины; не считайте назначение частичным обновлением.

InterpolationColorSpaceСвойство
# InterpolationColorSpace
C#
public Gradient.ColorSpace InterpolationColorSpace { get; set; }

Пространство интерполяции: Srgb по умолчанию, LinearSrgb или Oklab. В двух последних вариантах RGB преобразуется для интерполяции и возвращается обратно в sRGB; альфа интерполируется отдельно. Constant возвращает цвет точки без такого преобразования. Это не флаг HDR текстуры.

InterpolationModeСвойство
# InterpolationMode
C#
public Gradient.InterpolationModeEnum InterpolationMode { get; set; }

Способ выборки между точками: Linear по умолчанию, Constant удерживает левый цвет до следующей точки, Cubic использует соседние точки и может дать компоненты вне 0…1. В точной позиции точки Sample возвращает её цвет. Это не сглаживание текстуры и не настройка фильтра sampler.

OffsetsСвойство
# Offsets
C#
public float[] Offsets { get; set; }

Позиции текущих точек. Чтение возвращает отдельный float[] в текущем внутреннем порядке, без принудительной сортировки. Назначение меняет число точек до длины массива и отмечает порядок для последующей сортировки. Обычно используйте конечные уникальные позиции 0…1; setter сам этот диапазон не ограничивает.

Методы19

AddPointvoid
# AddPoint
C#
public void AddPoint(float offset, Color color);

Добавляет пару позиции и цвета, увеличивает число точек и делает текущий порядок несортированным. Сортировка выполняется при Sample, GetColor/GetOffset и SetColor/SetOffset. Сохраняйте собственный смысл точки отдельно: индекс после сортировки может измениться.

Параметры
ИмяТипПо умолчанию
offsetfloat—
colorColor—
offset

Конечная позиция. Обычно 0…1; диапазон не зажимается автоматически.

color

Новый цвет точки. Для интерполяции с расширенным диапазоном учитывайте формат целевой текстуры.

GetColorColor
# GetColor
C#
public Color GetColor(int point);

Сначала сортирует точки по позиции, затем возвращает цвет указанного индекса. Индекс должен существовать; ошибочный индекс не является способом получить цвет за пределами градиента.

Параметры
ИмяТипПо умолчанию
pointint—
point

Индекс существующей точки; порядок может измениться после сортировки.

Возвращает Color

Цвет существующей точки после сортировки.

GetColorsColor[]
# GetColors
C#
public Color[] GetColors();

Возвращает значение свойства Gradient.Colors.

Возвращает Color[]

Текущее значение Gradient.Colors; копии массивов не связаны с ресурсом.

GetInterpolationColorSpaceGradient.ColorSpace
# GetInterpolationColorSpace
C#
public Gradient.ColorSpace GetInterpolationColorSpace();

Возвращает значение свойства Gradient.InterpolationColorSpace.

Возвращает Gradient.ColorSpace

Текущее значение Gradient.InterpolationColorSpace.

GetInterpolationModeGradient.InterpolationModeEnum
# GetInterpolationMode
C#
public Gradient.InterpolationModeEnum GetInterpolationMode();

Возвращает значение свойства Gradient.InterpolationMode.

Возвращает Gradient.InterpolationModeEnum

Текущее значение Gradient.InterpolationMode.

GetOffsetfloat
# GetOffset
C#
public float GetOffset(int point);

Сначала сортирует точки по позиции, затем возвращает позицию указанного индекса. Это чтение может изменить внутренний порядок массивов Colors и Offsets.

Параметры
ИмяТипПо умолчанию
pointint—
point

Индекс существующей точки; порядок может измениться после сортировки.

Возвращает float

Позиция существующей точки после сортировки.

GetOffsetsfloat[]
# GetOffsets
C#
public float[] GetOffsets();

Возвращает значение свойства Gradient.Offsets.

Возвращает float[]

Текущее значение Gradient.Offsets; копии массивов не связаны с ресурсом.

GetPointCountint
# GetPointCount
C#
public int GetPointCount();

Возвращает текущее число пар позиции/цвета, включая ноль после назначения пустого массива. Само число точек не запускает сортировку.

Возвращает int

Текущее число точек; изначально 2.

RemovePointvoid
# RemovePoint
C#
public void RemovePoint(int point);

Удаляет существующий индекс в текущем порядке, не выполняя предварительную сортировку. Нельзя удалять последнюю оставшуюся точку этим методом. Для полного обнуления назначьте пустой массив Offsets или Colors. Не используйте сохранённый индекс после операций, которые меняют порядок.

Параметры
ИмяТипПо умолчанию
pointint—
point

Индекс существующей точки; порядок может измениться после сортировки.

Reversevoid
# Reverse
C#
public void Reverse();

Заменяет каждую позицию на 1 − offset, сохраняет её цвет и сортирует результат. Не ограничивает исходные позиции диапазоном 0…1: позиция −0.5 станет 1.5.

SampleColor
# Sample
C#
public Color Sample(float offset);

Возвращает цвет для конечной позиции с учётом режима и пространства интерполяции; при необходимости сортирует точки. До первой и после последней точки возвращает крайний цвет. Пустой градиент даёт непрозрачный чёрный, одна точка — её цвет. Cubic может выходить за 0…1; одинаковые позиции, NaN и Infinity не используйте.

Параметры
ИмяТипПо умолчанию
offsetfloat—
offset

Конечная позиция. Обычно 0…1; диапазон не зажимается автоматически.

Возвращает Color

Вычисленный цвет; его компоненты не гарантированно ограничены 0…1.

SetColorvoid
# SetColor
C#
public void SetColor(int point, Color color);

Сначала сортирует точки, затем заменяет цвет существующего индекса и уведомляет об изменении ресурса. Назначенная градиентная текстура получит запрос на пересоздание пикселей.

Параметры
ИмяТипПо умолчанию
pointint—
colorColor—
point

Индекс существующей точки; порядок может измениться после сортировки.

color

Новый цвет точки. Для интерполяции с расширенным диапазоном учитывайте формат целевой текстуры.

SetColors2 перегрузки
# SetColors · 1/2
C#
public void SetColors(Color[] colors);

Назначает значение свойства Gradient.Colors.

Параметры
ИмяТипПо умолчанию
colorsColor[]—
colors

Полный массив цветов: его длина становится числом точек. Подготовьте согласованный Offsets.

# SetColors · 2/2
C#
public void SetColors(ReadOnlySpan<Color> colors);

Назначает значение свойства Gradient.Colors.

Параметры
ИмяТипПо умолчанию
colorsReadOnlySpan<Color>—
colors

Полный массив цветов: его длина становится числом точек. Подготовьте согласованный Offsets.

SetInterpolationColorSpacevoid
# SetInterpolationColorSpace
C#
public void SetInterpolationColorSpace(Gradient.ColorSpace interpolationColorSpace);

Назначает значение свойства Gradient.InterpolationColorSpace.

Параметры
ИмяТипПо умолчанию
interpolationColorSpaceGradient.ColorSpace—
interpolationColorSpace

Srgb, LinearSrgb или Oklab; для Constant преобразование не используется.

SetInterpolationModevoid
# SetInterpolationMode
C#
public void SetInterpolationMode(Gradient.InterpolationModeEnum interpolationMode);

Назначает значение свойства Gradient.InterpolationMode.

Параметры
ИмяТипПо умолчанию
interpolationModeGradient.InterpolationModeEnum—
interpolationMode

Linear, Constant или Cubic; Cubic может превышать диапазон компонентов 0…1.

SetOffsetvoid
# SetOffset
C#
public void SetOffset(int point, float offset);

Сначала сортирует точки, затем меняет позицию существующего индекса и снова помечает порядок несортированным. Позиция не зажимается в 0…1. После следующей сортировки индекс этой точки может измениться.

Параметры
ИмяТипПо умолчанию
pointint—
offsetfloat—
point

Индекс существующей точки; порядок может измениться после сортировки.

offset

Конечная позиция. Обычно 0…1; диапазон не зажимается автоматически.

SetOffsets2 перегрузки
# SetOffsets · 1/2
C#
public void SetOffsets(ReadOnlySpan<float> offsets);

Назначает значение свойства Gradient.Offsets.

Параметры
ИмяТипПо умолчанию
offsetsReadOnlySpan<float>—
offsets

Полный массив конечных уникальных позиций. Длина становится числом точек.

# SetOffsets · 2/2
C#
public void SetOffsets(float[] offsets);

Назначает значение свойства Gradient.Offsets.

Параметры
ИмяТипПо умолчанию
offsetsfloat[]—
offsets

Полный массив конечных уникальных позиций. Длина становится числом точек.

Gradient.ColorSpace

ЗначениеОписание
LinearSrgb = 1

Линейное цветовое пространство sRGB.

Oklab = 2

Цветовое пространство Oklab. Это цветовое пространство обеспечивает плавный и однородно выглядящий переход между цветами.

Srgb = 0

Цветовое пространство sRGB.

Gradient.InterpolationModeEnum

ЗначениеОписание
Constant = 1

Константная интерполяция, цвет резко меняется в каждой точке и остается однородным между ними. Это может привести к видимой алиасинге при использовании для градиентной текстуры в некоторых случаях.

Cubic = 2

Кубическая интерполяция.

Linear = 0

Линейная интерполяция.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.