SpriteBase3D

Наследует: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Наследуется от: AnimatedSprite3D, Sprite3D

Узел 2D-спрайта в 3D-среде.

Описание

Узел, который отображает информацию о 2D-текстуре в 3D-среде. См. также Sprite3D, где определены многие другие свойства.

Свойства

float

alpha_antialiasing_edge

0.0

AlphaAntiAliasing

alpha_antialiasing_mode

0

AlphaCutMode

alpha_cut

0

float

alpha_hash_scale

1.0

float

alpha_scissor_threshold

0.5

Axis

axis

2

BillboardMode

billboard

0

bool

centered

true

bool

double_sided

true

bool

fixed_size

false

bool

flip_h

false

bool

flip_v

false

Color

modulate

Color(1, 1, 1, 1)

bool

no_depth_test

false

Vector2

offset

Vector2(0, 0)

float

pixel_size

0.01

int

render_priority

0

bool

shaded

false

TextureFilter

texture_filter

3

bool

transparent

true

Методы

TriangleMesh

generate_triangle_mesh() const

bool

get_draw_flag(flag: DrawFlags) const

Rect2

get_item_rect() const

void

set_draw_flag(flag: DrawFlags, enabled: bool)


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

enum DrawFlags: 🔗

DrawFlags FLAG_TRANSPARENT = 0

Если задано, прозрачность текстуры используются, чтобы сделать эти части спрайта невидимыми.

DrawFlags FLAG_SHADED = 1

Если установлено, то освещение в окружающей среде влияет на спрайт.

DrawFlags FLAG_DOUBLE_SIDED = 2

Если установлено, то текстура видна и сзади. Если нет, то текстура не видна, если смотреть сзади.

DrawFlags FLAG_DISABLE_DEPTH_TEST = 3

Отключает тест глубины, поэтому этот объект рисуется поверх всех остальных. Однако объекты, рисуемые после него в порядке рисования, могут его перекрывать.

DrawFlags FLAG_FIXED_SIZE = 4

Метка масштабируется по глубине, поэтому на экране она всегда отображается одинакового размера.

DrawFlags FLAG_MAX = 5

Представляет размер перечисления DrawFlags.


enum AlphaCutMode: 🔗

AlphaCutMode ALPHA_CUT_DISABLED = 0

Этот режим выполняет стандартное альфа-смешивание. Он может отображать полупрозрачные области, но проблемы с сортировкой прозрачности могут быть видны, когда накладываются несколько прозрачных материалов.

AlphaCutMode ALPHA_CUT_DISCARD = 1

Этот режим допускает только полностью прозрачные или полностью непрозрачные пиксели. Резкие края будут видны, если не включена какая-либо форма сглаживания экранного пространства (см. ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa). С другой стороны, этот режим не страдает от проблем с сортировкой прозрачности, когда накладываются несколько прозрачных материалов. Этот режим также известен как альфа-тестирование или 1-битная прозрачность.

AlphaCutMode ALPHA_CUT_OPAQUE_PREPASS = 2

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

AlphaCutMode ALPHA_CUT_HASH = 3

В этом режиме отрисовка отсекает все значения ниже пространственно-детерминированного порога, остальные остаются непрозрачными.


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

float alpha_antialiasing_edge = 0.0 🔗

  • void set_alpha_antialiasing_edge(value: float)

  • float get_alpha_antialiasing_edge()

Порог, при котором к альфа-каналу будет применено сглаживание.


AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗

Тип применяемого альфа-сглаживания.


AlphaCutMode alpha_cut = 0 🔗

Режим альфа-резки, используемый для спрайта.


float alpha_hash_scale = 1.0 🔗

  • void set_alpha_hash_scale(value: float)

  • float get_alpha_hash_scale()

Масштаб хеширования для Alpha Hash. Рекомендуемые значения между 0 и 2.


float alpha_scissor_threshold = 0.5 🔗

  • void set_alpha_scissor_threshold(value: float)

  • float get_alpha_scissor_threshold()

Порог, при котором альфа-ножницы будут отбрасывать значения.


Axis axis = 2 🔗

  • void set_axis(value: Axis)

  • Axis get_axis()

Направление, в котором обращена лицевая сторона текстуры.


BillboardMode billboard = 0 🔗

