GPUTexture: createView() Methode

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die createView() Methode des GPUTexture Interfaces erstellt eine GPUTextureView, die eine spezifische Ansicht der GPUTexture repräsentiert.

Syntax

js
createView()
createView(descriptor)

Parameter

descriptor Optional

Ein Objekt, das die folgenden Eigenschaften enthält:

arrayLayerCount Optional

Eine Zahl, die angibt, wie viele Array-Schichten für die Ansicht zugänglich sind, beginnend mit dem Wert baseArrayLayer.

Wenn arrayLayerCount weggelassen wird, erhält es folgenden Wert:

  • Wenn dimension "1d", "2d" oder "3d" ist, ist arrayLayerCount 1.
  • Wenn dimension "cube" ist, ist arrayLayerCount 6.
  • Wenn dimension "2d-array" oder "cube-array" ist, ist arrayLayerCount GPUTexture.depthOrArrayLayers - baseArrayLayer.
aspect Optional

Ein enumerierter Wert, der angibt, welche Aspekte der Textur für die Texture-Ansicht zugänglich sind. Mögliche Werte sind:

"all"

Alle verfügbaren Aspekte des Texturformats werden für die Ansicht zugänglich sein, was alle oder beliebige aus Farbe, Tiefe und Stencil bedeuten kann, abhängig von der Art des Formats, mit dem Sie arbeiten.

"depth-only"

Nur der Tiefenaspekt eines Tiefen- oder Stencil-Formats wird für die Ansicht zugänglich sein.

"stencil-only"

Nur der Stencil-Aspekt eines Tiefen- oder Stencil-Formats wird für die Ansicht zugänglich sein.

Wenn weggelassen, nimmt aspect den Wert "all" an.

baseArrayLayer Optional

Eine Zahl, die den Index der ersten Array-Schicht definiert, die für die Ansicht zugänglich ist. Wenn weggelassen, nimmt baseArrayLayer den Wert 0 an.

baseMipLevel Optional

Eine Zahl, die das erste (detaillierteste) Mipmap-Level, das für die Ansicht zugänglich ist, darstellt. Wenn weggelassen, nimmt baseMipLevel den Wert 0 an.

dimension Optional

Ein enumerierter Wert, der das Format angibt, in dem die Textur angesehen werden soll. Mögliche Werte sind:

  • "1d": Die Textur wird als eindimensionales Bild angesehen.
  • "2d": Die Textur wird als einzelnes zweidimensionales Bild angesehen.
  • "2d-array": Die Textur wird als Array zweidimensionaler Bilder angesehen.
  • "cube": Die Textur wird als Cubemap angesehen. Die Ansicht hat 6 Array-Schichten, die den [+X, -X, +Y, -Y, +Z, -Z] Seiten des Würfels entsprechen. Das Sampling erfolgt nahtlos über die Seiten der Cubemap.
  • "cube-array": Die Textur wird als gepacktes Array von N Cubemaps angesehen, jeweils mit 6 Array-Schichten entsprechend den [+X, -X, +Y, -Y, +Z, -Z] Seiten des Würfels. Das Sampling erfolgt nahtlos über die Seiten der Cubemaps.
  • "3d": Die Textur wird als dreidimensionales Bild angesehen.

Wenn dimension weggelassen wird, erhält es einen Wert wie folgt:

format Optional

Ein enumerierter Wert, der das Format der Texture-Ansicht angibt. Weitere Informationen finden Sie im Abschnitt Texturformate der Spezifikation.

Wenn format weggelassen wird, erhält es einen Wert wie folgt:

label Optional

Eine Zeichenkette, die ein Etikett bereitstellt, das verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in GPUError Meldungen oder Konsolenwarnungen.

mipLevelCount Optional

Eine Zahl, die angibt, wie viele Mipmap-Level für die Ansicht zugänglich sind, beginnend mit dem baseMipLevel Wert.

Wenn mipLevelCount weggelassen wird, erhält es den Wert von GPUTexture.mipLevelCount - baseMipLevel.

Rückgabewert

Eine GPUTextureView Objektinstanz.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn createView() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und ein ungültiges GPUTextureView Objekt wird zurückgegeben:

Beispiele

Im WebGPU Samples Cubemap-Demo finden Sie mehrere Beispiele dafür, wie createView() verwendet wird, sowohl um eine Ansicht resource für einen GPUDevice.createBindGroup() Aufruf zu erstellen, als auch um eine view im depthStencilAttachment Objekt einer GPUCommandEncoder.beginRenderPass() Description bereitzustellen.

js
const uniformBindGroup = device.createBindGroup({
  layout: pipeline.getBindGroupLayout(0),
  entries: [
    {
      binding: 0,
      resource: {
        buffer: uniformBuffer,
        offset: 0,
        size: uniformBufferSize,
      },
    },
    {
      binding: 1,
      resource: sampler,
    },
    {
      binding: 2,
      resource: cubemapTexture.createView({
        dimension: "cube",
      }),
    },
  ],
});

const renderPassDescriptor: GPURenderPassDescriptor = {
  colorAttachments: [
    {
      view: undefined, // Assigned later
      loadOp: "clear",
      storeOp: "store",
    },
  ],
  depthStencilAttachment: {
    view: depthTexture.createView(),

    depthClearValue: 1.0,
    depthLoadOp: "clear",
    depthStoreOp: "store",
  },
};

// ...

const commandEncoder = device.createCommandEncoder();
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// ...

Spezifikationen

Specification
WebGPU
# dom-gputexture-createview

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch