ImageTextureLayered¶
继承: TextureLayered < Texture < Resource < RefCounted < Object
派生: Cubemap, CubemapArray, Texture2DArray
包含多个ImageTexture数据的纹理类型的基类。每个图像的大小和格式相同。
描述¶
Texture2DArray、Cubemap和CubemapArray的基类。不能直接使用,但包含访问派生资源类型所需的所有函数。另请参阅Texture3D。
方法¶
create_from_images(images: Array[Image]) |
|
void |
update_layer(image: Image, layer: int) |
方法说明¶
Error create_from_images(images: Array[Image]) 🔗
从一个Image数组中创建一个ImageTextureLayered。关于预期的数据格式,请参阅Image.create()。第一个图像决定宽度、高度、图像格式和mip映射设置。其他图像必须具有相同的宽度、高度、图像格式和mip映射设置。
每个Image代表一个layer。
#填充具有不同颜色的图像。
var images = []
const LAYERS = 6
for i in LAYERS:
var image = Image.create_empty(128, 128, false, Image.FORMAT_RGB8)
if i % 3 == 0:
image.fill(Color.RED)
elif i % 3 == 1:
image.fill(Color.GREEN)
else:
image.fill(Color.BLUE)
images.push_back(image)
# 创建并保存2D纹理阵列。 图像阵列必须至少具有1张图像。
var texture_2d_array = Texture2DArray.new()
texture_2d_array.create_from_images(images)
ResourceSaver.save(texture_2d_array, "res://texture_2d_array.res", ResourceSaver.FLAG_COMPRESS)
# 创建并保存一个cubemap。 图像阵列必须完全具有6张图像。
#CUBEMAP的图像以此顺序指定:X+,X-,Y+,Y-,Z+,Z-
#(在i3d的坐标系统中,y+是“向上”,z-是“向前”)。
var cubemap = Cubemap.new()
cubemap.create_from_images(images)
ResourceSaver.save(cubemap, "res://cubemap.res", ResourceSaver.FLAG_COMPRESS)
# 创建并保存一个Cubemap数组。 图像阵列必须具有6张图像的倍数。
#每个Cubemap的图像以此顺序指定:X+,X-,Y+,Y-,Z+,Z-
#(在i3d的坐标系统中,y+是“向上”,z-是“向前”)。
var cubemap_array = CubemapArray.new()
cubemap_array.create_from_images(images)
ResourceSaver.save(cubemap_array, "res://cubemap_array.res", ResourceSaver.FLAG_COMPRESS)
void update_layer(image: Image, layer: int) 🔗
用这个新图像替换给定layer的现有Image数据。
给定的Image必须具有与其余引用图像相同的宽度、高度、图像格式和mipmap标志。
如果图像格式不受支持,它将被解压缩并转换为类似且受支持的Format。
更新是即时的:它与绘图同步。