转发请保持地址:http://blog.csdn.net/stalendp/article/details/30989295

本文将介绍怎么通过alpha通道来隐藏信息。并实现卡牌特效。

执行效果例如以下:

代码例如以下:

Shader "stalendp/imageShine" {Properties {_MainTex ("image", 2D) = "white" {}_NoiseTex("noise", 2D) = "bump" {}_percent("percent", Range(-0.3, 1)) = 0_DefColor ("defalutColor", COLOR)  = ( 0, .8, .4, 1)}CGINCLUDE#include "UnityCG.cginc"           sampler2D _MainTex;sampler2D _NoiseTex;     float _percent;fixed4 _DefColor;struct v2f {    half4 pos:SV_POSITION;    half4 uv : TEXCOORD0;   };  v2f vert(appdata_full v) {  v2f o;  o.pos = mul (UNITY_MATRIX_MVP, v.vertex);  o.uv.xy = v.texcoord.xy;o.uv.zw = v.texcoord.xy + _Time.xx ;return o;  }  fixed4 frag(v2f i) : COLOR0 {// 原始卡牌, 把alpha设置为1。屏蔽掉alpha通道信息fixed4 tex0 = tex2D(_MainTex, i.uv.xy);tex0.a = 1;// 透明躁动卡牌; 使用alpha通道信息。设置显示颜色,并增加躁动。half3 noise = tex2D(_NoiseTex, i.uv.zw );fixed4 tex1 = tex2D(_MainTex, i.uv.xy + noise.xy * 0.05 - 0.025);tex1.rgb = _DefColor.rgb;return lerp(tex0, tex1, smoothstep(0, 0.3, i.uv.y-_percent));}  ENDCG    SubShader {   Tags {"Queue" = "Transparent"}     ZWrite Off     Blend SrcAlpha OneMinusSrcAlpha     Pass {    CGPROGRAM    #pragma vertex vert    #pragma fragment frag    #pragma fragmentoption ARB_precision_hint_fastest     ENDCG    }}FallBack Off
}

素材准备:

1)在本例中,在photoshop中处理图片。在alpha通道中存放了例如以下的信息图:

然后导出图片成为 tif格式。

2)准备一张噪声图片,并在unity下转化为Normal Map类型(改成NormalMap,会有对应的參数能够调节,对于这里的shader能够省略)。例如以下图:

3)用Quad来測试当前shader。

填写shader參数例如以下:

调节percent。就能够看到文章开头的那个特效。

原理解析:

1)透明躁动图片,这是在alpha图片的基础上增加躁动得到的结果。代码例如以下:
half3 noise = tex2D(_NoiseTex, i.uv.zw );
fixed4 tex1 = tex2D(_MainTex, i.uv.xy + noise.xy * 0.05 - 0.025);
tex1.rgb = _DefColor.rgb;
图片扭曲过程的解释:
a)因为_NoiseTex所表示的噪声图片的每一个像素点的值在区间[0,1]之内。即noise.xy的值在[0,1]之间。
b)  noise.xy * 0.05 的区间为[0,0.05];
c)noise.xy * 0.05-0.025的区间为[-0.025,0.025]
d)i.uv.xy + noise.xy * 0.05 - 0.025 表示对原来图片的uv进行[-0.025,0.025]之间随意值的一次偏移(取决于噪声图),这样就形成了图像扭曲效果。
e)又因为i.uv.zw受时间支配,所以noise的值也随时间变化。这样整个图片的扭曲。也随时间变化,就形成了液化的效果。
当中0.05和0.025的值是实验得出的。能够更具实际情况改变来达到不同的效果。

2)两个图片的叠加;通过比較uv中的v 和 _percent。来融合处理后的alpha通道和rgb通道。

lerp(tex0, tex1, smoothstep(0, 0.3, i.uv.y-_percent));

延伸:

当然也能够仅仅对图片的局部进行处理。

比方下图对闪电的处理,把闪电信息存放到alpha通道,然后就能够在shader做对应的处理了:

本文主要介绍如何利用图片的alpha通道来隐藏信息。能够节省资源。

这种运用会有非常多,有机会以后多加介绍。

