整理下用到的shader效果,其中用到最多的,或则很大几率在游戏中会用到的,可能是标题的流光效果,

如果用帧动画实现,不仅资源耗费明显,最终效果也没shader来得逼真,废话不多说,直接上代码了(其实也是根据网上shader小改了下得到的):

Shader "Env/LogoFlash" 
{  
    Properties {  
        //_MainTex ("Base (RGB)", 2D) = "white" {}  
        _MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {}
        _FlashColor ("Flash Color", Color) = (1,1,1,0)  
        _Angle ("Flash Angle", Range(0, 180)) = 45  
        _Width ("Flash Width", Range(0, 1)) = 0.2  
        _LoopTime ("Loop Time", Float) = 1  
        _Interval ("Time Interval", Float) = 3  
//        _BeginTime ("Begin Time", Float) = 2  
    }  
    SubShader  
    {  
        Tags 
        { 
       "Queue"="Transparent" 
       "RenderType"="Transparent" 
        }  
//       Blend SrcAlpha OneMinusSrcAlpha 
//       AlphaTest Greater 0.1
        CGPROGRAM  
        //#pragma surface surf Lambert alpha exclude_path:prepass noforwardadd  
        #pragma surface surf Lambert alpha
        #pragma target 3.0  
 
        sampler2D _MainTex;  
        float4 _FlashColor;  
        float _Angle;  
        float _Width;  
        float _LoopTime;  
        float _Interval;  
//        float _BeginTime;  
              
        struct Input   
    {  
        half2 uv_MainTex;  
    };  
             
        float inFlash(half2 uv)  
        {     
            float brightness = 0;  
              
            float angleInRad = 0.0174444 * _Angle;  
            float tanInverseInRad = 1.0 / tan(angleInRad);  
              
//            float currentTime = _Time.y - _BeginTime;  
       float currentTime = _Time.y;  
       float totalTime = _Interval + _LoopTime;  
            float currentTurnStartTime = (int)((currentTime / totalTime)) * totalTime;  
            float currentTurnTimePassed = currentTime - currentTurnStartTime - _Interval;  
              
            bool onLeft = (tanInverseInRad > 0);  
       float xBottomFarLeft = onLeft? 0.0 : tanInverseInRad;  
       float xBottomFarRight = onLeft? (1.0 + tanInverseInRad) : 1.0;  
              
        float percent = currentTurnTimePassed / _LoopTime;  
            float xBottomRightBound = xBottomFarLeft + percent * (xBottomFarRight - xBottomFarLeft);  
            float xBottomLeftBound = xBottomRightBound - _Width;  
              
            float xProj = uv.x + uv.y * tanInverseInRad;  
              
            if(xProj > xBottomLeftBound && xProj < xBottomRightBound)  
            {  
                brightness = 1.0 - abs(2.0 * xProj - (xBottomLeftBound + xBottomRightBound)) / _Width;  
            }  
  
            return brightness;  
        }  
          
        void surf (Input IN, inout SurfaceOutput o)  
        {                  
            float4 texCol = tex2D(_MainTex, IN.uv_MainTex);  
            float brightness = inFlash(IN.uv_MainTex);  
          
            o.Albedo = texCol.rgb + _FlashColor.rgb * brightness;  
            //o.Alpha =  texCol.a;   
            o.Alpha = texCol.a *  brightness;
        }  
          
        ENDCG       
    }  
      
    FallBack "Unlit/Transparent GrayscaleEffect"  
}

