GPURenderPassEncoder: setViewport()-Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
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 setViewport()-Methode des GPURenderPassEncoder-Interfaces legt den Viewport fest, der während der Rasterisierungsphase verwendet wird, um von normalisierten Gerätekoordinaten auf Viewport-Koordinaten linear abzubilden.
Syntax
setViewport(x, y, width, height, minDepth, maxDepth)
Parameter
x-
Eine Zahl, die den minimalen X-Wert des Viewports in Pixeln darstellt.
y-
Eine Zahl, die den minimalen Y-Wert des Viewports in Pixeln darstellt.
width-
Eine Zahl, die die Breite des Viewports in Pixeln darstellt.
height-
Eine Zahl, die die Höhe des Viewports in Pixeln darstellt.
minDepth-
Eine Zahl, die den minimalen Tiefenwert des Viewports darstellt.
maxDepth-
Eine Zahl, die den maximalen Tiefenwert des Viewports darstellt.
Hinweis:
Wenn kein setViewport()-Aufruf erfolgt, sind die Standardwerte (0, 0, attachment width, attachment height, 0, 1) für jeden Renderpass.
Rückgabewert
Keiner (undefined).
Validierung
Die folgenden Kriterien müssen beim Aufruf von setViewport() erfüllt sein, andernfalls wird ein GPUValidationError generiert und der GPURenderPassEncoder wird ungültig:
x,y,widthundheightsind alle größer oder gleich 0.x+widthist kleiner oder gleich der Breite der Render-Anhänge des Renderpasses (siehe Hinweis unten).y+heightist kleiner oder gleich der Höhe der Render-Anhänge des Renderpasses (siehe Hinweis unten).minDepthundmaxDepthliegen beide im Bereich zwischen 0.0 und 1.0 inklusive.minDepthist kleiner alsmaxDepth.
Hinweis:
Siehe die Farb- und Tiefen-/Stencil-Anhänge, wie sie im Deskriptor von GPUCommandEncoder.beginRenderPass() angegeben sind; die Breite und Höhe basieren auf dem GPUTexture, aus dem ihre views stammen.
Beispiele
>Grundlegender Ausschnitt
Bei einem typischen Canvas-Render könnte das Folgende verwendet werden, um die Breite und Höhe der gerenderten Grafiken zu halbieren:
passEncoder.setViewport(0, 0, canvas.width / 2, canvas.height / 2, 0, 1);
Im Kontext
Im WebGPU-Beispiel reversedZ wird setViewport mehrmals verwendet, um den Viewport für die verschiedenen Renderpassagen festzulegen. Untersuchen Sie die Beispielcode-Auflistung für den vollständigen Kontext.
Zum Beispiel:
// …
colorPass.setViewport(
(canvas.width * m) / 2,
0,
canvas.width / 2,
canvas.height,
0,
1,
);
// …
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gpurenderpassencoder-setviewport> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API