Texture2D

继承: Texture < Resource < RefCounted < Object

派生: AnimatedTexture, AtlasTexture, CameraTexture, CanvasTexture, CompressedTexture2D, CurveTexture, CurveXYZTexture, ExternalTexture, GradientTexture1D, GradientTexture2D, ImageTexture, MeshTexture, NoiseTexture2D, PlaceholderTexture2D, PortableCompressedTexture2D, Texture2DRD, ViewportTexture

2D和3D的纹理。

描述

纹理通过在视频硬件中注册图像来工作,然后可以在3D模型或2DSprite2D或GUIControl中使用。

纹理通常是通过从文件加载它们来创建的。请参阅@S3Script.load()

Texture2D是其他资源的基础。它不能直接使用。

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

方法

void

_draw(to_canvas_item: RID, pos: Vector2, modulate: Color, transpose: bool) virtual const

void

_draw_rect(to_canvas_item: RID, rect: Rect2, tile: bool, modulate: Color, transpose: bool) virtual const

void

_draw_rect_region(to_canvas_item: RID, rect: Rect2, src_rect: Rect2, modulate: Color, transpose: bool, clip_uv: bool) virtual const

int

_get_height() virtual const

int

_get_width() virtual const

bool

_has_alpha() virtual const

bool

_is_pixel_opaque(x: int, y: int) virtual const

Resource

create_placeholder() const

void

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

void

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

void

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

int

get_height() const

Image

get_image() const

Vector2

get_size() const

int

get_width() const

bool

has_alpha() const


方法说明

void _draw(to_canvas_item: RID, pos: Vector2, modulate: Color, transpose: bool) virtual const 🔗

modulate指定正在绘制的颜色的乘数,而transpose指定是否应按列主顺序而不是行主顺序进行绘制(导致顺时针旋转90度)。

注意:这仅用于2D渲染,而不是3D。


void _draw_rect(to_canvas_item: RID, rect: Rect2, tile: bool, modulate: Color, transpose: bool) virtual const 🔗

modulate指定正在绘制的颜色的乘数,而transpose指定是否应该以列主顺序而不是行主顺序进行绘制(导致顺时针旋转90度)。

注意:这仅用于2D渲染,而不是3D。


void _draw_rect_region(to_canvas_item: RID, rect: Rect2, src_rect: Rect2, modulate: Color, transpose: bool, clip_uv: bool) virtual const 🔗

当请求将由 src_rect 的坐标指定的 Texture2D 的一部分绘制到 CanvasItem 的指定 rect 上时调用。modulate 指定要绘制颜色的乘数,而 transpose 指定绘制是否应以列优先顺序而非行优先顺序执行(导致顺时针旋转90度)。

注意: 这仅用于2D渲染,而非3D。


int _get_height() virtual const 🔗

查询Texture2D的高度时调用。


int _get_width() virtual const 🔗

查询Texture2D的宽度时调用。


bool _has_alpha() virtual const 🔗

当查询Texture2D中存在alpha通道时调用。


bool _is_pixel_opaque(x: int, y: int) virtual const 🔗

在指定的(x, y)位置查询Texture2D中像素的不透明状态时调用。


Resource create_placeholder() const 🔗

创建此资源(PlaceholderTexture2D)的占位符版本。


void draw(canvas_item: RID, position: Vector2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) const 🔗

在指定的position使用带有RenderingServerAPI的CanvasItem绘制纹理。


void draw_rect(canvas_item: RID, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) const 🔗

使用带有RenderingServerAPI的CanvasItem绘制纹理。


void draw_rect_region(canvas_item: RID, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true) const 🔗

使用带有RenderingServerAPI的CanvasItem绘制纹理的一部分。


int get_height() const 🔗

以像素为单位返回纹理高度。


Image get_image() const 🔗

返回一个Image,它是此Texture2D中数据的副本(每次都会创建一个新的Image)。Images可以直接访问和操作。

注意:如果此Texture2D无效,这将返回null

注意:这将从GPU获取纹理数据,过度使用时可能会导致性能问题。避免每帧调用get_image(),尤其是在大型纹理上。


Vector2 get_size() const 🔗

返回以像素为单位的纹理大小。


int get_width() const 🔗

返回以像素为单位的纹理宽度。


bool has_alpha() const 🔗

如果此Texture2D具有alpha通道,则返回true