Version: 2022.3

Camera.SetStereoViewMatrix

切换到手册
public void SetStereoViewMatrix (Camera.StereoscopicEye eye, Matrix4x4 matrix);

参数

eye 指定要设置的立体视图矩阵。
matrix 要设置的矩阵。

描述

为特定立体眼睛设置自定义视图矩阵。

在大多数情况下,您应该使用 VR SDK 提供的投影矩阵,以确保准确的立体渲染。但是,在某些情况下,重写视图矩阵以实现特定效果可能比较有用。例如,要在 VR 中实现双筒望远镜效果,就需要使用自定义视图矩阵。

如果已设置自定义视图矩阵,摄像机将分析该视图矩阵,以确定能否安全地使用单通道剔除处理,还是必须为每只眼睛进行单独的剔除操作。使用 Camera.areVRStereoViewMatricesWithinSingleCullTolerance 可以确定将使用的剔除方法。

调用 Camera.ResetStereoViewMatrices 会将摄像机还原为使用 VR SDK 提供的视图矩阵。注意,在您调用 Camera.ResetStereoViewMatrices 之前,不会应用 Camera.stereoSeparation

另请参阅:Camera.ResetStereoViewMatricesCamera.stereoSeparationCamera.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); } }