Version: 2019.4
Idioma: Español

Matrix4x4.Ortho

Cambiar al Manual
public static Matrix4x4 Ortho (float left, float right, float bottom, float top, float zNear, float zFar);

Parámetros

 left Left-side x-coordinate. right Right-side x-coordinate. bottom Bottom y-coordinate. top Top y-coordinate. zNear Near depth clipping plane value. zFar Far depth clipping plane value.

Valor de retorno

Matrix4x4 The projection matrix.

Descripción

Create an orthogonal projection matrix.

The returned matrix, when used as a Camera's projection matrix, creates a projection of the area between `left`, `right`, `top` and `bottom`, with `zNear` and `zFar` as the near and far depth clipping planes into a cube going from (left, bottom, near) = (-1, -1, -1) to (right, top, far) = (1, 1, 1).

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.

Projection matrices in Unity follow OpenGL convention, i.e. clip space near plane is at `z=-1`, and far plane is at `z=1`.

Note that depending on the graphics API used, projection matrices in shaders can follow different convention, for example the D3D-style clip space has near plane at zero and far plane at one; and "reversed Z" projection has near plane at one and far plane at zero. To calculate projection matrix value suitable for passing to shader variables, use GL.GetGPUProjectionMatrix.

```using UnityEngine;public class ExampleScript : MonoBehaviour
{
void Start()
{
// create orthographic matrix
var matrix = Matrix4x4.Ortho(-4, 4, -2, 2, 1, 100);
// will print:
// 0.25000 0.00000  0.00000  0.00000
// 0.00000 0.50000  0.00000  0.00000
// 0.00000 0.00000 -0.02020 -1.02020
// 0.00000 0.00000  0.00000  1.00000
Debug.Log("projection matrix\n" + matrix);        // get shader-compatible projection matrix value