• 黑客帝国数字矩阵特效做法


    Shader源码:

     1 Shader "_17th_Code/NumberMatrix"
     2 {
     3     Properties
     4     {
     5         _TintColor ("Tint Color", Color) = (1,1,1,1)
     6         _RandomTex ("Random Tex", 2D) = "white" {}
     7         _FlowingTex ("Flowing Tex", 2D) = "white" {}
     8         _NumberTex ("Number Tex", 2D) = "white" {}
     9         _CellSize ("格子大小,只取XY", Vector) = (0.03, 0.04, 0.03, 0)
    10         _TexelSizes ("X:Random Tex宽度,Y:Flowing Tex宽度,Z:Number Tex数字个数(这些数值根据图片更改)", Vector) = (0.015625, 0.00390625, 10, 0)
    11         _Speed ("X:图片下落速度,Y:数字变化速度", Vector) = (1,5,0,0)
    12         _Intensity ("Global Intensity", Float) = 1
    13     }
    14 
    15     Subshader
    16     {
    17         Tags
    18         {
    19             "RenderType"="Transparent"
    20             "Queue"="Transparent"
    21             "IgnoreProjector"="True"
    22         }
    23         Pass
    24         {
    25             Fog { Mode Off }
    26             Lighting Off
    27             Blend One One
    28             Cull Off
    29             ZWrite Off
    30 
    31             CGPROGRAM
    32             #pragma vertex vert
    33             #pragma fragment frag
    34             #pragma target 3.0
    35             
    36             float4 _TintColor;
    37             sampler2D _RandomTex;
    38             sampler2D _FlowingTex;
    39             sampler2D _NumberTex;
    40             float4 _CellSize;
    41             float4 _TexelSizes;
    42             float4 _Speed;
    43             float _Intensity;
    44             
    45             #define _RandomTexelSize (_TexelSizes.x)
    46             #define _FlowingTexelSize (_TexelSizes.y)
    47             #define _NumberCount (_TexelSizes.z)
    48             #define T (_Time.y)
    49             #define EPSILON (0.00876)
    50 
    51             struct appdata_v
    52             {
    53                 float4 vertex : POSITION;
    54             };
    55 
    56             struct v2f
    57             {
    58                 float4 pos : POSITION;
    59                 float3 texc : TEXCOORD0;
    60             };
    61 
    62             v2f vert (appdata_v v)
    63             {
    64                 v2f o;
    65                 o.pos = UnityObjectToClipPos (v.vertex);
    66                 o.texc = v.vertex.xyz;
    67                 return o;
    68             }
    69             
    70             fixed4 frag (v2f i) : COLOR
    71             {
    72                 float3 cellc = i.texc.xyz / _CellSize + EPSILON;
    73                 float speed = tex2D(_RandomTex, cellc.xz * _RandomTexelSize).g * 3 + 1;
    74                 cellc.y += T*speed*_Speed.x;
    75                 float intens = tex2D(_FlowingTex, cellc.xy * _FlowingTexelSize).r;
    76                 
    77                 float2 nc = cellc;
    78                 nc.x += round(T*_Speed.y*speed);
    79                 float number = round(tex2D(_RandomTex, nc * _RandomTexelSize).r * _NumberCount) / _NumberCount;
    80                 
    81                 float2 number_tex_base = float2(number, 0);
    82                 float2 number_tex = number_tex_base + float2(frac(cellc.x/_NumberCount), frac(cellc.y));
    83                 fixed4 ncolor = tex2Dlod(_NumberTex, float4(number_tex, 0, 0)).rgba;
    84                 
    85                 return ncolor * pow(intens,3) * _Intensity * _TintColor;
    86             }
    87             ENDCG
    88         }
    89     }
    90 }

     原文链接:http://tieba.baidu.com/p/3610440892

  • 相关阅读:
    VMware ESXI 5.5 注册码
    NetScaler Active-Active模式
    Citrix NetScaler HA(高可用性)解析
    服务管理--systemctl命令
    CentOS7 安装 webgoat 7.1 简介
    Codefoces 723B Text Document Analysis
    Codefoces 723A The New Year: Meeting Friends
    ECJTUACM16 Winter vacation training #1 题解&源码
    信息学奥赛一本通算法(C++版)基础算法:高精度计算
    从零开始学算法:高精度计算
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/7615895.html
Copyright © 2020-2023  润新知