GLM_EXT_matrix_clip_space
Stable extensions

## Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustum (T left, T right, T bottom, T top, T near, T far)
| Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumLH (T left, T right, T bottom, T top, T near, T far)
| Creates a left-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumLH_NO (T left, T right, T bottom, T top, T near, T far)
| Creates a left-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumLH_ZO (T left, T right, T bottom, T top, T near, T far)
| Creates a left-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumNO (T left, T right, T bottom, T top, T near, T far)
| Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumRH (T left, T right, T bottom, T top, T near, T far)
| Creates a right-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumRH_NO (T left, T right, T bottom, T top, T near, T far)
| Creates a right-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumRH_ZO (T left, T right, T bottom, T top, T near, T far)
| Creates a right-handed frustum matrix. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | frustumZO (T left, T right, T bottom, T top, T near, T far)
| Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | infinitePerspective (T fovy, T aspect, T near)
| Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | infinitePerspectiveLH (T fovy, T aspect, T near)
| Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | infinitePerspectiveRH (T fovy, T aspect, T near)
| Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | ortho (T left, T right, T bottom, T top)
| Creates a matrix for projecting two-dimensional coordinates onto the screen. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | ortho (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoLH (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoRH (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
| Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspective (T fovy, T aspect, T near, T far)
| Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default near and far clip planes definition. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFov (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovLH (T fov, T width, T height, T near, T far)
| Builds a left-handed perspective projection matrix based on a field of view. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovNO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovRH (T fov, T width, T height, T near, T far)
| Builds a right-handed perspective projection matrix based on a field of view. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveFovZO (T fov, T width, T height, T near, T far)
| Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveLH (T fovy, T aspect, T near, T far)
| Creates a matrix for a left-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveLH_NO (T fovy, T aspect, T near, T far)
| Creates a matrix for a left-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveLH_ZO (T fovy, T aspect, T near, T far)
| Creates a matrix for a left-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveNO (T fovy, T aspect, T near, T far)
| Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveRH (T fovy, T aspect, T near, T far)
| Creates a matrix for a right-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveRH_NO (T fovy, T aspect, T near, T far)
| Creates a matrix for a right-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveRH_ZO (T fovy, T aspect, T near, T far)
| Creates a matrix for a right-handed, symmetric perspective-view frustum. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | perspectiveZO (T fovy, T aspect, T near, T far)
| Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | tweakedInfinitePerspective (T fovy, T aspect, T near)
| Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > | tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
| Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...

## Detailed Description

Defines functions that generate clip space transformation matrices.

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

Include <glm/ext/matrix_clip_space.hpp> to use the features of this extension.

See also
  GLM_EXT_matrix_transform
  GLM_EXT_matrix_projection

## Function Documentation

## frustum()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustum | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Template Parameters

  T | A floating-point scalar type

See also
  glFrustum man page

## frustumLH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a left-handed frustum matrix.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumLH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a left-handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumLH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a left-handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumNO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumNO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumRH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a right-handed frustum matrix.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumRH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a right-handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumRH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a right-handed frustum matrix.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

## frustumZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | near,
|  | T | far
| ) |  |

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

## infinitePerspective()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspective | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## infinitePerspectiveLH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveLH | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

Creates a matrix for a left-handed, symmetric perspective-view frustum with far plane at infinite.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## infinitePerspectiveRH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveRH | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

Creates a matrix for a right-handed, symmetric perspective-view frustum with far plane at infinite.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## ortho() [1/2]

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top
| ) |  |

Creates a matrix for projecting two-dimensional coordinates onto the screen.

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
  gluOrtho2D man page

## ortho() [2/2]

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
  glOrtho man page

## orthoLH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoLH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume using left-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoLH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoNO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoNO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoRH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoRH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_NO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoRH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_ZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## orthoZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoZO | ( | T | left,
|  | T | right,
|  | T | bottom,
|  | T | top,
|  | T | zNear,
|  | T | zFar
| ) |  |

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Template Parameters

  T | A floating-point scalar type

See also
  - glm::ortho(T const& left, T const& right, T const& bottom, T const& top)

## perspective()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspective | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  fovy | Specifies the field of view angle in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

See also
  gluPerspective man page

## perspectiveFov()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFov | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition.

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovLH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a left-handed perspective projection matrix based on a field of view.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovLH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_NO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovLH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_ZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovNO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovNO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovRH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a right-handed perspective projection matrix based on a field of view.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovRH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_NO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovRH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_ZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveFovZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovZO | ( | T | fov,
|  | T | width,
|  | T | height,
|  | T | near,
|  | T | far
| ) |  |

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fov | Expressed in radians.
  width | Width of the viewport
  height | Height of the viewport
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveLH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a left-handed, symmetric perspective-view frustum.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveLH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_NO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a left-handed, symmetric perspective-view frustum.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveLH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_ZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a left-handed, symmetric perspective-view frustum.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveNO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveNO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveRH()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a right-handed, symmetric perspective-view frustum.

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveRH_NO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_NO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a right-handed, symmetric perspective-view frustum.

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveRH_ZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_ZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a right-handed, symmetric perspective-view frustum.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## perspectiveZO()

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveZO | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | far
| ) |  |

Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  far | Specifies the distance from the viewer to the far clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## tweakedInfinitePerspective() [1/2]

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective | ( | T | fovy,
|  | T | aspect,
|  | T | near
| ) |  |

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).

Template Parameters

  T | A floating-point scalar type

## tweakedInfinitePerspective() [2/2]

GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective | ( | T | fovy,
|  | T | aspect,
|  | T | near,
|  | T | ep
| ) |  |

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

Parameters

  fovy | Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
  aspect | Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
  near | Specifies the distance from the viewer to the near clipping plane (always positive).
  ep | Epsilon

Template Parameters

  T | A floating-point scalar type