SpriteBase3D
Наследует: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Наследуется от: AnimatedSprite3D, Sprite3D
Узел 2D-спрайта в 3D-среде.
Описание
Узел, который отображает информацию о 2D-текстуре в 3D-среде. См. также Sprite3D, где определены многие другие свойства.
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
generate_triangle_mesh() const |
|
get_draw_flag(flag: DrawFlags) const |
|
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 🔗
Порог, при котором к альфа-каналу будет применено сглаживание.
AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗
void set_alpha_antialiasing(value: AlphaAntiAliasing)
AlphaAntiAliasing get_alpha_antialiasing()
Тип применяемого альфа-сглаживания.
AlphaCutMode alpha_cut = 0 🔗
void set_alpha_cut_mode(value: AlphaCutMode)
AlphaCutMode get_alpha_cut_mode()
Режим альфа-резки, используемый для спрайта.
float alpha_hash_scale = 1.0 🔗
Масштаб хеширования для Alpha Hash. Рекомендуемые значения между 0 и 2.
float alpha_scissor_threshold = 0.5 🔗
Порог, при котором альфа-ножницы будут отбрасывать значения.
Направление, в котором обращена лицевая сторона текстуры.
BillboardMode billboard = 0 🔗
void set_billboard_mode(value: BillboardMode)
BillboardMode get_billboard_mode()
Режим билборда для использования со спрайтом.
Примечание: Когда билбординг включен и материал также отбрасывает тени, билборды будут обращены к камере в сцене при рендеринге теней. В сценах с несколькими камерами предполагаемая тень не может быть определена, и это приведет к неопределенному поведению. Подробности см. в GitHub Pull Request #72638.
Если true, текстура будет центрирована.
Если true, текстуру можно увидеть и сзади, если false, она невидима, если смотреть на нее сзади.
Если true, текстура отображается с тем же размером, независимо от расстояния. Размер текстуры на экране такой же, как если бы камера находилась на расстоянии 1.0 единиц от начала текстуры, независимо от фактического расстояния от камеры. Поле зрения Camera3D (или Camera3D.size в ортогональном/усеченном режиме) по-прежнему влияет на размер отрисовываемого спрайта.
Если true, текстура отражена по горизонтали.
Если true, текстура отражена по вертикали.
Color modulate = Color(1, 1, 1, 1) 🔗
Значение цвета, используемое для умножения цветов текстуры. Может использоваться для придания цвета настроению или для имитации цвета окружающего света.
Примечание: В отличие от CanvasItem.modulate для 2D, цвета со значениями выше 1.0 (сверхяркий) не поддерживаются.
Примечание: Если GeometryInstance3D.material_override определен в SpriteBase3D, переопределение материала должно быть настроено на учет цветов вершин для альбедо. В противном случае цвет, определенный в modulate, будет проигнорирован. Для BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; необходимо вставить в функцию шейдера fragment().
Если true, проверка глубины отключена, и объект будет отрисован в порядке рендеринга.
Vector2 offset = Vector2(0, 0) 🔗
Смещение отрисовки текстуры.
Примечание: При увеличении offset.y в Sprite3D спрайт перемещается вверх в мировом пространстве (т. е. +Y вверх).
Размер ширины одного пикселя спрайта для его масштабирования в 3D.
Устанавливает приоритет рендеринга для спрайта. Объекты с более высоким приоритетом будут сортироваться перед объектами с более низким приоритетом.
Примечание: Это применимо только в том случае, если alpha_cut установлен на ALPHA_CUT_DISABLED (значение по умолчанию).
Примечание: Это применимо только к сортировке прозрачных объектов. Это не повлияет на то, как прозрачные объекты сортируются относительно непрозрачных объектов. Это связано с тем, что непрозрачные объекты не сортируются, в то время как прозрачные объекты сортируются сзади вперед (в зависимости от приоритета).
Если true, Light3D в Environment оказывает влияние на спрайт.
TextureFilter texture_filter = 3 🔗
void set_texture_filter(value: TextureFilter)
TextureFilter get_texture_filter()
Флаги фильтра для текстуры.
Примечание: Линейная фильтрация может вызывать артефакты по краям, которые особенно заметны на непрозрачных текстурах. Чтобы этого не произошло, используйте текстуры с прозрачными или идентичными цветами по краям.
Если true, прозрачность текстуры используются, чтобы сделать эти части спрайта невидимыми.
Описания метода
TriangleMesh generate_triangle_mesh() const 🔗
Возвращает TriangleMesh с вершинами спрайта, соответствующими его текущей конфигурации (например, axis и pixel_size).
bool get_draw_flag(flag: DrawFlags) const 🔗
Возвращает значение указанного флага.
Возвращает прямоугольник, представляющий этот спрайт.
void set_draw_flag(flag: DrawFlags, enabled: bool) 🔗
Если true, указанный флаг будет включен.