SpriteBase

继承: GeometryRender < VisualRender < Item3D < Item < Object

派生: AniSprite, Sprite

3D环境中的2D精灵节点。

描述

在3D环境中显示2D纹理信息的节点。另请参阅定义了许多其他属性的Sprite

属性

方法


枚举

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

此模式执行标准alpha混合。它可以显示半透明区域,但当多个透明材质重叠时,可能会出现透明度排序问题。

AlphaCutMode ALPHA_CUT_DISCARD = 1

此模式仅允许完全透明或完全不透明的像素。除非启用某种形式的屏幕空间抗锯齿,否则粗糙的边缘将是可见的(参见ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa)。从好的方面来看,当多个透明材质重叠时,此模式不会遇到透明度排序问题。这种模式也称为公司内测或* 1位透明度*。

AlphaCutMode ALPHA_CUT_OPAQUE_PREPASS = 2

此模式在深度前置图中绘制完全不透明的像素。这比ALPHA_CUT_DISABLEDALPHA_CUT_DISCARD慢,但它允许在使用适当排序的同时显示半透明区域和平滑边缘。

AlphaCutMode ALPHA_CUT_HASH = 3

此模式会截断低于spatially-deterministic阈值的所有值,其余值将保持不透明。


属性说明

float alpha_antialiasing_edge = 0.0 🔗

  • void set_alpha_antialiasing_edge(value: float)

  • float get_alpha_antialiasing_edge()

在alpha通道上应用抗锯齿的阈值。


AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗

要应用的alpha抗锯齿的类型。请参阅AlphaAntiAliasing


AlphaCutMode alpha_cut = 0 🔗

用于精灵的alpha切割模式。有关可能的值,请参阅AlphaCutMode


float alpha_hash_scale = 1.0 🔗

  • void set_alpha_hash_scale(value: float)

  • float get_alpha_hash_scale()

Alpha哈希的哈希尺度。02之间的推荐值。


float alpha_scissor_threshold = 0.5 🔗

  • void set_alpha_scissor_threshold(value: float)

  • float get_alpha_scissor_threshold()

alpha剪刀将丢弃值的阈值。


Axis axis = 2 🔗

  • void set_axis(value: Axis)

  • Axis get_axis()

纹理正面朝向的方向。


BillboardMode billboard = 0 🔗

用于精灵的广告牌模式。有关可能的值,请参阅BillboardMode

注意:当广告牌启用并且材质也投射阴影时,广告牌在渲染阴影时将面对场景中的摄像头。在有多个摄像头的场景中,无法确定预期的阴影,这将导致未定义的行为。


bool centered = true 🔗

  • void set_centered(value: bool)

  • bool is_centered()

如果true,纹理将居中。


bool double_sided = true 🔗

如果true,纹理也可以从背面看到,如果false,从后面看是看不见的。


bool fixed_size = false 🔗

如果true,则无论距离如何,标签都以相同的大小呈现。


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

用于乘以纹理颜色的颜色值。可用于情绪着色或模拟环境光的颜色。

注意:与2D的CanvasItem.modulate不同,不支持值高于1.0(超亮)的颜色。

注意:如果在SpriteBase上定义了GeometryRender.material_override,则必须将材质覆盖配置为考虑反照率的顶点颜色。否则,将忽略modulate中定义的颜色。对于BaseMaterial3DBaseMaterial3D.vertex_color_use_as_albedo必须是true。对于ShaderMaterialALBEDO*=COLO. rgb;必须插入到着色器的frament()函数中。


bool no_depth_test = false 🔗

如果true,则禁用深度测试,对象将按渲染顺序绘制。


Vector2 offset = Vector2(0, 0) 🔗

纹理的绘制偏移。


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,则Environment中的Light对精灵有影响。


TextureFilter texture_filter = 3 🔗

过滤纹理的标志。有关选项,请参阅TextureFilter

注意:线性过滤可能会导致边缘周围出现伪影,这在不透明纹理上尤其明显。为防止这种情况,请在边缘周围使用透明或相同颜色的纹理。


bool transparent = true 🔗

如果true,则纹理的透明度和不透明度用于使精灵的这些部分不可见。


方法说明

TriangleMesh generate_triangle_mesh() const 🔗

返回一个TriangleMesh,其中精灵的顶点遵循其当前配置(例如其axispixel_size)。


bool get_draw_flag(flag: DrawFlags) const 🔗

返回指定标志的值。


Rect2 get_item_rect() const 🔗

返回表示此精灵的矩形。


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

如果true,则将启用指定的标志。有关标志列表,请参阅DrawFlags