本文主要是介绍Unity AR阴影投射透明地面 仅渲染模型实时阴影 Shader实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
亲测可用!
上面就是实现的效果,仅仅渲染阴影,地面透明,也可以换成AR中的虚拟物体。
AR中为的虚拟物体添加阴影,只用unity的光照投影是没办法实现的。或者需求是,角色需要投射阴影在墙上,但是墙不能显示,只渲染出阴影,相当于接受阴影的地面墙体透明,实现只有阴影的效果。这些都可以使用这个shader。
shader代码:
Shader "ChuckLee/ARShadow"
{Properties{_ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53)}SubShader{Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" }Blend SrcAlpha OneMinusSrcAlphaPass{Tags{ "LightMode" = "ForwardBase" }CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fwdbase#include "UnityCG.cginc"#include "AutoLight.cginc" 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{fixed atten = SHADOW_ATTENUATION(i);return fixed4(_ShadowColor.rgb,saturate(1 - atten)*_ShadowColor.a);}ENDCG}}FallBack "Diffuse"
}
我的项目工程:阴影投射工程。。。。。。。。-其它文档类资源-CSDN下载
shader实现博主:AR中虚拟物体投射阴影的Unity Shader实现 - 知乎
这篇关于Unity AR阴影投射透明地面 仅渲染模型实时阴影 Shader实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!