Zum Inhalt springen

Kameras & Transformationen

Bisher haben wir 3D-Objekte erstellt, ihre Oberflächen beleuchtet und ihre Darstellung mit Vertex- und Fragment-Shadern beeinflusst. Dabei standen die Objekte meist an festen Positionen und wir betrachteten sie aus einer vorgegebenen Perspektive.

Doch wie bewegen wir ein Objekt durch eine 3D-Szene? Wie drehen oder vergrößern wir es? Und wie können wir unseren Blickwinkel verändern, um die Szene von einer anderen Position aus zu betrachten?

Dafür benötigen wir Transformationen und Matrizen.

Mit Matrizen können wir die Position, Ausrichtung und Größe eines Objekts verändern. Außerdem bestimmen wir mit ihnen, aus welcher Perspektive eine Szene betrachtet und wie sie auf die zweidimensionale Fläche unseres Canvas projiziert wird.

WebGPU stellt dafür kein fertiges Kameraobjekt bereit. Stattdessen beschreiben wir die Kamera mithilfe mathematischer Transformationen, die wir in unseren Shadern anwenden.

In diesem Kapitel beschäftigen wir uns deshalb mit den Grundlagen dieser Transformationen. Wir lernen homogene Koordinaten kennen, untersuchen die Model-, View- und Projektionsmatrix und sehen uns an, warum Oberflächennormalen bei Transformationen besondere Aufmerksamkeit benötigen.

Anschließend verwenden wir dieses Wissen, um eine virtuelle Kamera zu erstellen und unseren Blick durch eine 3D-Szene zu bewegen.