| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/GPUQueue/writeTexture | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen untersttzenden Browsern verfgbar.
Hinweis: Diese Funktion ist in Web Workers verfgbar.
Die writeTexture()-Methode der GPUQueue-Schnittstelle schreibt eine bereitgestellte Datenquelle in eine gegebene GPUTexture.
Dies ist eine Komfortfunktion, die eine Alternative zum Setzen von Texturdaten ber Puffer-Mapping und Puffer-zu-Textur-Kopien bietet. Sie erlaubt es dem Benutzeragenten, die effizienteste Methode zum Kopieren der Daten zu bestimmen.
writeTexture(destination, data, dataLayout, size)
destinationEin Objekt, das die Textur-Subressource und den Ursprung definiert, um die Datenquelle zu schreiben, welches die folgenden Eigenschaften haben kann:
aspect OptionalEin enumerierter Wert, der definiert, auf welche Aspekte der Textur die Daten geschrieben werden. Mgliche Werte sind:
"all"Alle verfgbaren Aspekte des Texturformats werden beschrieben, was alle oder beliebige von Farbe, Tiefe und Stencil bedeuten kann, abhngig von der Art des Formats, mit dem Sie arbeiten.
"depth-only"Nur der Tiefenaspekt eines depth-or-stencil format wird beschrieben.
"stencil-only"Nur der Stencilaspekt eines depth-or-stencil formats wird beschrieben.
Wenn ausgelassen, nimmt aspect den Wert "all" an.
mipLevel OptionalEine Zahl, die die Mip-Map-Ebene der Textur darstellt, auf die die Daten geschrieben werden sollen. Wenn weggelassen, ist der Standardwert von mipLevel 0.
origin OptionalEin Objekt oder ein Array, das den Ursprung der Kopie angibt die minimale Ecke des Texturbereichs, auf den die Daten geschrieben werden sollen. Zusammen mit size definiert dies den vollstndigen Umfang des zu kopierenden Bereichs. Die x, y und z Werte sind standardmig 0, wenn origin weggelassen wird.
Sie knnen zum Beispiel ein Array wie [0, 0, 0] oder das entsprechende Objekt { x: 0, y: 0, z: 0 } bergeben.
textureEin GPUTexture-Objekt, das die Textur darstellt, auf die die Daten geschrieben werden sollen.
dataEin Objekt, das die Datenquelle darstellt, die in die GPUTexture geschrieben werden soll. Dies kann ein ArrayBuffer, TypedArray oder DataView sein.
dataLayoutEin Objekt, das das Layout des Inhalts in data definiert. Mgliche Werte sind:
offset OptionalDer Versatz, in Byte, vom Beginn von data bis zum Start der Bilddaten, die kopiert werden sollen. Wenn weggelassen, ist der Standardwert von offset 0.
bytesPerRow OptionalEine Zahl, die die Breite, in Bytes, zwischen dem Anfang jeder Blockreihe (d.h. einer Reihe vollstndiger Texel-Blcke) und der nachfolgenden Blockreihe darstellt. Dies ist erforderlich, wenn es mehrere Blockreihen gibt (d.h. die Kopierhhe oder -tiefe ist mehr als ein Block).
rowsPerImage OptionalDie Anzahl der Blockreihen pro Einzelbild der Textur. bytesPerRow rowsPerImage ergibt die Breite, in Bytes, zwischen dem Anfang jedes vollstndigen Bildes. Dies ist erforderlich, wenn es mehrere Bilder zum Kopieren gibt.
sizeEin Objekt oder ein Array, das den Umfang der Kopie angibt die entfernte Ecke des Texturbereichs, auf die die Daten geschrieben werden sollen. Zusammen mit destination.origin definiert dies den vollstndigen Umfang des zu kopierenden Bereichs. Siehe destination.origin fr Beispiele zur Objekt-/Array-Struktur.
Keiner (undefined).
Die folgenden Kriterien mssen erfllt sein, wenn writeTexture() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und die GPUQueue wird ungltig:
mipLevel ist kleiner als die GPUTexture.mipLevelCount des Ziels.origin.x ist ein Vielfaches der Texel-Blockbreite des GPUTexture.format des Ziels.origin.y ist ein Vielfaches der Texel-Blockhhe des GPUTexture.format des Ziels.GPUTexture.format des Ziels ein depth-or-stencil format ist oder GPUTexture.sampleCount mehr als 1 ist, ist die Gre der Subressource gleich der size.GPUTexture.usage des Ziels beinhaltet das GPUTextureUsage.COPY_DST Flag.GPUTexture.sampleCount des Ziels ist 1.destination.origin.x + die destination GPUTexture.width ist kleiner oder gleich der Breite der Subressource, die in die destination GPUTexture geschrieben werden soll.destination.origin.y + die destination GPUTexture.height ist kleiner oder gleich der Hhe der Subressource, die in die destination GPUTexture geschrieben werden soll.destination.origin.z + die destination GPUTexture.depthOrArrayLayers ist kleiner oder gleich der depthOrArrayLayers der Subressource, die in die destination GPUTexture geschrieben werden soll.destination GPUTexture.width ist ein Vielfaches der Texel-Blockbreite des GPUTexture.format des Ziels.destination GPUTexture.height ist ein Vielfaches der Texel-Blockhhe des GPUTexture.format des Ziels.destination.aspect bezieht sich auf einen einzelnen Aspekt des GPUTexture.format des Ziels.destination ist anderweitig kompatibel mit dem GPUTexture.format.In Efficiently rendering glTF models wird eine Funktion fr das Erstellen einer einfarbigen Textur definiert:
function createSolidColorTexture(r, g, b, a) {
const data = new Uint8Array([r * 255, g * 255, b * 255, a * 255]);
const texture = device.createTexture({
size: { width: 1, height: 1 },
format: "rgba8unorm",
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,
});
device.queue.writeTexture({ texture }, data, {}, { width: 1, height: 1 });
return texture;
}
Dies kann verwendet werden, um Standardtexturen fr die Verwendung in Materialbibliotheken zu definieren:
const opaqueWhiteTexture = createSolidColorTexture(1, 1, 1, 1);
const transparentBlackTexture = createSolidColorTexture(0, 0, 0, 0);
const defaultNormalTexture = createSolidColorTexture(0.5, 0.5, 1, 1);
| Spezifikation |
|---|
| WebGPU # dom-gpuqueue-writetexture |
GPUQueueGPUGPUAdapterGPUAdapterInfoGPUBindGroupGPUBindGroupLayoutGPUBufferGPUCanvasContextGPUCommandBufferGPUCommandEncoderGPUCompilationInfoGPUCompilationMessageGPUComputePassEncoderGPUComputePipelineGPUDeviceGPUDeviceLostInfoGPUErrorGPUExternalTextureGPUInternalErrorGPUOutOfMemoryErrorGPUPipelineErrorGPUPipelineLayoutGPUQuerySetGPURenderBundleGPURenderBundleEncoderGPURenderPassEncoderGPURenderPipelineGPUSamplerGPUShaderModuleGPUSupportedFeaturesGPUSupportedLimitsGPUTextureGPUTextureViewGPUUncapturedErrorEventGPUValidationErrorHTMLCanvasElement.getContext()Navigator.gpuWorkerNavigator.gpuDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |