Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. GPUDevice
  4. createTexture()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

GPUDevice: createTexture() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DiecreateTexture() Methode desGPUDevice-Interfaces erstellt eineGPUTexture, um 1D-, 2D- oder 3D-Datenarrays wie Bilder zu speichern, die in GPU-Rendering-Operationen verwendet werden.

Syntax

js
createTexture(descriptor)

Parameter

descriptor

Ein Objekt mit den folgenden Eigenschaften:

dimensionOptional

Ein enumerierter Wert, der das Dimensionsniveau der Textur angibt. Mögliche Werte sind:

  • "1d": Die Textur ist eindimensional.
  • "2d": Die Textur ist zweidimensional oder ein Array aus zweidimensionalen Schichten.
  • "3d": Die Textur ist dreidimensional.

dimension hat standardmäßig den Wert"2d", wenn der Wert ausgelassen wird.

format

Ein enumerierter Wert, der das Format der Textur angibt. Siehe den AbschnittTexturformate der Spezifikation für alle möglichen Werte.

Hinweis:

  • Diedepth32float-stencil8Funktion muss aktiviert sein, umdepth32float-stencil8-Format-GPUTextures zu erstellen.
  • Dietexture-compression-bc Funktion muss aktiviert sein, um zweidimensionale (dimension: "2d") BC-komprimierteGPUTextures zu erstellen:bc1-rgba-unorm,bc1-rgba-unorm-srgb,bc2-rgba-unorm,bc2-rgba-unorm-srgb,bc3-rgba-unorm,bc3-rgba-unorm-srgb,bc4-r-unorm,bc4-r-snorm,bc5-rg-unorm,bc5-rg-snorm,bc6h-rgb-ufloat,bc6h-rgb-float,bc7-rgba-unorm undbc7-rgba-unorm-srgb Formate.
  • Dietexture-compression-bc undtexture-compression-bc-sliced-3d Funktionen müssen aktiviert sein, um dreidimensionale BC-komprimierteGPUTextures zu erstellen (die gleichenformat-Werte wie im vorherigen Punkt, aber mitdimension auf3d gesetzt).
  • Dietexture-compression-astc Funktion muss aktiviert sein, um zweidimensionale (dimension: "2d") ASTC-komprimierteGPUTextures zu erstellen:astc-4x4-unorm,astc-4x4-unorm-srgb,astc-5x4-unorm,astc-5x4-unorm-srgb,astc-5x5-unorm,astc-5x5-unorm-srgb,astc-6x5-unorm,astc-6x5-unorm-srgb,astc-6x6-unorm,astc-6x6-unorm-srgb,astc-8x5-unorm,astc-8x5-unorm-srgb,astc-8x6-unorm,astc-8x6-unorm-srgb,astc-8x8-unorm,astc-8x8-unorm-srgb,astc-10x5-unorm,astc-10x5-unorm-srgb,astc-10x6-unorm,astc-10x6-unorm-srgb,astc-10x8-unorm,astc-10x8-unorm-srgb,astc-10x10-unorm,astc-10x10-unorm-srgb,astc-12x10-unorm,astc-12x10-unorm-srgb,astc-12x12-unorm undastc-12x12-unorm-srgb Formate.
  • Dietexture-compression-astc undtexture-compression-astc-sliced-3d Funktionen müssen aktiviert sein, um dreidimensionale BC-komprimierteGPUTextures zu erstellen (die gleichenformat-Werte wie im vorherigen Punkt, aber mitdimension auf3d gesetzt).
  • Dietexture-compression-etc2 Funktion muss aktiviert sein, um zweidimensionale ETC2-komprimierteGPUTextures zu erstellen:etc2-rgb8unorm,etc2-rgb8unorm-srgb,etc2-rgb8a1unorm,etc2-rgb8a1unorm-srgb,etc2-rgba8unorm,etc2-rgba8unorm-srgb,eac-r11unorm,eac-r11snorm,eac-rg11unorm undeac-rg11snorm Formate.
  • Siehe den AbschnittTier 1 und Tier 2 Texturformate für weitere Informationen über diese Texturformat-Sets und die Anforderungen, sie zu erstellen.
