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.
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, вказаний прапорець буде ввімкнено.