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() |
纹理的 Flags。Flags 用于设置 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
返回纹理高度。
- Vector2 get_size ( ) const
返回纹理尺寸。
- int get_width ( ) const
返回纹理宽度。
- bool has_alpha ( ) const
如果这个 Texture
有 Alpha 通道,则返回 true
。