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

Matrix4x4.Perspective

Объявление

public static Matrix4x4 Perspective(float fov, float aspect, float zNear, float zFar);

Параметры

fov Вертикальное поле зрения в градусах.
aspect Соотношение сторон (ширина, деленная на высоту).
zNear Значение плоскости отсечения вблизи глубины.
zFar Значение плоскости отсечения дальней глубины.

Возвращает

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

Описание

Создайте матрицу перспективной проекции.

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

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

Обратите внимание, что в зависимости от используемого графического API матрицы проекций в шейдерах могут следовать различным соглашениям, например пространство клипа в стиле D3D имеет ближнюю плоскость на нуле и дальнюю плоскость на единицу; а проекция «перевернутая Z» имеет ближнюю плоскость в единице и дальнюю плоскость в нуле. Чтобы вычислить значение матрицы проекции, подходящее для передачи в переменные шейдера, используйте GL.GetGPUProjectionMatrix.

using UnityEngine; public class ExampleScript : MonoBehaviour { void Start() { // create projection matrix: 60 FOV, square aspect, // near plane 1, far plane 100 var matrix = Matrix4x4.Perspective(60, 1, 1, 100); // will print: // 0.20000 0.00000 0.00000 0.00000 // 0.00000 0.20000 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.20000 0.00000 0.00000 0.00000 // 0.00000 0.20000 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); } }

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

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