GPUTexture
Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная: Это экспериментальная технология .
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Интерфейс GPUTexture API WebGPU представляет собой контейнер, используемый для хранения одномерных, двумерных или трехмерных массивов данных, таких как изображения, для использования в операциях рендеринга на GPU.
Экземпляр объекта GPUTexture создается с помощью метода GPUDevice.createTexture().
Свойства экземпляра
-
depthOrArrayLayersЭкспериментальная Только для чтения -
Число, представляющее глубину или количество слоев
GPUTexture(пиксели или количество слоев). -
dimensionЭкспериментальная Только для чтения -
Перечисление, представляющее размер набора текселей для каждого
GPUTextureподресурса. -
formatЭкспериментальная Только для чтения -
Значение перечисления, представляющее формат
GPUTexture. См. раздел «Форматы текстур» в спецификации по всем возможным значениям. -
heightЭкспериментальная Только для чтения -
Число, представляющее высоту
GPUTextureв пикселях. -
labelЭкспериментальная -
Строка, предоставляющая метку, которая может использоваться для идентификации объекта, например, в сообщениях
GPUErrorили предупреждениях консоли. -
mipLevelCountЭкспериментальная Только для чтения -
Число, представляющее количество уровней MIP
GPUTexture. -
sampleCountЭкспериментальная Только для чтения -
Число, представляющее количество выборок
GPUTexture. -
usageЭкспериментальная Только для чтения -
Битовые флаги, представляющие разрешенные варианты использования
GPUTexture. -
widthЭкспериментальная Только для чтения -
Число, представляющее ширину
GPUTextureв пикселях.
Методы экземпляра
-
createView()Экспериментальная -
Создает
GPUTextureView, представляющий определенный видGPUTexture. -
destroy()Экспериментальная -
Уничтожает
GPUTexture.
Примеры
В примере WebGPU Textured Cube sample текстура для использования на гранях куба создается следующим образом:
- Загрузка изображения в
HTMLImageElementи создание битовой карты изображения с помощьюcreateImageBitmap(). - Создание новой
GPUTextureс помощьюcreateTexture(). - Копирование битовой карты изображения в текстуру с помощью
GPUQueue.copyExternalImageToTexture().
//...
let cubeTexture;
{
const img = document.createElement("img");
img.src = new URL(
"../../../assets/img/Di-3d.png",
import.meta.url,
).toString();
await img.decode();
const imageBitmap = await createImageBitmap(img);
cubeTexture = device.createTexture({
size: [imageBitmap.width, imageBitmap.height, 1],
format: "rgba8unorm",
usage:
GPUTextureUsage.TEXTURE_BINDING |
GPUTextureUsage.COPY_DST |
GPUTextureUsage.RENDER_ATTACHMENT,
});
device.queue.copyExternalImageToTexture(
{ source: imageBitmap },
{ texture: cubeTexture },
[imageBitmap.width, imageBitmap.height],
);
}
//...
Спецификации
| Спецификация |
|---|
| WebGPU # texture-interface |
Совместимость с браузерами
| Настольные | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
GPUTexture |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
createView |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
depthOrArrayLayers |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
destroy |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
dimension |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
format |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
height |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
label |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
mipLevelCount |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
sampleCount |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
usage |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
width |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
previewВ настоящее время поддерживается только в Linux и Windows. |
99В настоящее время поддерживается только в ChromeOS, macOS и Windows. |
preview | 121 | No | 81 | No | 25.0 | 121 |
См. также
- The WebGPU API
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUTexture