GPUCanvasContext: configure()-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, bevor Sie diese produktiv verwenden.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die configure()
-Methode der GPUCanvasContext
-Schnittstelle konfiguriert den Kontext zur Verwendung beim Rendern mit einem gegebenen GPUDevice
. Beim Aufruf wird die Leinwand zunächst in transparentes Schwarz gelöscht.
Syntax
configure(configuration)
Parameter
configuration
-
Ein Objekt, das die folgenden Eigenschaften enthält:
alphaMode
Optional-
Ein enumerierter Wert, der die Wirkung angibt, die Alpha-Werte auf den Inhalt von Texturen haben, die von
getCurrentTexture()
zurückgegeben werden, wenn sie gelesen, angezeigt oder als Bildquelle verwendet werden. Mögliche Werte sind:opaque
: Alpha-Werte werden ignoriert — wenn eine Textur nicht bereits undurchsichtig ist, wird der Alpha-Kanal auf 1.0 gesetzt, wenn sie als Bildquelle oder auf dem Bildschirm angezeigt wird. Dies ist der Standardwert.premultiplied
: Farbwerte werden mit ihrem Alpha-Wert multipliziert. Zum Beispiel ist 100% Rot bei 50% Alpha[0.5, 0, 0, 0.5]
.
colorSpace
Optional-
Der Farbraum, mit dem Werte angezeigt werden sollen, die in Texturen geschrieben werden, die von
getCurrentTexture()
zurückgegeben werden. Mögliche Werte sindsrgb
(der Standard) unddisplay-p3
. device
-
Das
GPUDevice
, von dem die Renderinformationen für den Kontext stammen werden. format
-
Das Format, das Texturen haben werden, die von
getCurrentTexture()
zurückgegeben werden. Dies kannbgra8unorm
,rgba8unorm
oderrgba16float
sein. Das optimale Texturformat für das aktuelle System kann vonGPU.getPreferredCanvasFormat()
zurückgegeben werden. Es wird empfohlen, dieses zu verwenden — wenn Sie nicht das bevorzugte Format bei der Konfiguration des Leinwand-Kontextes verwenden, können Sie möglicherweise zusätzlichen Overhead inkassieren, je nach Plattform, wie etwa zusätzliche Texturkopien. toneMapping
Optional-
Ein Objekt, das Parameter angibt, die das Tonemapping für den Kontext definieren — wie der Inhalt der zugehörigen Texturen angezeigt werden soll. Dies ermöglicht es WebGPU, Farben heller als
white
(#FFFFFF
) zu zeichnen. Mögliche Eigenschaften sind:mode
Optional-
Ein enumerierter Wert, der den Tonemapping-Modus für die Leinwand angibt. Mögliche Werte sind:
standard
-
Der Standardwert. Beschränkt gerenderten Inhalt auf den Standard-Dynamikbereich (SDR) des Displays. Dieser Modus wird erreicht, indem alle Farbwerte im Farbraum des Bildschirms auf das Intervall
[0, 1]
geklammert werden. extended
-
Ermöglicht es, Inhalte im vollen Hochdynamikbereich (HDR) des Displays zu rendern, falls verfügbar. Der HDR-Modus erlaubt es, eine breitere Palette an Farben und Helligkeitsstufen anzuzeigen, mit präziseren Anweisungen, welche Farbe in jedem Fall angezeigt werden soll. Dieser Modus entspricht
"standard"
im[0, 1]
-Bereich des Bildschirms. Clipping oder Projektion wird auf den erweiterten Dynamikbereich des Bildschirms aber nicht auf[0, 1]
angewendet.
usage
Optional-
Bitweise Flags, die die erlaubte Verwendung für Texturen angeben, die von
getCurrentTexture()
zurückgegeben werden. Mögliche Werte sind:GPUTextureUsage.COPY_SRC
: Die Textur kann als Quelle für einen Kopiervorgang verwendet werden, z.B. als Quellargument einesGPUCommandEncoder.copyTextureToBuffer()
-Aufrufs.GPUTextureUsage.COPY_DST
: Die Textur kann als Ziel eines Kopier-/Schreibvorgangs verwendet werden, z.B. als Zielargument einesGPUCommandEncoder.copyTextureToTexture()
-Aufrufs.GPUTextureUsage.RENDER_ATTACHMENT
: Die Textur kann als Farb-Anhang in einem Renderpass verwendet werden, z.B. in einer Farbklemmansicht in einemGPUCommandEncoder.beginRenderPass()
-Aufruf.GPUTextureUsage.RENDER_ATTACHMENT
ist der Standard-usage
, aber beachten Sie, dass es nicht automatisch hinzugefügt wird, wenn ein anderer Wert explizit gesetzt wird; in solchen Fällen müssen Sie ihn zusätzlich angeben.GPUTextureUsage.TEXTURE_BINDING
: Die Textur kann zur Verwendung als gesampelte Textur in einem Shader gebunden werden, z.B. in einem Bindegruppeneintrag in einemGPUDevice.createBindGroup()
-Aufruf.GPUTextureUsage.STORAGE_BINDING
: Die Textur kann zur Verwendung als Speichertextur in einem Shader gebunden werden, z.B. in einem Bindegruppeneintrag in einemGPUDevice.createBindGroup()
-Aufruf.
Beachten Sie, dass mehrere mögliche Verwendungen unter Verwendung des bitweisen ODER-Operators angegeben werden können. Zum Beispiel,
usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.RENDER_ATTACHMENT
. viewFormats
Optional-
Ein Array von Formaten, die Ansichten erstellt von Texturen verwenden können, die von
getCurrentTexture()
zurückgegeben werden. Siehe Texture Formats für alle möglichen Werte.
Rückgabewert
Keiner (undefined
).
Beispiele
Grundlegende Verwendung
const canvas = document.querySelector("#gpuCanvas");
const context = canvas.getContext("webgpu");
context.configure({
device: device,
format: navigator.gpu.getPreferredCanvasFormat(),
alphaMode: "premultiplied",
});
HDR toneMapping
-Demos
Sehen Sie sich das Particles (HDR)-Beispiel und den HDR support-Test an.
Spezifikationen
Specification |
---|
WebGPU # dom-gpucanvascontext-configure |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API