Gradient

Наследует: Resource < RefCounted < Object

Цветовой переход.

Описание

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

См. также Curve, который поддерживает более сложные методы смягчения, но не поддерживает цвета.

Свойства

PackedColorArray

colors

PackedColorArray(0, 0, 0, 1, 1, 1, 1, 1)

ColorSpace

interpolation_color_space

0

InterpolationMode

interpolation_mode

0

PackedFloat32Array

offsets

PackedFloat32Array(0, 1)

Методы

void

add_point(offset: float, color: Color)

Color

get_color(point: int)

float

get_offset(point: int)

int

get_point_count() const

void

remove_point(point: int)

void

reverse()

Color

sample(offset: float)

void

set_color(point: int, color: Color)

void

set_offset(point: int, offset: float)


Перечисления

enum InterpolationMode: 🔗

InterpolationMode GRADIENT_INTERPOLATE_LINEAR = 0

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

InterpolationMode GRADIENT_INTERPOLATE_CONSTANT = 1

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

InterpolationMode GRADIENT_INTERPOLATE_CUBIC = 2

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


enum ColorSpace: 🔗

ColorSpace GRADIENT_COLOR_SPACE_SRGB = 0

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

ColorSpace GRADIENT_COLOR_SPACE_LINEAR_SRGB = 1

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

ColorSpace GRADIENT_COLOR_SPACE_OKLAB = 2

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


Описания свойств

PackedColorArray colors = PackedColorArray(0, 0, 0, 1, 1, 1, 1, 1) 🔗

Цвета градиента как PackedColorArray.

Примечание: Установка этого свойства обновляет все цвета одновременно. Чтобы обновить любой цвет по отдельности, используйте set_color().

Note: The returned array is copied and any changes to it will not update the original property value. See PackedColorArray for more details.


ColorSpace interpolation_color_space = 0 🔗

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

Примечание: Этот параметр не оказывает никакого эффекта, если interpolation_mode установлено в GRADIENT_INTERPOLATE_CONSTANT.


InterpolationMode interpolation_mode = 0 🔗

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


PackedFloat32Array offsets = PackedFloat32Array(0, 1) 🔗

Смещения градиента как PackedFloat32Array.

Примечание: Установка этого свойства обновляет все смещения одновременно. Чтобы обновить любое смещение по отдельности, используйте set_offset().

Note: The returned array is copied and any changes to it will not update the original property value. See PackedFloat32Array for more details.


Описания метода

void add_point(offset: float, color: Color) 🔗

Добавляет указанный цвет к градиенту с указанным смещением.


Color get_color(point: int) 🔗

Возвращает цвет градиента в точке с индексом point.


float get_offset(point: int) 🔗

Возвращает смещение цвета градиента в индексе point.


int get_point_count() const 🔗

Возвращает количество цветов в градиенте.


void remove_point(point: int) 🔗

Удаляет цвет в индексе point.


void reverse() 🔗

Переворачивает/зеркально отображает градиент.

Примечание: Этот метод зеркально отображает все точки вокруг середины градиента, что может привести к неожиданным результатам, если interpolation_mode установлен на GRADIENT_INTERPOLATE_CONSTANT.


Color sample(offset: float) 🔗

Возвращает интерполированный цвет, заданный параметром offset. Значение offset должно находиться в диапазоне от 0.0 до 1.0 (включительно). Использование значения меньше 0.0 вернёт тот же цвет, что и 0.0, а использование значения больше 1.0 вернёт тот же цвет, что и 1.0. Если входное значение выходит за пределы этого диапазона, рассмотрите возможность использования @GlobalScope.remap() для входного значения с выходными значениями 0.0 и 1.0.


void set_color(point: int, color: Color) 🔗

Устанавливает цвет градиента в индексе point.


void set_offset(point: int, offset: float) 🔗

Устанавливает смещение для цвета градиента в индексе point.