eye | 指定要设置的立体视图矩阵。 |
matrix | 要设置的矩阵。 |
为特定的立体声眼睛设置自定义视图矩阵。
在大多数情况下,您应该使用 VR SDK 提供的视图矩阵来确保准确的立体渲染。但是,在某些情况下,覆盖视图矩阵以实现特定效果可能很有用。例如,实现 VR 中的双筒望远镜需要自定义视图矩阵。
如果已设置自定义视图矩阵,则 Camera 将分析视图矩阵以确定是否可以安全地使用单个剔除传递,或者是否必须分别剔除每个眼睛。使用 Camera.areVRStereoViewMatricesWithinSingleCullTolerance 找出将使用哪一个。
调用 Camera.ResetStereoViewMatrices 将使相机恢复使用 VR SDK 提供的视图矩阵。请注意,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); } }