树叶婆娑 shader

效果是树叶摇曳:

 1 Shader "LeafAnim" {
 2 Properties {
 3     _MainTex ("Base (RGB)", 2D) = "white" {}
 4     _Dist ("_Dist", float) = 0.04
 5     _Speed ("_Speed", float) = 0.2
 6 }
 7 
 8 SubShader {
 9     Tags {"IgnoreProjector"="True" "RenderType"="Transparent"}
10     LOD 350
11 
12 CGPROGRAM
13 #pragma surface surf Lambert vertex:vert  
14 
15 sampler2D _MainTex;
16 
17 struct Input {
18     half2 uv_MainTex;
19 };
20 
21 fixed _Dist;
22 fixed _Speed;
23 
24 struct appdata_t {
25     float4 vertex : POSITION;
26     float2 texcoord : TEXCOORD0;
27     float3 normal : NORMAL;
28 };
29 
30 void vert (inout appdata_t v)
31 {
32     float4 vertex = mul(v.vertex, _Object2World);
33     float a = vertex.x * vertex.z;//沿x和z轴距离作为偏离的一个依据,这样各个地方的叶子偏离的大小就不同,就“摇曳”起来了。
    //通过偏移顶点让叶子摇动起来
34 v.vertex.xyz += float3(1,0,1) * _Dist * sin(_Time.w * (_Speed)+a);//dist是整体偏离放大缩小倍数,用Time.w做循环,sin做距离约束 35 }   void surf (Input IN, inout SurfaceOutput o)
  { fixed4 c
= tex2D(_MainTex, IN.uv_MainTex); o.Albedo = c;   } 36 ENDCG 37 } 38 39 Fallback "Transparent/VertexLit" 40 }

效果肯定是gif才看得到,所以这里就不贴图了,但叶子摇曳的原理依据讲了,并且简单,读者一试便知。

转载于:https://www.cnblogs.com/Tearix/p/6985987.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值