Camera.SetStereoViewMatrix
Declaration
public void SetStereoViewMatrix(Camera.StereoscopicEye eye, Matrix4x4 matrix);Параметры
| Параметр | Описание |
|---|---|
| глаз | Указывает матрицу стереоскопического изображения, которую нужно установить. |
| матрица | Матрица для установки. |
Описание
Задает настраиваемую матрицу представления для конкретного стереоскопического глаза.
В целом, вы должны использовать матрицы представления, предоставленные XRDisplaySubsystem для точного стереоскопического рендеринга. Однако при необходимости матрицы вида можно переопределить, чтобы добиться особых эффектов. Например, собственные матрицы проекции и вида понадобятся, чтобы реализовать бинокль в VR.
Когда вы устанавливаете матрицы настраиваемых представлений, Camera анализирует их, чтобы определить, безопасно ли использовать один пропуск вычеркивания или нужно вычеркивать каждый глаз отдельно. Использование Camera.areVRStereoViewMatricesWithinSingleCullTolerance чтобы узнать, какие из них будут использованы.
Вызов Camera.ResetStereoViewMatrices для возврата камеры к использованию матриц изображений, предоставляемых в соответствии XRDisplaySubsystem. Следует отметить, что Camera.stereoSeparation не применяется до тех пор, пока вы не вызовете Camera.ResetStereoViewMatrices.
Дополнительные ресурсы: Camera.ResetStereoViewMatrices, Camera.stereoSeparation, Camera.areVRStereoViewMatricesWithinSingleCullTolerance.
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { // Use this for initialization void Start() { }
// Update is called once per frame void Update() { Camera cam = GetComponent<Camera>();
Matrix4x4 viewL = cam.worldToCameraMatrix; Matrix4x4 viewR = cam.worldToCameraMatrix;
viewL[12] += 0.011f; viewR[12] -= 0.011f; cam.SetStereoViewMatrix(Camera.StereoscopicEye.Left, viewL); cam.SetStereoViewMatrix(Camera.StereoscopicEye.Right, viewR); } }