ARShader

Shader "Custom/ARShadow"
{
Properties
{
_ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53)
}
SubShader
{
Tags{ "Queue" = "Geometry+2" //"RenderType" = "Transparent" //
}
//Tags{ "RenderType" = "Opaque" }//通过使用tags来告诉渲染引擎在什么时候该如何渲染他们所期望的效果。
Blend SrcAlpha OneMinusSrcAlpha// 最终颜色 = 源颜色 * 源透明值 + 目标颜色*(1 - 源透明值)最常用的透明混合方式。贴图alpha值高的部分,显示得实,而混合的背景很淡。而alpha值高的部分,贴图显示得淡,而背景现实得实。

     Tags { "RenderType"="Opaque" "Queue"="Overlay"}

    //LOD 100
    //ColorMask 0
    Pass
{
    Tags{ "LightMode" = "ForwardBase" }//传递4个顶点光,环境光和第一个像素光(方向灯)。用于正向渲染,环境主要方向灯和定点光/SH 等的应用 ,第一个像素光所在的反射通道标记为Forward
    //Tag{ "LightMode" = "Vertex" }//用于顶点光照渲染,当物体没有光照映射时,所有顶点光照被应用
    CGPROGRAM

pragma vertex vert

pragma fragment frag

pragma multi_compile_fwdbase

include "UnityCG.cginc"//引包unity

include "AutoLight.cginc" //引包Light

    struct appdata
{
    float4 vertex : POSITION;
};

struct v2f
{
    float4 pos : SV_POSITION;
    SHADOW_COORDS(2)
};

fixed4 _ShadowColor;//阴影颜色

v2f vert(appdata v)
{
    v2f o;
    o.pos = UnityObjectToClipPos(v.vertex);
    TRANSFER_SHADOW(o);
    return o;
}

fixed4 frag(v2f i) : SV_Target//类似COLOR
{
    fixed atten = SHADOW_ATTENUATION(i);
return fixed4(_ShadowColor.rgb,saturate(1 - atten)*_ShadowColor.a);//最终颜色 = 源颜色 * 源透明值 + 目标颜色*(1 - 源透明值)
}
    ENDCG
}
}
    FallBack "Diffuse"

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Unity shader 官网文档全方位学习(一)What?? Shader,看起来好高级的样子,是的,这是Uni...
    狼之独步阅读 6,115评论 0 12
  • <转>我也忘了转自哪里,抱歉,感谢原作者 什么是Shader Shader(着色器)是一段能够针对3D对象进行操作...
    星易乾川阅读 5,678评论 1 16
  • 马上就要入冬了,天气逐渐变得寒凉。南北方的温差持续加大,寒流慢慢南下,夜晚开始有霜冻,北方部分地区已经出现降雪,天...
    九小叶阅读 333评论 0 1
  • 我现在还记得第一次喝星巴克的情形。 十五年前,刚入职场,在陆家嘴的汇丰银行大厦,领导请我喝了杯星巴克的新品星冰乐。...
    杨欐阅读 210评论 1 3
  • 这么晚厨师们还在搞卫生真是辛苦啦!! 做餐饮我们是认真的。
    Promiscuou阅读 296评论 0 0