Brain Dump

Coordinate Systems

Tags
computer-graphics

A convention for how to align coordinate axes in a system.

These conventions are often visualised using our hands with:

FingerAxis
ThumbY
FirstZ
IndexX

Note: When demonstrating have our thumb point upwards and then determine the direction of the other two axes from there.

See here for a visual indication of the axes for both left and right hand coordinate systems.

Local Coordinate System

This is the [see page 3, unique coordinate space] for each object I.E. we build up objects at the origin in this space, positioning new shapes on top of existing shapes until we've got the sort of objects we want.

In this coordinate system everything is relative to some point (either the origin or another object we positioned earlier).

World Coordinate System

Transform all objects into one common, global, [see page 4, coordinate system]. Move objects from the LCS to where it should be in the world (using the model matrix) and orient them the way they should be seen relative to the camera.

At this point we also define light sources, cameras and specify surface attributes (texture, color etc.).

We commonly use the right handed coordinate system for the WCS.

View Coordinate System

The local coordinate system for a camera, this system defines a 3D vector:

\(N\)The direction the camera is pointing
\(U\)The up vector
\(V\)The remaining axis in our 3D space which is defined as orthogonal to \(U\) and \(N\)

We define a view plane as some direction along \(N\) which represents the \(x,y\) coordinates of our screen. We also define \(d\) as the distance to this plane.

This is commonly illustrated using a left hand coordinate system. Some diagrams also use the right hand coordinate systems.

Clip Space

Is the local space determining which polygons will end up on screen. Clip coordinates are in NDC and can have perspective-projection applied to them at this stage.

The clip-space is defined using two (near & far) clipping planes and indicates how far before we start seeing objects (too close or cut off) and how far before we stop being able to see them (too far or cut off). See the view cone [see page 20, here].

Screen Space

Convert polygons from NDC to screen coordinates within our configured viewport. This is often done through a viewport transform.