Texture2D
GPU-текстура для 2D-движка — изображение за Sprite или
Tilemap. Сырые байты файла декодируются и загружаются нативно. Не
взаимозаменяема с 3D Texture (изображения материалов).
Обзор
const tex = await Texture2D.load(asset('./hero.png'))
const hero = new Sprite({ texture: tex })
console.log(tex.width, tex.height) // пиксельные размерыЗагрузка
Texture2D.load(source: string | FetchResponse | File): Promise<Texture2D>- URL-строка — путь
asset('./file.png')или удалённыйhttps://…URL; скачивается, затем декодируется. Отклоняется при HTTP-статусе ≥ 400 или ошибке декодирования. FetchResponse— уже скачанный ответ (пропускает лишний запрос).File— напр. изCanvas.toFile()илиopenFilePicker.
Texture2D.fromCanvas(canvas: Canvas): Texture2DОборачивает запечённую поверхность Canvas как текстуру — синхронно (уже растрирована, без
декодирования). Её width/height — физические пиксели канваса (логический размер × pixelRatio). Присвоение Canvas напрямую в sprite.texture делает это за тебя.
Свойства и жизненный цикл
tex.width, tex.height // пиксели (только чтение)
tex.id // нативный хэндл текстуры (только чтение)
tex.destroy(): void // освободить GPU-текстуруТекстуры свободно разделяются — много спрайтов могут использовать один Texture2D. destroy()
освобождает GPU-ресурс; спрайты, всё ещё ссылающиеся на неё — неопределённое поведение.
Note
сэмплинг (nearest против linear) не на текстуру — это глобальная настройка рендерера, выбираемая на
сцену через опцию filter у Scene2D.
Смотрите также
- Sprite — использование текстуры, кадры/атласы.
- Tilemap — сетки атласа.
- SpriteAnimation — нарезка листа на клипы.
- Scene2D — глобальная настройка
filter.