您的位置:首页 > 移动开发 > Unity3D

如何用RT实现动态的阴影。(记录一下,还有些bug要解决。)

2016-05-29 19:30 288 查看
老习惯:只贴关键部分代码,我平时不太喜欢伸手党。一些东西还要大家思考。

有什么补充希望大家能够回复;

v2f vert (appdata v)
{
v2f o;
float4x4 dis=mul(_World2Object,_shadowprojmatri);
float4 pos = mul(dis,v.vertex);
pos.xyz/=pos.w;
o.uv2=float2(pos.x,pos.y);
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.depth=o.vertex.zw;
return o;
}

fixed4 frag (v2f i) : SV_Target
{

i.uv2.y=0-i.uv2.y;
fixed4 col = tex2D(_MainTex,i.uv);
fixed4 col1 = tex2D(_ShadowMap,(i.uv2*0.5)+0.5);
return col*(1-col1.a);

}

主要是从脚本传一个阴影相机的vp矩阵。然后把阴影相机的rt传过来。

遇到的问题是:阴影穿透问题。不知道有什么有好的方法能够解决。希望有大神给点帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息