eye | 指定要设置的立体视图矩阵。 |
matrix | 要设置的矩阵。 |
为特定立体眼睛设置自定义视图矩阵。
在大多数情况下,您应该使用 VR SDK 提供的投影矩阵,以确保准确的立体渲染。但是,在某些情况下,重写视图矩阵以实现特定效果可能比较有用。例如,要在 VR 中实现双筒望远镜效果,就需要使用自定义视图矩阵。
如果已设置自定义视图矩阵,摄像机将分析该视图矩阵,以确定能否安全地使用单通道剔除处理,还是必须为每只眼睛进行单独的剔除操作。使用 Camera.areVRStereoViewMatricesWithinSingleCullTolerance 可以确定将使用的剔除方法。
调用 Camera.ResetStereoViewMatrices 会将摄像机还原为使用 VR SDK 提供的视图矩阵。注意,在您调用 Camera.ResetStereoViewMatrices 之前,不会应用 Camera.stereoSeparation。
另请参阅: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);
}
}