Spaces #
| Space in Unreal |
Other Names |
Description |
| Tangent |
|
Orthogonal (although interpolation can introduce skew); can be left-handed or right-handed. TangentToLocal contains rotation only, so it is orthonormal and can be inverted by transposition. |
| Local |
Object Space |
Orthogonal; can be left-handed or right-handed, requiring triangle culling order to be adjusted. LocalToWorld contains rotation, non-uniform scale (including negative non-uniform scale that can change winding order), and translation. |
| World |
|
WorldToView contains rotation and translation only, so distances in View Space are the same as in World Space. |
| TranslatedWorld |
|
| World |
TranslatedWorld − PreViewTranslation |
| TranslatedWorld |
World + PreViewTranslation |
Translated matrices remove the camera position from combined transformation matrices, improving precision when transforming vertices. |
| View |
CameraSpace |
ViewToClip scales x and y but does not translate them, which would create an off-center projection. It scales and translates z, and applies projection to produce homogeneous Clip Space. |
| Clip |
Homogeneous coordinates , post-projection space, or projection space |
After applying the perspective projection matrix. W in Clip Space is the same as Z in View Space. |
| Screen |
NormalizedDeviceCoordinates in OpenGL |
After the perspective divide:
| Left / Right |
−1, 1 |
| Bottom / Top |
1, −1 |
| Near / Far |
0, 1 (OpenGL RHI must convert this to −1, 1) |
|
| Viewport |
ViewportCoordinates , WindowCoordinates |
In pixels:
| Left / Right |
0, width − 1 |
| Bottom / Top |
0, height − 1 |
|
Space Transformations #
Name transformations between spaces using XTo Y.
Examples:
- WorldToView
- TranslatedWorldToView
- TangentToWorld