技能CD 效果 shader
技能CD特效
这个效果主要是利用反正切函数完成。atan2(x,y)的返回值是[-PI,PI],这个支持4个象限的反正切函数。关于圆角计算,在上篇文章中有介绍。
现在,我们来看看反正切函数的效果:
在第一象限:返回[0,PI/2],有渐变;
在第二象限:返回[PI/2,PI],为白色;
在第三象限:返回[-PI,-PI/2],为黑色;
在第四象限:返回[-PI/2,0],为黑色;
uv = i.uv - fixed2(0.5,0.5);
float hui = atan2(uv.y, uv.x);
return float4(hui,hui,hui,alpha);
反正切的返回值在[-PI,PI],那么我们现在增加变量_angle,让他控制反正切的值;我们设置_angle值为[-PI,PI],用_angle的值,加上反正切的值,他们最后的值就会随着_angle的值变化。
当_angle = -PI时,最终值为[-2PI,0],显示黑色;
当_angle = PI时,最终值为[0,2PI],显示渐变;
现在我使用用sign函数,将大于0的部分全部设置为1,小于等于0的部分设置成为0;
源代码:
Shader "JQM/Test02"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_angle("angle", Range(, )) =
}
SubShader
{ Pass
{
Tags {"Queue" = "Transparent"}
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM
#pragma vertex vert
#pragma fragment frag #include "UnityCG.cginc" float _percent;
float _angle; sampler2D _MainTex;
float4 _MainTex_ST; struct VertexOutPut
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
}; VertexOutPut vert (appdata_full v)
{
VertexOutPut o;
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
o.uv = v.texcoord.xy; return o;
} fixed4 frag (VertexOutPut i) : COLOR
{
//圆角计算
float2 uv = i.uv.xy - float2(0.5,0.5);
float rx = fmod(uv.x, 0.4); float ry = fmod(uv.y, 0.4); float mx = step(0.4, abs(uv.x));
float my = step(0.4, abs(uv.y));
float alpha = - mx*my*step(0.1, length(half2(rx,ry)));
fixed4 col = tex2D(_MainTex, i.uv); uv = i.uv - fixed2(0.5,0.5);
_angle = 6.283*(_angle-0.5);
float hui =sign(_angle+atan2(uv.y, uv.x));
return float4(hui,hui,hui,alpha);
}
ENDCG
}
}
}
CG函数
sign(x)
:如果 x 大于 0,返回 1;如果 x 小于 0,返回 01;否则返回 0。
技能CD 效果 shader的更多相关文章
- NGUI实现技能CD效果
在NGUI中使用Sprite的遮罩效果可以很轻松的实现技能CD效果. 具体实现步骤: ①新建一个技能图标的Sprite 如图中的Skill001,再在该技能Sprite上添加一个Sprite做遮罩, ...
- Unity NGUI实现技能CD效果
unity版本:4.5.1 NGUI版本:3.6.5 脚本代码:C# 在游戏中经常要实现技能的CD效果,NGUI中已经实现了这个功能,即在button上创建一个半透明的Sprite实现这个功能. 首先 ...
- NGUI技能CD效果制作(sprite的type:filled)
一,我们先添加一个sprite,改名为skill.给当前skill添加图片,然后再sprite下添加一个sprite和一个label,结果如下 二现在我们来设置skill下的sprite,给他设置一个 ...
- Unity3D 利用NGUI2.6.3做技能冷却的CD效果
转自http://blog.csdn.net/qqmcy/article/details/9469021 NGUI非常强大我们今天来学习一下,如何利用NGUI做技能冷却的CD效果.先导入NGUI的插件 ...
- NGUI系列教程六(技能冷却的CD效果)
今天来学习一下,如何利用NGUI做技能冷却的CD效果. 1,首先按之前的教程Create Your UI,Camera为Simple 2D 最终如下图: 2,添加一个按钮,Background 为一张 ...
- Unity 利用NGUI2.6.3做技能冷却的CD效果
NGUI非常强大我们今天来学习一下,如何利用NGUI做技能冷却的CD效果.先导入NGUI的插件.没有的话这里有啊NGUI2.6.3下载地址: http://vdisk.weibo.com/s/KLqn ...
- NGUI研究之制作转圈的技能CD特效
昨天想做一个技能CD转圈的特效,花了大把的时间去用meshRender组件想通过三角形依据数学算法来绘制一个圆形的网格.通过动态绘制圆形网格的方法来实现技能CD特效.奶奶的昨天我研究了一晚上,最 ...
- (转)NGUI制作转圈的技能CD特效
在技能图标上面放个半透明的精灵,用来做技能冷却的特效,如下图所示,我就用NGUI中的图标来带代替. NGUI制作转圈的技能CD特效 然后修改一下特效的精灵类型,它是在技能图标上面悬浮半透明可旋转的精灵 ...
- Unity-奥义技能背景变黑效果
[旧博客转移 - 2016年8月29日 12:51 ] 前段时间做了一个放技能的时候,背景缓慢变黑,放完后再变回来的效果,可以很好的突出技能特效的感觉. 算是一种屏幕后期特效,这个特效说难不难,说简单 ...
随机推荐
- 《windows核心编程系列》一谈谈windows中的错误处理机制
错误处理 我们写的函数会用返回值表示程序执行的正确与否,使用void,就意味着程序一定不会出错.Bool类型标识true时为真,false时为假.其他类型根据需要可以定义成不同意义. Windows除 ...
- 2017 JUST Programming Contest 3.0 K. Malek and Summer Semester
K. Malek and Summer Semester time limit per test 1.0 s memory limit per test 256 MB input standard i ...
- JavaScript的执行
下面内容参考:http://blog.csdn.net/cxiaokai/article/details/7552653 http://www.jb51.net/article/36755.htm 首 ...
- vijos P1629八 容斥原理
https://vijos.org/p/1629 注意lcm要用LL 先给一个样例 1 2 1 10 思路.其实这题就是问,给定一堆数,要求不能整除其任意一个的数字有多少个. 容辞 + lcm dfs ...
- ajax通过新闻id获取列表
<div class="index_main"> <div class="page_l"> <i ...
- web+ admin template,spa管理应用后台,easyui后台正式发布
演示地址:http://admintemplate.webplus.org.cn/ v1.0 (2016/7/27) 扁平化风格 全屏支持 后台管理不使用iframe,全ajax开发 权限管理 商品管 ...
- Dev之GridControl详解
Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多半借助Demo和英文帮助文档.网上具体的使用方法也多半零碎.偶遇一个简单而且 ...
- "码代码"微信号今日上线,为互联网同仁提供最前沿咨询
"码代码"微信号今日上线 关注即有好礼相送 三月,春意浓浓的日子,三月,属于女人的日子,而今天...... “2014年天空成人放送大赏”于5日晚举办颁奖典礼,“年度最佳AV女优” ...
- 修改vim注释字体颜色
vim /etc/vimrc#最后一行新增代码块hi comment ctermfg=6 注:注释用 " 标注 PS:默认的注释颜色是4 然后有0,1,2,3,4,5,6,7来选择.可以除 ...
- SQL 索引自动维护计划脚本
脚本功能: 1,查询数据库中,碎片率在5%以上(官方推荐),有一定数据里的表的索引. 2.如果碎片率在5%<碎片率<=30% 执行重新组织索引.如果在30%以上,执行重建索引 建议在执行 ...