← SEARCHABLE ARCHIVE
Mathematics · 2026-07-09

Welt, Ansicht, Projektionsmatrix

Der Prozess, durch den 3D-Scheitelpunkte zu Pixeln auf dem Bildschirm werden

INTERACTIVE READING MODE →

Die in diesem Blog verfassten Artikel wurden mit dem Ziel erstellt, zu unterrichten. Außerdem können die Informationen im Artikel falsch sein, also seien Sie bitte vorsichtig.

Ein 3D-Objekt durchläuft die Welt-, Ansichts- und Projektionsmatrizen, bis es als 2D-Pixel auf dem Bildschirm erscheint.

Local Space
   ↓ World
World Space
   ↓ View
View Space
   ↓ Projection
Clip Space
   ↓ Perspective Divide
NDC
   ↓ Viewport
Screen

Weltmatrix

Verschieben Sie die Eckpunkte der Modelldatei an die Position, Drehung und Größe der Spielwelt. Selbst wenn mehrere Akteure dasselbe Mesh verwenden, hat jeder Akteur eine andere Weltmatrix.

Matrix anzeigen

Anstatt dass die Kamera jedes Objekt auf der Welt sieht, können Sie sich vorstellen, dass sich die gesamte Welt in die entgegengesetzte Richtung der Kamera bewegt und dreht.

Die Kamera bewegt sich um 10 nach rechts
Verschieben Sie die Welt in der Ansicht um 10 nach links

Die Ansichtsmatrix bezieht sich auf die inverse Transformation der Kameratransformation.

Projektionsmatrix

Die perspektivische Projektion lässt entfernte Objekte kleiner erscheinen und verwandelt den Raum zwischen der Nahebene und der Fernebene in Clip-Raum.

XMMATRIX Projection = XMMatrixPerspectiveFovLH(
    XMConvertToRadians(60.0f),
    Width / static_cast<float>(Height),
    0.1f,
    1000.0f
);

Wenn der Nahwert zu klein und der Fernwert zu groß ist, kann sich die Präzision des Tiefenpuffers verschlechtern und es kann zu Z-Fighting kommen.

Kombiniert im Shader

float4 WorldPosition = mul(float4(Input.Position, 1.0f), World);
float4 ViewPosition = mul(WorldPosition, View);
Output.Position = mul(ViewPosition, Projection);

Die Matrixreihenfolge kann je nach verwendeter Konvention variieren. Speicherplatzierung in DirectXMath und HLSL,mulArgumentreihenfolge und Transpositionsstatus müssen in einer Regel vereint werden.