Режим билборда для использования со спрайтом.

Примечание: Когда билбординг включен и материал также отбрасывает тени, билборды будут обращены к камере в сцене при рендеринге теней. В сценах с несколькими камерами предполагаемая тень не может быть определена, и это приведет к неопределенному поведению. Подробности см. в GitHub Pull Request #72638.


bool centered = true 🔗

  • void set_centered(value: bool)

  • bool is_centered()

Если true, текстура будет центрирована.


bool double_sided = true 🔗

Если true, текстуру можно увидеть и сзади, если false, она невидима, если смотреть на нее сзади.


bool fixed_size = false 🔗

Если true, текстура отображается с тем же размером, независимо от расстояния. Размер текстуры на экране такой же, как если бы камера находилась на расстоянии 1.0 единиц от начала текстуры, независимо от фактического расстояния от камеры. Поле зрения Camera3D (или Camera3D.size в ортогональном/усеченном режиме) по-прежнему влияет на размер отрисовываемого спрайта.


bool flip_h = false 🔗

  • void set_flip_h(value: bool)

  • bool is_flipped_h()

Если true, текстура отражена по горизонтали.


bool flip_v = false 🔗

  • void set_flip_v(value: bool)

  • bool is_flipped_v()

Если true, текстура отражена по вертикали.


Color modulate = Color(1, 1, 1, 1) 🔗

  • void set_modulate(value: Color)

  • Color get_modulate()

Значение цвета, используемое для умножения цветов текстуры. Может использоваться для придания цвета настроению или для имитации цвета окружающего света.

Примечание: В отличие от CanvasItem.modulate для 2D, цвета со значениями выше 1.0 (сверхяркий) не поддерживаются.

Примечание: Если GeometryInstance3D.material_override определен в SpriteBase3D, переопределение материала должно быть настроено на учет цветов вершин для альбедо. В противном случае цвет, определенный в modulate, будет проигнорирован. Для BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; необходимо вставить в функцию шейдера fragment().


bool no_depth_test = false 🔗

Если true, проверка глубины отключена, и объект будет отрисован в порядке рендеринга.


Vector2 offset = Vector2(0, 0) 🔗

Смещение отрисовки текстуры.

Примечание: При увеличении offset.y в Sprite3D спрайт перемещается вверх в мировом пространстве (т. е. +Y вверх).


float pixel_size = 0.01 🔗

  • void set_pixel_size(value: float)

  • float get_pixel_size()

Размер ширины одного пикселя спрайта для его масштабирования в 3D.


int render_priority = 0 🔗

  • void set_render_priority(value: int)

  • int get_render_priority()

Устанавливает приоритет рендеринга для спрайта. Объекты с более высоким приоритетом будут сортироваться перед объектами с более низким приоритетом.

Примечание: Это применимо только в том случае, если alpha_cut установлен на ALPHA_CUT_DISABLED (значение по умолчанию).

Примечание: Это применимо только к сортировке прозрачных объектов. Это не повлияет на то, как прозрачные объекты сортируются относительно непрозрачных объектов. Это связано с тем, что непрозрачные объекты не сортируются, в то время как прозрачные объекты сортируются сзади вперед (в зависимости от приоритета).


bool shaded = false 🔗

Если true, Light3D в Environment оказывает влияние на спрайт.


TextureFilter texture_filter = 3 🔗

Флаги фильтра для текстуры.

Примечание: Линейная фильтрация может вызывать артефакты по краям, которые особенно заметны на непрозрачных текстурах. Чтобы этого не произошло, используйте текстуры с прозрачными или идентичными цветами по краям.


bool transparent = true 🔗

Если true, прозрачность текстуры используются, чтобы сделать эти части спрайта невидимыми.


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

TriangleMesh generate_triangle_mesh() const 🔗

Возвращает TriangleMesh с вершинами спрайта, соответствующими его текущей конфигурации (например, axis и pixel_size).


bool get_draw_flag(flag: DrawFlags) const 🔗

Возвращает значение указанного флага.


Rect2 get_item_rect() const 🔗

Возвращает прямоугольник, представляющий этот спрайт.


void set_draw_flag(flag: DrawFlags, enabled: bool) 🔗

Если true, указанный флаг будет включен.