Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

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

Параметры

left Левая координата x.
right Правая координата x.
bottom Нижняя координата Y.
top Верхняя координата Y.
zNear Значение плоскости отсечения вблизи глубины.
zFar Значение плоскости отсечения дальней глубины.

Возвращает

Matrix4x4 Матрица проекции.

Описание

Создайте матрицу ортогональной проекции.

Возвращенная матрица при использовании в качестве проекционной матрицы камеры создает проекцию область между слева, справа, сверху и bottom, с zNear и zFar в качестве плоскостей отсечения ближней и дальней глубины в куб, идущий от (слева, снизу, рядом) = (-1, -1, -1) до (справа, сверху, далеко) = (1, 1, 1).

Возвращенная матрица включает операцию z-flip, целью которой является отмена z-flip, выполняемого матрицей обзора камеры. Если матрица представления является тождественной или какой-либо пользовательской матрицей, которая не выполняет z-разворот, рассмотрите возможность умножения третьего столбец матрицы проекции (т. е. m02, m12, m22 и m32) на -1.

Матрицы проекций в Unity следуют соглашению OpenGL, т. е. пространство отсечения рядом с плоскостью находится в z=-1, а дальняя плоскость находится в z=1.

Обратите внимание, что в зависимости от используемого графического API матрицы проекций в шейдерах могут следовать различным соглашениям, например пространство клипа в стиле D3D имеет ближнюю плоскость на нуле и дальнюю плоскость на единицу; а проекция «перевернутая Z» имеет ближнюю плоскость в единице и дальнюю плоскость в нуле. Чтобы вычислить значение матрицы проекции, подходящее для передачи в переменные шейдера, используйте 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 var shaderMatrix = GL.GetGPUProjectionMatrix(matrix, false); // on a Direct3D-like graphics API, will print: // 0.25000 0.00000 0.00000 0.00000 // 0.00000 0.50000 0.00000 0.00000 // 0.00000 0.00000 0.01010 1.01010 // 0.00000 0.00000 0.00000 1.00000 Debug.Log("shader projection matrix\n" + shaderMatrix); } }

Смотрите так же: Perspective, Camera.projectionMatrix, GL.LoadPixelMatrix, GL.LoadProjectionMatrix, GL.GetGPUProjectionMatrix.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3