U3D log Flash shader 效果(标题流光效果)相关推荐

  1. 【Shader Graph】流光效果(模型流光)

    ShaderGraph的入门知识和基本操作可以参考:[Shader Graph]Shader Graph入门 流光效果的实现原理和shader代码可以参考:[Unity3d Shader]流光效果(模 ...

  2. 智慧城市炫酷效果、threejs绘制道路、shader实现道路流光效果

    一.先看看效果 二.实现方法: 1.数据准备 // 道路的点数据 // 分为内圈,外圈const pointArr = [220, -220, 0,220, 220, 0,

  3. UnityShader——流光效果

    声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改. UnityShader学习目录 文章目录 UnityShader学习目录 前言 一.实现原理 ...

  4. Shader实例(流光实现)

    Shader实例(流光实现) 流光效果 首先来看一下流光效果.流光效果是一个非常常见的效果,不仅仅是游戏,一些广告之类的也都会有这种效果.流光的原理还是比较简单的:首先就是需要一张流光图,这张流光图的 ...

  5. Unity Shader学习案例一: 流光效果

    Unity Shader Lab新手宝典简单Shader案例一:流光效果 + 相关基础知识说明 Shader "Samples/Light Flow"//shader名称 {Pro ...

  6. Shader实现城市建筑整体流光效果

    城市建筑整体流光效果 在做可视化城市项目的时候,要实现城市整体流光效果,如下图参考: 实现功能参考图: 实现原理 Pixshader中计算每个像素点在世界坐标系中的位置 像素点的世界坐标位置与地图范围 ...

  7. CocosCreator Shader学习(二):流光效果

    流光效果 原理:在以图片左下角为原点的坐标系中, 假设流光就是一条直线(斜截式:y=kx+b),那么只需要把直线和图片所在矩形的交点全部找出来即可. 顶点着色器代码不用修改. 片元着色器代码如下: C ...

  8. Unity Shader-边缘检测效果(基于颜色,基于深度法线,边缘流光效果,转场效果)

    前言 周末通关了一个小游戏,流程很短,6个小时左右就通关,但是游戏的画风,视角,玩法都比较新奇,对了,游戏的名字也很奇特<12 Is Better Than 6>(12比6好是有什么梗吗? ...

  9. Android流光动画,android开发自定义TextView文本流光效果——滑动解锁

    由于项目需求,需要做一个app锁屏页,其中就有一个需要滑动解锁的文字流光效果.我这里通过自定义Textview来实现: @Override protected void onLayout(boolea ...

最新文章

  1. 彻底厘清真实世界中的分布式系统
  2. .Net 基础new关键字的用法
  3. OTA固件升级对于物联网设备的重要性
  4. 【CV秋季划】模型优化很重要,如何循序渐进地学习好?
  5. thymeleaf模板引擎
  6. kaggle(01)-泰坦尼克号问题
  7. pdf.js使用方法整理,web页面中pdf在线查看,web页面显示pdf文档
  8. python爬虫实战教程分享 或许你可以看一下这篇文章
  9. Unity实现IOS原生分享
  10. js截屏代码_服务端浏览器截屏
  11. mysqldump方式导出mysql
  12. 什么样的简历,面试官一看就知道多少水份!!!
  13. MySQL-第二篇SQL语句基础(1)语句分类及DDL语句
  14. 文献管理三剑客之noteexpress打不开 cannot find import; dll may be missing corrupt or worng
  15. ATV 开发 三 DRM技术简介
  16. 低代码平台开发 python_低组词_低的多音字组词,低是多音字吗,低组词有哪些
  17. MAC协议微信自动生成带备注固定收款码免挂机监控协议回调
  18. TwinCAT3 控制器PLC之间EAP通讯3-从机发送方式2
  19. winpe加载raid_WinPE安装RAID卡驱动的详细教程
  20. FileSplit cannot be cast Exception

热门文章

  1. 计算机学科a类排名,中国科学技术大学学科评估排名!附中科大a类学科名单
  2. 串口通信协议和Linux下的串口编程
  3. 猪猪猫.CN-WINXPSP2电脑城装机03CD标准版
  4. 卷积神经网络训练花卉识别分类器
  5. php根据user-agent判断客户端是pc还是wap
  6. 怎么把CAD文件转成PDF格式?教你几种转换方法
  7. FastAdmin 生成CRUD
  8. DC-DC电源模块输出先放大电容还是小电容
  9. LCD段码液晶屏驱动方法介绍
  10. macOS中的比较好用的下载工具:Folx