Coordinate Space Terminology

Choose your OS:

Spaces

Space in Unreal

Other Names

Description

Tangent

Orthogonal (can deviate after interpolation), can be left or right handed. The TangentToLocal transform contains rotation only, so it is OrthoNormal (can be inverted by transposing).

Local

Object Space

Orthogonal, can be left or right handed (triangle cull order needs adjustment). The LocalToWorld transform contains rotation, non-uniform scaling (including negative non-uniform scaling which can change the winding order), and translation.

World

The WorldToView transform contains only rotation and translation, so distances in View space are the same as in World space.

TranslatedWorld

World

TranslatedWorld - PreViewTranslation

TranslatedWorld

World + PreViewTranslation

Translated matrices are used to remove camera position from the combined transform matrices, which improves precision when transforming vertices.

View

CameraSpace

The ViewToClip transform contains scale on x and y, but no translation (which would be an off center projection). It scales and translates z. It also applies a projection to convert into the homogeneous ClipSpace.

Clip

HomogeniousCoordinates, PostProjectionSpace, ProjectionSpace

After the perspective projection matrix was applied. Note that W in Clip space is the same as View Space Z.

Screen

NormalizedDeviceCoordinates from OpenGL

After the perspective divide:

left/right

-1,1

top/bottom

1,-1

near/far

0,1 (OpenGL RHI needs to transform this to -1,1)

Viewport

ViewportCoordinates, WindowCoordinates

In pixels :

left/right

0, width-1

top/bottom

0, height-1

Space Transformations

Transformation between spaces should always be named using the form X To Y.

Examples:

  • WorldToView

  • TranslatedWorldToView

  • TangentToWorld