Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. GPUTexture
  4. createView()

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

View in EnglishAlways switch to English

GPUTexture: createView() 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.

DiecreateView()-Methode desGPUTexture-Interfaces erstellt eineGPUTextureView, die eine spezifische Ansicht derGPUTexture repräsentiert.

Syntax

js
createView()createView(descriptor)

Parameter

descriptorOptional

Ein Objekt, das die folgenden Eigenschaften enthält:

arrayLayerCountOptional

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

WennarrayLayerCount weggelassen wird, erhält es folgenden Wert:

  • Wenndimension"1d","2d" oder"3d" ist, istarrayLayerCount 1.
  • Wenndimension"cube" ist, istarrayLayerCount 6.
  • Wenndimension"2d-array" oder"cube-array" ist, istarrayLayerCountGPUTexture.depthOrArrayLayers -baseArrayLayer.
aspectOptional

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

"all"

Alle verfügbaren Aspekte des Texturformats sind für die Ansicht zugänglich, dies kann je nach Art des Formats Farbe, Tiefe und/oder Stencil umfassen.

"depth-only"

Nur der Tiefenaspekt einesdepth-or-stencil format ist für die Ansicht zugänglich.

"stencil-only"

Nur der Stencil-Aspekt eines depth-or-stencil Formats ist für die Ansicht zugänglich.

Wenn weggelassen, erhältaspect den Wert"all".

baseArrayLayerOptional

Eine Zahl, die den Index der ersten zugänglichen Array-Schicht der Ansicht definiert. Wenn weggelassen, nimmtbaseArrayLayer den Wert 0 an.

baseMipLevelOptional

Eine Zahl, die den ersten (detailliertesten) Mipmap-Level definiert, der für die Ansicht zugänglich ist. Wenn weggelassen, nimmtbaseMipLevel den Wert 0 an.

dimensionOptional

Ein enumerierter Wert, der das Format angibt, wie die Textur angezeigt werden soll. Mögliche Werte sind:

  • "1d": Die Textur wird als eindimensionales Bild dargestellt.
  • "2d": Die Textur wird als einzelnes zweidimensionales Bild dargestellt.
  • "2d-array": Die Textur wird als Array von zweidimensionalen Bildern dargestellt.
  • "cube": Die Textur wird als Cubemap dargestellt. Die Ansicht hat 6 Array-Schichten, die den[+X, -X, +Y, -Y, +Z, -Z]-Flächen des Würfels entsprechen. Das Sampling erfolgt nahtlos über die Flächen der Cubemap.
  • "cube-array": Die Textur wird als gepacktes Array von N Cubemaps dargestellt, jede mit 6 Array-Schichten, die den[+X, -X, +Y, -Y, +Z, -Z]-Flächen des Würfels entsprechen. Das Sampling erfolgt nahtlos über die Flächen der Cubemaps.
  • "3d": Die Textur wird als dreidimensionales Bild dargestellt.

Wenndimension weggelassen wird, erhält es folgenden Wert:

formatOptional

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

Wennformat weggelassen wird, wird es folgendermaßen festgelegt:

labelOptional

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

mipLevelCountOptional

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

WennmipLevelCount weggelassen wird, wird es auf einen Wert vonGPUTexture.mipLevelCount -baseMipLevel gesetzt.

swizzleOptional

Ein String bestehend aus vier Zeichen. Die Position jedes Zeichens entspricht den roten, grünen, blauen und Alpha-Kanalwerten der Texturansicht. Der Wert jedes Zeichens gibt an, welchen Wert jeder dieser Kanäle einnimmt, wenn die Ansicht von einem Shader aufgerufen wird. Mögliche Werte sind:

r

Der rote Kanalwert der Textur.

g

Der grüne Kanalwert der Textur.

b

Der blaue Kanalwert der Textur.

a

Der Alpha-Kanalwert der Textur.

0

Erzwingt einen Wert von0.

1

Erzwingt einen Wert von1.

Zum Beispiel würdeswizzle: "grba" zu einem Austausch der roten und grünen Kanalwerte der Textur führen, wenn ein Shader die Ansicht aufruft. Die Swizzle-Komponente der Textur ermöglicht es Entwicklern, die Leistung zu optimieren, Fehler in der Komponentenreihenfolge zu korrigieren und Shader-Code effizient wiederzuverwenden, um verschiedene Texturformate bei der Abtastung von Texturen zu handhaben.

Hinweis:Um dieswizzle-Eigenschaft zu nutzen, müssen Sie dastexture-component-swizzleFeature in IhremGPUDevice aktivieren, indem Sie es im ArrayrequiredFeatures des DeskriptorsGPUAdapter.requestDevice() angeben. Wenn dieses Feature nicht aktiviert ist, wird dieswizzle-Eigenschaft keine Wirkung haben.

usageOptional

Eine Menge vonBitweise-Flags, die eine Teilmenge der Nutzungs-Flags der Quelltextur darstellt (verfügbar in derGPUTexture.usage-Eigenschaft), die mit dem gewählten Ansicht-Format kompatibel sind. Dies kann verwendet werden, um die erlaubte Nutzung der Ansicht in Fällen einzuschränken, in denen das Ansicht-Format mit bestimmten Nutzungen inkompatibel ist. Die verfügbaren Nutzungs-Flags sind in der Tabelle derGPUTexture.usage Werte aufgeführt.

Der Standardwert ist0, was die vollständige Menge der Nutzungs-Flags der Quelltextur darstellt. Wenn dasformat der Ansicht nicht alle Nutzungen der Textur unterstützt, schlägt der Standardfehl, und die Nutzungen der Ansicht müssen explizit angegeben werden.

Rückgabewert

Eine Instanz desGPUTextureView Objekts.

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenncreateView() aufgerufen wird, andernfalls wird einGPUValidationError generiert und ein ungültigesGPUTextureView Objekt wird zurückgegeben:

Beispiele

Typische Verwendung voncreateView()

Im WebGPU-BeispieleCubemap-Demo sehen Sie mehrere Beispiele, wiecreateView() verwendet wird, sowohl um eine Ansicht alsresource für einenGPUDevice.createBindGroup()-Aufruf zu erstellen, als auch um eineview imdepthStencilAttachment-Objekt einesGPUCommandEncoder.beginRenderPass()-Deskriptors 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);// …

createView() mit Nutzungseinschränkung

In diesem Beispiel erstellen wir eine Textur und dann eine Ansicht, deren Nutzung über die Eigenschaftusage eingeschränkt ist.

js
const texture = myDevice.createTexture({  size: [4, 4],  format: "rgba8unorm",  usage:    GPUTextureUsage.RENDER_ATTACHMENT |    GPUTextureUsage.TEXTURE_BINDING |    GPUTextureUsage.STORAGE_BINDING,  viewFormats: ["rgba8unorm-srgb"],});const view = texture.createView({  format: "rgba8unorm-srgb",  usage: GPUTextureUsage.RENDER_ATTACHMENT, // Restrict allowed usage});

Spezifikationen

Specification
WebGPU
# dom-gputexture-createview

Browser-Kompatibilität

Siehe auch

Help improve MDN

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

[8]ページ先頭

©2009-2025 Movatter.jp