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.


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