Vuforia AR 物体制作阴影

unity里面有自带灯光阴影,但是想要显示在AR中 需要一些小改变, 不然就是有变色的底框, 所以我们需要一个透明的平面,但能够接收阴影。为了达到这个目的,我们需要一个自定义的着色器。(http://www.arvrschool.com/read.php?tid=437&fid=21&page=1  着色器代码从这里扣得)
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"
     
}

使用 Matte Shadow 制作材质球,再将它拖拽到我们的平面上,就得到了我们期望的效果。注意如果没看到阴影的话,很可能是 Scale 或者 Project Quality 设置的问题。(如果不出现阴影,将scale全部设置为1试试 

这里的设置阴影质量 在Quality 中的阴影质量的关键性设置是阴影距离 (Shadow Distance) 和阴影级联 (Shadow Cascades)

  • 阴影分辨率 (Shadow Resolution) 也要考虑,但改善方向性阴影质量时首先要做的是缩短阴影距离。有关方向灯阴影的所有细节请见方向性阴影详情
  • 对于聚光 (Spot) 和点 (Point) 光源,阴影分辨率 (Shadow Resolution) 决定了阴影贴图的大小。此外,屏幕上照亮小块区域的光源采用较小的阴影贴图分辨率。
  • 阴影跟缩放有关的 (Quality Settings) 包含一个名为阴影距离 (Shadow Distance) 的设置,即相机到绘制的阴影有多远。通常,计算和显示离相机 500 米远的阴影没有意义,因而制作游戏时尽可能使用较小阴影距离。这将有助于提高性能(及改善方向灯阴影质量,见上文),在AR中物体缩放的大小有个图片的默认值,经常看不到阴影  就是由于缩放的大小  跟(Quality Settings)设置的阴影距离的设置有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值