# Coordinate

Coordinates are numbers that tell the game engine where to position things, whether in 3D or in 2D (like a polygon or an overlay).

## Cartesian Coordinates

Cartesian coordinates are the most common way of describing and delineating 3D space. Space is described by three vectors at right angles to each other, labeled by longtime convention as X, Y, and Z, and starting at a center point called the Origin.

This coordinate system is based on the ideas of Rene Descartes, aka Cartesius of the "Cognito ergo sum" fame (I think, therefore I am).

It is a very efficient way to describe space, so most game engines use this system.

If positioning something in 3D, you need three coords, commonly called X, Y, and Z, and usually written as (X,Y,Z). If positioning something in 2D, you only use the X and the Y, and write it as (X,Y). For 2D, the X is horizontal, the Y is vertical, and the numbers usually start at (0,0) in the upper-left corner.

### Y-Up vs. Z-Up

3D applications can use different orientations for the Cartesian axes.

3ds Max uses Z as the up coordinate because it started as a rendering tool for architects. Architectural projects commonly start with a flat plan view, where X and Y are width and length, and Z is the height above/below the ground.

Maya uses Y as the up axis because it started as a movie and effects animation tool, where projects commonly start relative to the camera. X and Y are width and height of the view, and Z is the depth into the scene.

Maya allows you to switch to Z up, but 3ds Max does not allow you to change to Y up.

Export and import tools will usually let you set the up axis of the outgoing or incoming model, rotating the content for you.

### Handedness

Right-handed and left-handed coordinates simply refer to different orientations for the 3 axes. It's a shortcut for saying whether Z is pointing towards or away from the screen... right handed is Z towards, left-handed is Z away.

- Left Handed and Right Handed Coordinate Systems has a nice illustration of this.

## Texture Coordinates

See Texture_Coordinates.