labelOptional

Ein String, der ein Etikett bereitstellt, das verwendet werden kann, um das Objekt beispielsweise inGPUError-Meldungen oder Konsolenwarnungen zu identifizieren.

mipLevelCountOptional

Eine Zahl, die die Anzahl der Mip-Ebenen angibt, die die Textur enthalten wird. Wenn ausgelassen, ist der Standardwert 1.

sampleCountOptional

Eine Zahl, die die Sampling-Anzahl der Textur angibt. Um gültig zu sein, muss der Wert 1 oder 4 sein. Wenn ausgelassen, ist der Standardwert 1. Ein höherer Wert als 1 zeigt eine multisample Textur an.

size

Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Schichtebene der Textur angibt. Der Wert für die Breite muss immer angegeben werden, während die Höhe und die Tiefe/Array-Schichtebene optional sind und auf 1 voreingestellt sind, wenn sie ausgelassen werden.

Zum Beispiel, Sie können ein Array wie[16, 16, 2] oder sein gleichwertiges Objekt{ width: 16, height: 16, depthOrArrayLayers: 2 } übergeben.

usage

DieBitmasken, die die erlaubten Nutzungen für dieGPUTexture darstellen. Die möglichen Werte sind in derGPUTexture.usage Werttabelle zu finden.

Beachten Sie, dass mehrere mögliche Nutzungen angegeben werden können, indem Werte mitbitwise OR getrennt werden, z.B.:GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT.

Hinweis:

  • Diebgra8unorm-storageFunktion muss aktiviert sein, umSTORAGE_BINDING Nutzung für einbgra8unorm-formatGPUTexture anzugeben.
  • Dierg11b10ufloat-renderableFunktion muss aktiviert sein, umRENDER_ATTACHMENT Nutzung für einrg11b10ufloat-formatGPUTexture anzugeben, ebenso wie sein Blending und Multisampling.
viewFormatsOptional

Ein Array von enumerierten Werten, das andere erlaubteTexturformate angibt, wennGPUTexture.createView() auf dieser Textur aufgerufen wird, zusätzlich zu dem imformat-Wert angegebenen Texturformat.

Rückgabewert

EineGPUTexture Objektinstanz.

Validierung

Die folgenden Kriterien müssen bei der Aufruf voncreateTexture() erfüllt sein, ansonsten wird einGPUValidationError ausgelöst und ein ungültigesGPUTexture Objekt zurückgegeben:

  • Eine gültigeusage ist angegeben.
  • Die insize angegebenen Werte (Breite, Höhe oder Tiefe/Array-Schichtebene) sind größer als 0.
  • mipLevelCount ist größer als 0.
  • sampleCount ist gleich 1 oder 4.
  • Wenndimension auf"1d" gesetzt ist:
  • Wenndimension auf"2d" gesetzt ist:
    • Diesize Breiten- und Höhenwerte sind kleiner oder gleich derGPUDevicemaxTextureDimension2DGrenze.
    • Dersize Tiefe/Array-Schichtebenenwert ist kleiner oder gleich derGPUDevicemaxTextureArrayLayersGrenze.
  • Wenndimension auf"3d" gesetzt ist:
  • Dersize Breitenwert ist ein Vielfaches derTexel-Block-Breite.
  • Dersize Höhenwert ist ein Vielfaches derTexel-Block-Höhe.
  • WennsampleCount größer als 1 ist:
    • mipLevelCount ist gleich 1.
    • Dersize Tiefe/Array-Schichtebenenwert ist gleich 1.
    • usage enthält dasGPUTextureUsage.RENDER_ATTACHMENT Flag.
    • usage enthält nicht dasGPUTextureUsage.STORAGE_BINDING Flag.
    • Das angegebene Format unterstützt Multisampling.
  • DermipLevelCount Wert ist kleiner als oder gleich dermaximalen Mip-Ebenenzahl.
  • Die informat undviewFormats angegebenen Formate sindkompatibel zueinander.
  • Wennusage dasGPUTextureUsage.RENDER_ATTACHMENT Flag enthält:
  • Wennusage dasGPUTextureUsage.STORAGE_BINDING Flag enthält:
    • Das angegebeneformat umfasst dieSTORAGE_BINDING Fähigkeit (siehe die Tabelle dereinfachen Farbformate als Referenz).

