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, 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 setViewport()
-Methode der GPURenderPassEncoder
-Schnittstelle setzt den Viewport, der während der Rasterisierungsstufe verwendet wird, um von normalisierten Gerätekoordinaten zu Viewport-Koordinaten linear zu konvertieren.
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 vorgenommen wird, lauten 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, da sonst ein GPUValidationError
erzeugt wird und der GPURenderPassEncoder
ungültig wird:
x
,y
,width
undheight
sind alle größer als oder gleich 0.x
+width
ist kleiner als oder gleich der Breite der Render-Anhänge des Render-Passes (siehe Hinweis unten).y
+height
ist kleiner als 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 in der Beschreibung von GPUCommandEncoder.beginRenderPass()
angegebenen Farb- und Tiefen-/Stencil-Anhänge; die Breite und Höhe basieren auf der des GPUTexture
, von dem ihre view
s 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-Samples-reversedZ example wird setViewport
mehrmals verwendet, um den Viewport für die verschiedenen Render-Passes einzustellen. Studieren Sie die Beispielcodeliste für den vollen 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
BCD tables only load in the browser
Siehe auch
- Die WebGPU API