Texture

Inherits: Resource < Reference < Object

Inherited By: AnimatedTexture, AtlasTexture, CameraTexture, CurveTexture, ExternalTexture, GradientTexture, ImageTexture, LargeTexture, MeshTexture, NoiseTexture, ProxyTexture, StreamTexture, ViewportTexture

用于 2D 和 3D 的纹理。

描述

纹理的原理是在视频硬件中注册图像,然后就可以在 3D 模型、2D 精灵 Sprite、GUI 控件 Control 中使用。

纹理通常是通过从文件中加载来创建的。请参阅 @GDScript.load

Texture 是一些其他资源的基类,无法直接使用。

注意:由于图形硬件的限制,最大的纹理尺寸是 16384×16384 像素。较大的纹理可能无法导入。

属性

int

flags

4

方法

void

draw ( RID canvas_item, Vector2 position, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null ) const

void

draw_rect ( RID canvas_item, Rect2 rect, bool tile, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null ) const

void

draw_rect_region ( RID canvas_item, Rect2 rect, Rect2 src_rect, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null, bool clip_uv=true ) const

Image

get_data ( ) const

int

get_height ( ) const

Vector2

get_size ( ) const

int

get_width ( ) const

bool

has_alpha ( ) const

枚举

enum Flags:

  • FLAGS_DEFAULT = 7 —- 默认的标志。FLAG_MIPMAPSFLAG_REPEATFLAG_FILTER 均被启用。

  • FLAG_MIPMAPS = 1 —- 生成多级渐远纹理,它是同一纹理的较小版本,在放大时使用,保持长宽比。

  • FLAG_REPEAT = 2 —- 重复纹理(而不是限制到边)。

注意:使用 AtlasTexture 时忽略,因为它们不支持重复。

  • FLAG_FILTER = 4 —- 使用放大过滤器,以实现纹理的平滑放大。

  • FLAG_ANISOTROPIC_FILTER = 8 —- 使用各向异性的多级渐远纹理过滤。生成具有不同长宽比的同一纹理的较小版本。

当从斜角观看时,这会产生更好看的纹理。

  • FLAG_CONVERT_TO_LINEAR = 16 —- 将纹理转换为 sRGB 颜色空间。

  • FLAG_MIRRORED_REPEAT = 32 —- 重复纹理的交替部分,并对其进行镜像。

注意:在使用 AtlasTexture 时被忽略,因为它们不支持重复。

  • FLAG_VIDEO_SURFACE = 2048 —- 纹理是视频表面。

属性说明

Default

4

Setter

set_flags(value)

Getter

get_flags()

纹理的 FlagsFlags 用于设置 Texture 的各种属性。

方法说明

  • void draw ( RID canvas_item, Vector2 position, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null ) const

在指定的位置position使用VisualServerAPI的CanvasItem来绘制纹理。相当于VisualServer.canvas_item_add_texture_rect,在位置position有一个矩形,尺寸为这个Texture


  • void draw_rect ( RID canvas_item, Rect2 rect, bool tile, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null ) const

使用 VisualServer API 的 CanvasItem 来绘制纹理。相当于方法 VisualServer.canvas_item_add_texture_rect


  • void draw_rect_region ( RID canvas_item, Rect2 rect, Rect2 src_rect, Color modulate=Color( 1, 1, 1, 1 ), bool transpose=false, Texture normal_map=null, bool clip_uv=true ) const

使用 VisualServer API 的 CanvasItem 来绘制纹理的一个部分。相当于方法 VisualServer.canvas_item_add_texture_rect_region


  • Image get_data ( ) const

返回一个 Image,它是此 Texture 中数据的副本。 Image 图像可以直接访问和操作。


  • int get_height ( ) const

返回纹理高度。


返回纹理尺寸。


  • int get_width ( ) const

返回纹理宽度。


  • bool has_alpha ( ) const

如果这个 Texture 有 Alpha 通道,则返回 true