【OpenGL】Shader实例分析(六)- 卡牌特效相关推荐

  1. android 4实例分析,OpenGL Shader实例分析(4)闪光效果

    本文实例为大家分享了opengl shader实例闪光效果的具体代码,供大家参考,具体内容如下 在游戏中,当战斗结束后,对一些获取的宝贝需要进行闪光处理.这篇文章介绍一个进行闪光处理的shader,运 ...

  2. android+动态光圈效果,OpenGL Shader实例分析(8)彩色光圈效果

    本文实例为大家分享了opengl实现彩色光圈效果的具体代码,供大家参考,具体内容如下 研究了一个彩色光圈效果,感觉挺不错的,分享给大家,效果如下: 代码如下: shader "shadert ...

  3. android雪花飘落效果,【OpenGL】Shader实例分析(七)- 雪花飘落效果

    研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如以下: Shader "shadertoy/Flakes" { // https://www.shader ...

  4. 卡牌特效: svg不规则倒计时动效

    导语:直播过程中,往往会有各种动画特效增强直播效果,近期需求中,设计要求在企鹅电竞PC官网上实现一种卡牌效果,在不规则图片上叠加倒计时效果.前端项目中,往往使用css来完成动画,像倒计时效果也可以使用 ...

  5. 【OpenGL】Shader实例分析(十)- 钻石效果

    好久没有写文章了,赶紧补几篇.最近研究了一个玻璃折射的效果(用在钻石上),虽然没有达到最满意的效果,还是先分享出来,待以后有更好的想法再补充. 先看效果吧: 这里面有两个效果,左边是unity的免费插 ...

  6. 《炉石传说》架构设计赏析(6):卡牌 技能数据的运行时组织

    前一篇文章我们看到了<炉石传说>的核心卡牌数据的存储,今天我们继续探索卡牌&技能. 主要的类 通过之前的分析,卡牌&技能涉及到几个类体系:Entity,Actor,Card ...

  7. 2.2 法力池的创建和视觉特效———自制卡牌游戏之旅

    文章目录 一.实现效果 二.实现过程 1. 想法 2. 创建对象 3. 编写脚本ManaPool.cs ① get.set访问器 ② 最大法力值 ③ 可用法力值 ④ update测试 3. ManaP ...

  8. 如何用Unity Shader制作类似《炉石传说》卡牌的动态效果?

    此篇为鄙人在卡牌项目中,尝试模仿<炉石传说>卡面特效所制作的特效Shader总结回顾,几经修改,最终成为了现在的样子,因为使用简单,效果明显,虽然距离<炉石传说>的卡面特效还有 ...

  9. 第02章 一个实例初识WorkBench分析流程-卡扣结构的动作分析

    第02章 一个实例初识WorkBench分析流程-卡扣结构的动作分析 1问题描述,关心的结果 2. 建模的介绍,模型改如何简化 3. 复杂特征的网格初步试划分 4. 网格再次的划分及调整 5. 材料的 ...

最新文章

  1. PHP问题 —— Deprecated: Function ereg_replace() is de
  2. SegmentFault 技术周刊 Vol.21 - 程序人生(二):2016 这一年
  3. golang中的优雅中止
  4. opencv cv2.flip()函数(图像翻转、镜像、颠倒)(沿x轴翻转0、沿y轴翻转【正值】、同时沿x轴y轴翻转-【负值】)
  5. 现代谱估计:多窗口谱
  6. linux 手动安装 oracle(转)
  7. phpstorm如何同时打开两个文件夹_iPhone如何同时添加两个不同的面容ID?
  8. 数据粒度的上卷和下钻
  9. 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
  10. 单调栈:leetcode 84. 柱状图中最大的矩形/85最大矩形
  11. python小游戏,植物大战僵尸,免费源代码分享,少儿编程体验项目,项目注释详细,可更改游戏参数,关注私聊“关注即送植物大战僵尸源代码”即可免费获得
  12. java数据库编程--执行数据库更新操作
  13. 思科(Cisco)路由器常用命令总结
  14. Windows设置眼睛保护色
  15. 百度汇率转换接口 php,利用yahoo汇率接口实现实时汇率转换示例 汇率转换器_php实例...
  16. Android Button设置边框 和背景
  17. echarts年龄饼图_ECharts中饼图的操作
  18. 学生来看我,我自我满足...........
  19. 关于ThinkPad T490s 风扇不转动问题
  20. Unity3d游戏引擎Windy系列教程:常见组件扫盲讲解引入unity所需的脚本语言基础

热门文章

  1. untiy 2D角色控制器
  2. 微信UI设计之WeUI前端样式库
  3. Indeed Skype面试
  4. java comparable_Java Comparable返回值,它必须是1,-1还是0?
  5. 手机端/移动端证件识别
  6. 建行etc系统无法连接到服务器,投诉建行强行绑定ETC导致现在无法办理
  7. 深度学习之 神经网络算法原理
  8. 【射频ic设计】EMX常用设置
  9. 软件工程——程序编码
  10. 事务隔离级别(图文详解)