GPURenderBundleEncoder: Methode setIndexBuffer()
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 in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die setIndexBuffer()-Methode der GPURenderBundleEncoder-Schnittstelle legt den aktuellen GPUBuffer fest, der Indexdaten für nachfolgende Zeichenbefehle bereitstellen wird.
Hinweis:
Diese Methode ist funktional identisch mit ihrem Äquivalent im GPURenderPassEncoder — setIndexBuffer().
Syntax
setIndexBuffer(buffer, indexFormat, offset, size)
Parameter
buffer-
Ein
GPUBuffer, der den Puffer darstellt, der die zu verwendenden Indexdaten für nachfolgende Zeichenbefehle enthält. indexFormat-
Ein enumerierter Wert, der das Format der im
bufferenthaltenen Indexdaten definiert. Mögliche Werte sind:"uint16""uint32"
offsetOptional-
Eine Zahl, die den Offset in Bytes innerhalb des
bufferdarstellt, an dem die Indexdaten beginnen. Wenn ausgelassen, ist der Standardwert vonoffset0. sizeOptional-
Eine Zahl, die die Größe in Bytes der im
bufferenthaltenen Indexdaten darstellt. Wenn ausgelassen, entsprichtsizeder Differenz zwischen derGPUBuffer.sizedesbufferundoffset.
Hinweis zu indexFormat
indexFormat bestimmt sowohl den Datentyp der Indexwerte in einem Puffer als auch, wenn es mit einer Pipeline verwendet wird, die eine Streifen-Primitive-Topologie („line-strip“ oder „triangle-strip“) spezifiziert, den Primitive-Neustartwert. Der Primitive-Neustartwert ist ein Indexwert, der angibt, dass ein neues Primitive gestartet werden sollte, anstatt den Streifen mit den zuvor indizierten Vertizes weiter zu konstruieren. Der Wert ist 0xFFFF für "uint16" oder 0xFFFFFFFF für "uint32".
Rückgabewert
Keiner (Undefined).
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn setIndexBuffer() aufgerufen wird, andernfalls wird ein GPUValidationError generiert und der GPURenderBundleEncoder wird ungültig:
- Das
GPUBuffer.usagedesbufferenthält dasGPUBufferUsage.INDEX-Flag. offset+sizeist kleiner oder gleich derGPUBuffer.sizedesbuffer.offsetist ein Vielfaches der Byte-Größe vonindexFormat(2 für"uint16", 4 für"uint32").
Beispiele
// …
const bundleEncoder = device.createRenderBundleEncoder(descriptor);
bundleEncoder.setPipeline(pipeline);
bundleEncoder.setBindGroup(0, sceneBindGroupForRender);
bundleEncoder.setBindGroup(1, modelBindGroup);
bundleEncoder.setVertexBuffer(0, vertexBuffer);
bundleEncoder.setIndexBuffer(indexBuffer, "uint16");
bundleEncoder.drawIndexed(indexCount);
const renderBundle = bundleEncoder.finish();
// …
Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpurendercommandsmixin-setindexbuffer> |
Browser-Kompatibilität
Loading…
Siehe auch
- Die WebGPU API