WebGPU - 3D im Browser

 Home

 1 Setup und Systemvoraussetzungen
 2 Hallo WebGPU (Initialisierung)


 Kontakt / Impressum
 webgpu ([ät)] peter-strohm Punkt de

2 Hello WebGPU

>>>> Direkt zum Beispiel <<<<


Zunächst benötigen wir eine einfache HTML-Datei webgpubeispiel2.html, durch die eine js-Datei (Javascript) nachgeladen wird, die dann die WebGPU-Funktionen enthält.
1<!DOCTYPE html>
2<html lang="de">
3<meta charset="UTF-8">
4<head>
5  <title>WebGPU Hello WebGPU</Title>
6  <script src="webgpubeispiel2.js" type="module"></script>
7 
8</head>
9<body>
10
11<canvas id="mywebgpucanvas"></canvas>
12<div id="output></div>
13
14</body>
15</html>


Kommen wir nun zur js-Datei webgpubeispiel2.js. Im derzeitigen experimentellen Stand von WebGPU müssen wir (leider) noch ein externes Hilfs-Javascript laden, das das Kompilieren der Shader (mehr dazu später) übernimmt.
15import glslangModule from 'https://unpkg.com/@webgpu/glslang@0.0.8/dist/web-devel/glslang.js'


Dann schauen wir zunächst ans Ende der Datei. Hier wird der Browser veranlasst, nach dem vollständigen Laden der HTML-Datei (einschl. der inkludierten js-Dateien), eine bestimmt javascript-Funktion namens myWebGPUInit() auszuführen:
109document.addEventListener("load", myWebGPUInit());

Diese Funktion myWebGPUInit() ist der Hauptteil von webgpubeispiel2.js und enthält die grundlegenden Schritte zu WebGPU-Nutzung.
16async function myWebGPUInit() {

Jetzt fragen wir beim Browser nach dem Zugriff auf das GPU-Device ("Grafikkarte") an. Dies geschieht in zwei Schritten:
18    const GPUadapter = await navigator.gpu.requestAdapter(); // Der Browser ("navigator") wird nach Zugang zur GPU in Form eines Adapters angefragt.
19    
20    const myDevice = await GPUadapter.requestDevice({}); // Aus dem Adapter kann ein Device geholt werden.

Kommentar hinterlassen:

Name
Email Die Emailadresse wird nicht veröffentlicht und nicht weitergegeben
Kommentar

<< Kapitel 1 <<    >> Startseite <<   ^ Seitenanfang ^     >> Kapitel 3 >>
Fehler? Kommentare? webgpu ([ät)] peter-strohm Punkt de