Tier 1 und Tier 2 Texturformate

Dieser Abschnitt beschreibt die WebGPU Tier 1 und Tier 2 Texturformate.

Tier 1

Die Tier 1 Sammlungen von Texturformaten sind entworfen, um Entwicklern eine Übertragung bestehender Inhalte auf das Web zu ermöglichen, ohne dass diese es neu schreiben müssen, um die niedrigeren Fähigkeiten von WebGPU zu nutzen. Um diesen Satz zu nutzen, aktivieren Sie dietexture-formats-tier1 Funktion (sieheGPUSupportedFeatures).

Diese Funktion zu aktivieren, erlaubt:

  • Die folgendenformate mitusagen vonRENDER_ATTACHMENT (inklusive misch- und multisamplingfähiger Fähigkeiten) undSTORAGE_BINDING (mitread-only undwrite-onlyaccess) zu verwenden:
    • r16unorm
    • r16snorm
    • rg16unorm
    • rg16snorm
    • rgba16unorm
    • rgba16snorm
  • Die folgendenformate mit derRENDER_ATTACHMENTusage (inklusive misch- und multisamplingfähiger Fähigkeiten) zu verwenden:
    • r8snorm
    • rg8snorm
    • rgba8snorm
  • Die folgendenformate mit derSTORAGE_BINDINGusage (mitread-only undwrite-onlyaccess) zu verwenden:
    • r8unorm
    • r8snorm
    • r8uint
    • r8sint
    • rg8unorm
    • rg8snorm
    • rg8uint
    • rg8sint
    • r16uint
    • r16sint
    • r16float
    • rg16uint
    • rg16sint
    • rg16float
    • rgb10a2uint
    • rgb10a2unorm
    • rg11b10ufloat
  • Das Verwenden der folgendenGPUTexture Formate im Ziel-texture vonGPUQueue.copyExternalImageToTexture() Aufrufen:
    • r16unorm
    • rg16unorm
    • rgba16unorm

Hinweis:Die Aktivierung dertexture-formats-tier1 Funktion aktiviert automatisch dierg11b10ufloat-renderable Funktion, die es erlaubt, dierg11b10ufloat Textur mit der NutzungRENDER_ATTACHMENT, inklusive Blending und Multisampling, zu verwenden.

Tier 2

Die Tier 2 Sammlungen von Texturformaten unterstützen Speichertexturformate, die in "Kern"-WebGPU keine Unterstützung haben und für fortgeschrittenen Einsatz benötigt werden. Um diesen Satz zu nutzen, aktivieren Sie dietexture-formats-tier2 Funktion (sieheGPUSupportedFeatures).

Diese Funktion zu aktivieren, erlaubt die Verwendung der folgendenformate mit derSTORAGE_BINDINGusage (mitread-writeaccess):

  • r8unorm
  • r8uint
  • r8sint
  • rgba8unorm
  • rgba8uint
  • rgba8sint
  • r16uint
  • r16sint
  • r16float
  • rgba16uint
  • rgba16sint
  • rgba16float
  • rgba32uint
  • rgba32sint
  • rgba32float

Hinweis:Die Aktivierung dertexture-formats-tier2 Funktion aktiviert automatisch dierg11b10ufloat-renderable undtexture-formats-tier1 Funktionen.

Beispiele

Im WebGPU BeispielTextured Cube sample wird eine Textur erstellt, die auf den Flächen eines Würfels verwendet wird, durch:

js
// …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],  );}// …

Spezifikationen

Specification
WebGPU
# dom-gpudevice-createtexture

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp