Unity3d_Vertex&Fragment_Shader添加阴影的方法

Shader "ZX/BaseVertFragmentShadow" 
 { 
 Properties { _DiffuseTexture ( "Diffuse Texture", 2D) = "white" {} _DiffuseTint ( "Diffuse Tint", Color) = ( 1, 1, 1, 1) }

 SubShader { 

 Tags { "RenderType"= "Opaque"
 pass { Tags { "LightMode"= "ForwardBase"} //第一步//

CGPROGRAM #pragma vertex vertShadow
#pragma fragment fragShadow 
  #pragma multi_compile_fwdbase//第二步//

#include "UnityCG.cginc" 
  #include "AutoLight.cginc" //第三步// 
 sampler2D _DiffuseTexture; 
 float4 _DiffuseTint;
 float4 _LightColor0; //第四步// 
  struct v2f
 { 
 float4 pos : SV_POSITION; 
 float2 uv : TEXCOORD2; 
 LIGHTING_COORDS( 0, 1) //第五步// 
 };

 v2f vertShadow(appdata_base v) 
 { 
 v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); 
 o.uv = v.texcoord; 
 TRANSFER_VERTEX_TO_FRAGMENT(o); //第六步// 
  return o;
 }

 float4 fragShadow(v2f i) : COLOR 
 { 
 float4 diffuse = tex2D(_DiffuseTexture, i.uv); 
 float4 diffuseTerm = _LightColor0 * LIGHT_ATTENUATION(i); //第七步//
float4 finalColor = diffuseTerm * diffuse * _DiffuseTint;
  return finalColor; 
 } 

 ENDCG } } 
 FallBack "Diffuse"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值