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
TranslatedWorld - PreViewTranslation
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 :
0, width-1
0, height-1
Transformation between spaces should always be named using the form X To Y.
Examples:
WorldToView
TranslatedWorldToView
TangentToWorld