Texture2D
继承: Texture < Resource < RefCounted < Object
派生: AnimatedTexture, AtlasTexture, CameraTexture, CanvasTexture, CompressedTexture2D, CurveTexture, CurveXYZTexture, GradientTexture1D, GradientTexture2D, ImageTexture, MeshTexture, NoiseTexture2D, PlaceholderTexture2D, PortableCompressedTexture2D, Texture2DRD, ViewportTexture
用于 2D 和 3D 的纹理。
描述
纹理的工作原理是在视频硬件中注册图像,该图像在注册后就可以在 3D 模型、2D Sprite2D、GUI Control 中使用。
纹理通常是通过从文件中加载来创建的。见 @GDScript.load。
Texture2D 是其他资源的基类,无法直接使用。
注意:由于图形硬件的限制,最大的纹理尺寸是 16384×16384 像素。较大的纹理可能无法导入。
方法
void | _draw ( RID to_canvas_item, Vector2 pos, Color modulate, bool transpose ) virtual const |
void | _draw_rect ( RID to_canvas_item, Rect2 rect, bool tile, Color modulate, bool transpose ) virtual const |
void | _draw_rect_region ( RID to_canvas_item, Rect2 rect, Rect2 src_rect, Color modulate, bool transpose, bool clip_uv ) virtual const |
_get_height ( ) virtual const | |
_get_width ( ) virtual const | |
_has_alpha ( ) virtual const | |
_is_pixel_opaque ( int x, int y ) virtual const | |
create_placeholder ( ) const | |
void | draw ( RID canvas_item, Vector2 position, Color modulate=Color(1, 1, 1, 1), bool transpose=false ) const |
void | draw_rect ( RID canvas_item, Rect2 rect, bool tile, Color modulate=Color(1, 1, 1, 1), bool transpose=false ) const |
void | draw_rect_region ( RID canvas_item, Rect2 rect, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), bool transpose=false, bool clip_uv=true ) const |
get_height ( ) const | |
get_image ( ) const | |
get_size ( ) const | |
get_width ( ) const | |
has_alpha ( ) const |
方法说明
void _draw ( RID to_canvas_item, Vector2 pos, Color modulate, bool transpose ) virtual const
当请求在 CanvasItem 上绘制整个 Texture2D 时调用,左上角的偏移量由 pos
指定。modulate
指定绘制颜色的乘数,transpose
指定绘制是否应按列主顺序而不是行主顺序执行(会导致顺时针旋转 90 度)。
注意:仅用于 2D 渲染,不用于 3D。
void _draw_rect ( RID to_canvas_item, Rect2 rect, bool tile, Color modulate, bool transpose ) virtual const
请求将 Texture2D 绘制到 CanvasItem 的指定 rect
上时调用。modulate
指定的是绘制时颜色的乘数,而 transpose
指定的是绘制时是否使用列优先顺序,而不是使用行优先顺序(产生顺时针 90 度旋转)。
注意:仅在 2D 渲染时使用,3D 不使用。
void _draw_rect_region ( RID to_canvas_item, Rect2 rect, Rect2 src_rect, Color modulate, bool transpose, bool clip_uv ) virtual const
请求将 Texture2D 由 src_rect
的坐标指定的部分绘制到 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 ( int x, int y ) virtual const
查询 Texture2D 中指定位置 (x, y)
的像素的不透明状态时调用。
Resource create_placeholder ( ) const
创建该资源的占位符版本(PlaceholderTexture2D)。
void draw ( RID canvas_item, Vector2 position, Color modulate=Color(1, 1, 1, 1), bool transpose=false ) const
使用 RenderingServer API 在 CanvasItem 上的指定位置 position
绘制该纹理。
void draw_rect ( RID canvas_item, Rect2 rect, bool tile, Color modulate=Color(1, 1, 1, 1), bool transpose=false ) const
使用 RenderingServer API 在 CanvasItem 上绘制该纹理。
void draw_rect_region ( RID canvas_item, Rect2 rect, Rect2 src_rect, Color modulate=Color(1, 1, 1, 1), bool transpose=false, bool clip_uv=true ) const
使用 RenderingServer API 在 CanvasItem 上绘制纹理的一部分。
int get_height ( ) const
返回该纹理的高度,单位为像素。
Image get_image ( ) const
返回一个 Image,是这个 Texture2D 中数据的副本(每次都会新建一个 Image)。可以直接访问并操作 Image。
注意:这个函数会从 GPU 获取纹理数据,过度使用可能会引起性能问题。
Vector2 get_size ( ) const
返回该纹理的大小,单位为像素。
int get_width ( ) const
返回该纹理的宽度,单位为像素。
bool has_alpha ( ) const
如果该 Texture2D 具有 Alpha 通道,则返回 true
。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.