ImageTextureLayered

Наследует: TextureLayered < Texture < Resource < RefCounted < Object

Наследуется от: Cubemap, CubemapArray, Texture2DArray

Базовый класс для типов текстур, которые содержат данные нескольких ImageTexture. Каждое изображение имеет одинаковый размер и формат.

Описание

Базовый класс для Texture2DArray, Cubemap и CubemapArray. Не может использоваться напрямую, но содержит все функции, необходимые для доступа к производным типам ресурсов. См. также Texture3D.

Методы

Error

create_from_images(images: Array[Image])

void

update_layer(image: Image, layer: int)


Описания метода

Error create_from_images(images: Array[Image]) 🔗

Создает ImageTextureLayered из массива Image. См. Image.create() для ожидаемого формата данных. Первое изображение определяет ширину, высоту, формат изображения и настройку mipmapping. Другие изображения должны иметь ту же ширину, высоту, формат изображения и настройку mipmapping.

Каждое 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)

# Создайте и сохраните кубическую карту. Массив изображений должен содержать ровно 6 изображений.
# Изображения кубической карты указаны в следующем порядке: X+, X-, Y+, Y-, Z+, Z-
# (в системе координат Годо Y+ — «вверх», а Z- — «вперед»).
var cubemap = Cubemap.new()
cubemap.create_from_images(images)
ResourceSaver.save(cubemap, "res://cubemap.res", ResourceSaver.FLAG_COMPRESS)

# Создайте и сохраните массив кубических карт. Массив изображений должен иметь число изображений, кратное 6.
# Изображения каждой кубической карты указываются в следующем порядке: X+, X-, Y+, Y-, Z+, Z-
# (в системе координат Годо 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) 🔗

Заменяет существующие данные Image в указанном layer этим новым изображением.

Указанное Image должно иметь ту же ширину, высоту, формат изображения и флаг MIP-отображения, что и остальные указанные изображения.

Если формат изображения не поддерживается, он будет распакован и преобразован в аналогичный и поддерживаемый Format.

Обновление происходит немедленно: оно синхронизируется с рисованием.