zoukankan      html  css  js  c++  java
  • 树叶婆娑 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才看得到,所以这里就不贴图了,但叶子摇曳的原理依据讲了,并且简单,读者一试便知。

  • 相关阅读:
    Cookie和Session
    Servlet中关于中文乱码
    单例模式
    document对象-操作元素的文档结构
    JS实现简单的多选选项的全选反选按钮
    js实现表单验证
    servlet
    http(Hyper Text Transfer Protocol)
    Vue之webpack打包
    Flink用户画像系统之实时品牌爱好
  • 原文地址:https://www.cnblogs.com/Tearix/p/6985987.html
Copyright © 2011-2022 走看看