Zum Inhalt springen

Aufgabe: Interaktive Vertex-Transformationen

Wir entwickeln Beispiel 21 auf Grundlage von Beispiel 20 – Vertex-Transformationen.

  • Model-, View- und Projektionsmatrix aus dem WGSL-Shader entfernen.
  • Alle drei Matrizen mit wgpu-matrix in TypeScript erstellen.
  • Matrizen über einen Uniform-Buffer an den Shader übergeben.
  • Vertex-Transformationen weiterhin in WGSL durchführen.
  • Position des Würfels entlang der X-, Y- und Z-Achse verändern.
  • Würfel um die X-, Y- und Z-Achse drehen.
  • Würfel entlang der drei Achsen skalieren.
  • Translation, Rotation und Skalierung zu einer Model-Matrix kombinieren.
  • Kameraposition entlang der X-, Y- und Z-Achse verändern.
  • Blickrichtung der Kamera verändern.
  • View-Matrix bei Änderungen neu berechnen.
  • Perspektive über den Öffnungswinkel (Field of View) einstellen.
  • Projektionsmatrix bei Änderungen aktualisieren.
  • Normalenmatrix aus der Model-Matrix berechnen.
  • Normalenmatrix als Uniform an WGSL übergeben.
  • Normalen im Vertex-Shader korrekt transformieren.
  • Änderungen in Tweakpane unmittelbar übernehmen.
  • Betroffene Matrizen in TypeScript neu berechnen.
  • Uniform-Buffer mit device.queue.writeBuffer() aktualisieren.
  • Würfel mit den neuen Transformationen rendern.