# Frustum

> This function returns a projection matrix with viewing frustum that has a near plane defined by the coordinates that were passed in.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## Frustum(float, float, float, float, float, float)

This function returns a projection matrix with viewing frustum that has a near plane defined by the coordinates that were passed in.

```csharp
public static Matrix4x4 Frustum(float left, float right, float bottom, float top, float zNear, float zFar)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The X coordinate of the left side of the near projection plane in view space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The X coordinate of the right side of the near projection plane in view space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The Y coordinate of the bottom side of the near projection plane in view space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The Y coordinate of the top side of the near projection plane in view space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Z distance to the near plane from the origin in view space.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Z distance to the far plane from the origin in view space.

### Returns

| Type                                                                  | Description                                                                            |
| --------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [Matrix4x4](/engine/6000.7/script-reference/unityengine/matrix4x4.md) | A projection matrix with a viewing frustum defined by the plane coordinates passed in. |

### Remarks

The corners of the near plane of the viewing frustum of the projection matrix are as follows:

top-left : (left, top, zNear)

top-right : (right, top, zNear)

bottom-right : (right, bottom, zNear)

bottom-left : (left, bottom, zNear)

The returned matrix embeds a z-flip operation whose purpose is to cancel the z-flip performed by the camera view matrix. If the view matrix is an identity or some custom matrix that doesn't perform a z-flip, consider multiplying the third column of the projection matrix (i.e. m02, m12, m22 and m32) by -1.

See also [glFrustum](https://msdn.microsoft.com/en-us/library/dd373537\(v=vs.85\).aspx).

## Frustum(FrustumPlanes)

This function returns a projection matrix with viewing frustum that has a near plane defined by the coordinates that were passed in.

```csharp
public static Matrix4x4 Frustum(FrustumPlanes fp)
```

### Parameters

**** (\[FrustumPlanes]\(/engine/6000.7/script-reference/unityengine/frustumplanes)):&#x20;

### Returns

| Type                                                                  | Description                                                                            |
| --------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [Matrix4x4](/engine/6000.7/script-reference/unityengine/matrix4x4.md) | A projection matrix with a viewing frustum defined by the plane coordinates passed in. |

### Remarks

The corners of the near plane of the viewing frustum of the projection matrix are as follows:

top-left : (left, top, zNear)

top-right : (right, top, zNear)

bottom-right : (right, bottom, zNear)

bottom-left : (left, bottom, zNear)

The returned matrix embeds a z-flip operation whose purpose is to cancel the z-flip performed by the camera view matrix. If the view matrix is an identity or some custom matrix that doesn't perform a z-flip, consider multiplying the third column of the projection matrix (i.e. m02, m12, m22 and m32) by -1.

See also [glFrustum](https://msdn.microsoft.com/en-us/library/dd373537\(v=vs.85\).aspx).

## Frustum(FrustumPlanes)

This function returns a projection matrix with viewing frustum that has a near plane defined by the coordinates that were passed in.

```csharp
public static Matrix4x4 Frustum(in FrustumPlanes fp)
```

### Parameters

**** (\[FrustumPlanes]\(/engine/6000.7/script-reference/unityengine/frustumplanes)):&#x20;

### Returns

| Type                                                                  | Description                                                                            |
| --------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [Matrix4x4](/engine/6000.7/script-reference/unityengine/matrix4x4.md) | A projection matrix with a viewing frustum defined by the plane coordinates passed in. |

### Remarks

The corners of the near plane of the viewing frustum of the projection matrix are as follows:

top-left : (left, top, zNear)

top-right : (right, top, zNear)

bottom-right : (right, bottom, zNear)

bottom-left : (left, bottom, zNear)

The returned matrix embeds a z-flip operation whose purpose is to cancel the z-flip performed by the camera view matrix. If the view matrix is an identity or some custom matrix that doesn't perform a z-flip, consider multiplying the third column of the projection matrix (i.e. m02, m12, m22 and m32) by -1.

See also [glFrustum](https://msdn.microsoft.com/en-us/library/dd373537\(v=vs.85\).aspx).
