Shader "FX/Matte Shadow" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}
SubShader {
Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
LOD 200
Blend Zero SrcColor
CGPROGRAM
#pragma surface surf ShadowOnly alphatest:_Cutoff
fixed4 _Color;
struct Input {
float2 uv_MainTex;
};
inline fixed4 LightingShadowOnly (SurfaceOutput s, fixed3 lightDir, fixed atten)
{
fixed4 c;
c.rgb = s.Albedo*atten;
c.a = s.Alpha;
return c;
}
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = _Color;
o.Albedo = c.rgb;
o.Alpha = 1;
}
ENDCG
}
Fallback "Transparent/Cutout/VertexLit"
}
--------------------------------------------------------------------
5.0有个Bug要在ArCamera里添加另外一个脚本
---------------------------------------------------------
using UnityEngine;
using System.Collections;
using Vuforia;
public class FixProjectionMatrix : MonoBehaviour, IVideoBackgroundEventHandler
{
private Camera[] mCameras;
// Use this for initialization
void Start()
{
mCameras = VuforiaBehaviour.Instance.GetComponentsInChildren<Camera>();
VuforiaBehaviour.Instance.RegisterVideoBgEventHandler(this);
}
// Update is called once per frame
void Update()
{
}
public void OnVideoBackgroundConfigChanged()
{
foreach (var cam in mCameras)
{
var projMatrix = cam.projectionMatrix;
for (int i = 0; i < 16; i++)
{
if (System.Math.Abs(projMatrix[i]) < 1e-6)
{
projMatrix[i] = 0.0f;
}
}
cam.projectionMatrix = projMatrix;
}
}
}