SpriteBase¶
继承: GeometryRender < VisualRender < Item3D < Item < Object
3D环境中的2D精灵节点。
描述¶
在3D环境中显示2D纹理信息的节点。另请参阅定义了许多其他属性的Sprite。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
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
此模式执行标准alpha混合。它可以显示半透明区域,但当多个透明材质重叠时,可能会出现透明度排序问题。
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
此模式会截断低于spatially-deterministic阈值的所有值,其余值将保持不透明。
属性说明¶
float alpha_antialiasing_edge = 0.0 🔗
在alpha通道上应用抗锯齿的阈值。
AlphaAntiAliasing alpha_antialiasing_mode = 0 🔗
void set_alpha_antialiasing(value: AlphaAntiAliasing)
AlphaAntiAliasing get_alpha_antialiasing()
要应用的alpha抗锯齿的类型。请参阅AlphaAntiAliasing。
AlphaCutMode alpha_cut = 0 🔗
void set_alpha_cut_mode(value: AlphaCutMode)
AlphaCutMode get_alpha_cut_mode()
用于精灵的alpha切割模式。有关可能的值,请参阅AlphaCutMode。
float alpha_hash_scale = 1.0 🔗
Alpha哈希的哈希尺度。0和2之间的推荐值。
float alpha_scissor_threshold = 0.5 🔗
alpha剪刀将丢弃值的阈值。
纹理正面朝向的方向。
BillboardMode billboard = 0 🔗
void set_billboard_mode(value: BillboardMode)
BillboardMode get_billboard_mode()
用于精灵的广告牌模式。有关可能的值,请参阅BillboardMode。
注意:当广告牌启用并且材质也投射阴影时,广告牌在渲染阴影时将面对场景中的摄像头。在有多个摄像头的场景中,无法确定预期的阴影,这将导致未定义的行为。
如果true,纹理将居中。
如果true,纹理也可以从背面看到,如果false,从后面看是看不见的。
如果true,则无论距离如何,标签都以相同的大小呈现。
如果true,则纹理水平翻转。
如果true,则纹理垂直翻转。
Color modulate = Color(1, 1, 1, 1) 🔗
用于乘以纹理颜色的颜色值。可用于情绪着色或模拟环境光的颜色。
注意:与2D的CanvasItem.modulate不同,不支持值高于1.0(超亮)的颜色。
注意:如果在SpriteBase上定义了GeometryRender.material_override,则必须将材质覆盖配置为考虑反照率的顶点颜色。否则,将忽略modulate中定义的颜色。对于BaseMaterial3D,BaseMaterial3D.vertex_color_use_as_albedo必须是true。对于ShaderMaterial,ALBEDO*=COLO. rgb;必须插入到着色器的frament()函数中。
如果true,则禁用深度测试,对象将按渲染顺序绘制。
Vector2 offset = Vector2(0, 0) 🔗
纹理的绘制偏移。
精灵上一个像素宽度的大小,以在3D中缩放它。
设置精灵的渲染优先级。较高优先级的对象将在较低优先级的对象之前排序。
注意:这仅适用于alpha_cut设置为ALPHA_CUT_DISABLED(默认值)。
注意:这仅适用于透明对象的排序,这不会影响透明对象相对于不透明对象的排序方式,这是因为不透明对象没有排序,而透明对象是从后到前排序(以优先级为准)。
如果true,则Environment中的Light对精灵有影响。
TextureFilter texture_filter = 3 🔗
void set_texture_filter(value: TextureFilter)
TextureFilter get_texture_filter()
过滤纹理的标志。有关选项,请参阅TextureFilter。
注意:线性过滤可能会导致边缘周围出现伪影,这在不透明纹理上尤其明显。为防止这种情况,请在边缘周围使用透明或相同颜色的纹理。
如果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,则将启用指定的标志。有关标志列表,请参阅DrawFlags。