GPURenderPassEncoder: setViewport()-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 setViewport()
-Methode des GPURenderPassEncoder
-Interfaces setzt das Viewport, das während der Rasterisierungsphase verwendet wird, um von normalisierten Gerätekoordinaten linear zu Viewport-Koordinaten zu mappen.
Syntax
setViewport(x, y, width, height, minDepth, maxDepth)
Parameter
x
-
Eine Zahl, die den minimalen X-Wert des Viewport in Pixeln darstellt.
y
-
Eine Zahl, die den minimalen Y-Wert des Viewport in Pixeln darstellt.
width
-
Eine Zahl, die die Breite des Viewport in Pixeln darstellt.
height
-
Eine Zahl, die die Höhe des Viewport in Pixeln darstellt.
minDepth
-
Eine Zahl, die den minimalen Tiefenwert des Viewport darstellt.
maxDepth
-
Eine Zahl, die den maximalen Tiefenwert des Viewport darstellt.
Hinweis:
Wenn kein setViewport()
-Aufruf erfolgt, sind die Standardwerte (0, 0, attachment width, attachment height, 0, 1)
für jeden Render-Pass.
Rückgabewert
Keiner (Undefined
).
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn setViewport()
aufgerufen wird, sonst wird ein GPUValidationError
erzeugt und der GPURenderPassEncoder
wird ungültig:
x
,y
,width
undheight
sind alle größer oder gleich 0.x
+width
ist kleiner oder gleich der Breite der Render-Anhänge des Render-Passes (siehe Hinweis unten).y
+height
ist kleiner oder gleich der Höhe der Render-Anhänge des Render-Passes (siehe Hinweis unten).minDepth
undmaxDepth
liegen beide im Bereich 0.0–1.0 inklusive.minDepth
ist kleiner alsmaxDepth
.
Hinweis:
Siehe die Farb- und Tiefen-/Stencilanhänge, die im Deskriptor von GPUCommandEncoder.beginRenderPass()
angegeben sind; die Breite und Höhe basieren auf der des GPUTexture
, von der ihre view
s stammen.
Beispiele
Einfacher Codeausschnitt
In einem typischen Canvas-Render könnte Folgendes 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 Samples reversedZ-Beispiel wird setViewport
mehrmals verwendet, um das Viewport für die verschiedenen Render-Pässe einzustellen. Studieren Sie die Beispiel-Codeliste für den vollständigen Kontext.
Zum Beispiel:
// …
colorPass.setViewport(
(canvas.width * m) / 2,
0,
canvas.width / 2,
canvas.height,
0,
1,
);
// …
Spezifikationen
Specification |
---|
WebGPU # dom-gpurenderpassencoder-setviewport |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API