Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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) 🔗

  • void set_colors(value: PackedColorArray)

  • PackedColorArray get_colors()

Кольори градієнта як 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) 🔗

  • void set_offsets(value: PackedFloat32Array)

  • PackedFloat32Array get_offsets()

Зміщення градієнта як 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) 🔗

Повертає колір градієнта color за індексом 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.