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 像素。较大的纹理可能无法导入。
属性¶
|
方法¶
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 |
get_data ( ) const |
|
get_height ( ) const |
|
get_size ( ) const |
|
get_width ( ) const |
|
has_alpha ( ) const |
枚举¶
enum Flags:
FLAGS_DEFAULT = 7 --- 默认的标志。FLAG_MIPMAPS、FLAG_REPEAT 和 FLAG_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 --- 纹理是视频表面。
属性说明¶
int flags
Default |
|
Setter |
set_flags(value) |
Getter |
get_flags() |
方法说明¶
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
返回纹理高度。
Vector2 get_size ( ) const
返回纹理尺寸。
int get_width ( ) const
返回纹理宽度。
bool has_alpha ( ) const
如果这个 Texture
有 Alpha 通道,则返回 true
。