Files
vstyler/Assets/SteamVR/Scripts/SteamVR_CameraMask.cs
T
2016-05-18 20:02:15 +02:00

52 lines
1.3 KiB
C#
Executable File

//========= Copyright 2014, Valve Corporation, All rights reserved. ===========
//
// Purpose: Masks out pixels that cannot be seen through the connected hmd.
//
//=============================================================================
using UnityEngine;
using System.Collections;
using UnityEngine.Rendering;
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class SteamVR_CameraMask : MonoBehaviour
{
static Material material;
static Mesh[] hiddenAreaMeshes = new Mesh[] { null, null };
MeshFilter meshFilter;
void Awake()
{
meshFilter = GetComponent<MeshFilter>();
if (material == null)
material = new Material(Shader.Find("Custom/SteamVR_HiddenArea"));
var mr = GetComponent<MeshRenderer>();
mr.material = material;
mr.shadowCastingMode = ShadowCastingMode.Off;
mr.receiveShadows = false;
#if !(UNITY_5_3 || UNITY_5_2 || UNITY_5_1 || UNITY_5_0)
mr.lightProbeUsage = LightProbeUsage.Off;
#else
mr.useLightProbes = false;
#endif
mr.reflectionProbeUsage = ReflectionProbeUsage.Off;
}
public void Set(SteamVR vr, Valve.VR.EVREye eye)
{
int i = (int)eye;
if (hiddenAreaMeshes[i] == null)
hiddenAreaMeshes[i] = SteamVR_Utils.CreateHiddenAreaMesh(vr.hmd.GetHiddenAreaMesh(eye), vr.textureBounds[i]);
meshFilter.mesh = hiddenAreaMeshes[i];
}
public void Clear()
{
meshFilter.mesh = null;
}
}