游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2315

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 3324|回复: 50

[士郎] [shader]赤橙黄绿青蓝紫——动态色环

[复制链接]  [移动端链接]
排名
3
昨日变化

6808

主题

7332

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
7312
威望
30
注册时间
2013-7-29
在线时间
3508 小时
最后登录
2018-9-23

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

发表于 2018-4-16 11:25:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
最终效果
1.1.gif


思路

  • 圆周计算HSV的色相。半径计算纯度和明度。
  • 传递鼠标坐标来对对应的色块描边。



[AppleScript] 纯文本查看 复制代码
Shader "QQ/UI/Palette"
{
        Properties
        {
                _Hue("hue",float) = 16
                _Level("level",float) = 6
                _Radius0("radius0",float) = 0.05
                _Radius1("radius1",float) = 0.45
                _Span("span",Range(0,0.5)) = 0.01
                _Position("point",vector) = (0,0,0,0)
        }
                SubShader
        {
                Tags
                {
                "Queue" = "Transparent"
                "IgnoreProjector" = "True"
                "RenderType" = "Transparent"
                "PreviewType" = "Plane"
                "CanUseSpriteAtlas" = "True"
                }
                Pass
                {
                        Cull Off
                        Lighting Off
                        ZWrite Off
                        Blend SrcAlpha OneMinusSrcAlpha
                        CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag

                        #include "UnityCG.cginc"
                        float _Hue;
                        float _Level;
                        float _Radius0;
                        float _Radius1;
                        float _Span;
                        float4 _Position;
                        struct appdata
                        {
                                float4 vertex : POSITION;
                                float4 color    : COLOR;
                                float2 uv : TEXCOORD0;
                        };

                        struct v2f
                        {
                                float4 vertex : SV_POSITION;
                                float2 uv : TEXCOORD0;
                                fixed4 color : COLOR;
                        };
                        v2f vert(appdata v)
                        {
                                v2f o;
                                o.vertex = UnityObjectToClipPos(v.vertex);
                                o.uv = v.uv;
                                o.color = v.color;
                                return o;
                        }
                        float3 HSVToRGB(float3 hsv)
                        {
                                return lerp(float3(1, 1, 1), saturate(3.0*abs(1.0 - 2.0*frac(hsv.r + float3(0.0, -1.0 / 3.0, 1.0 / 3.0))) - 1), hsv.g)*hsv.b;
                        }
                        float3 EdgeToHSV(float3 edge)
                        {
                                float hm = 1 / _Hue;
                                float sm = 1 / (_Level*0.5);
                                return float3(floor(edge.r)*hm, floor(edge.g)*sm, min(1, ceil(edge.b)*sm));
                        }
                        float3 GetEdge(float r,float2 uv)
                        {
                                float hm = 1 / _Hue;
                                float h = (atan2(uv.y, uv.x) + UNITY_PI) / UNITY_TWO_PI / hm;
                                float sm = 1 / (_Level*0.5);
                                r = r / _Radius1 * 2;
                                float s = r / sm;
                                float v = (2 - r) / sm;
                                return float3(h,s,v);
                        }
#define Delta 0.005
                        fixed4 frag(v2f i) : SV_Target
                        {
                                float2 uv = i.uv - float2(0.5,0.5);
                                float2 _uv = _Position.xy;
                                float r = length(uv);
                                float _r = length(_uv);
                                fixed4 col = fixed4(0, 0, 0, 0);
                                if (r > _Radius0 && r < _Radius1)
                                {
                                        col.a = 1 - smoothstep(_Radius1 - Delta,_Radius1,r);
                                        float3 e = GetEdge(r,uv);
                                        float3 hsv = EdgeToHSV(e);
                                        col.rgb = HSVToRGB(hsv);

                                        float3 _e = GetEdge(_r, _uv);
                                        float3 _hsv = EdgeToHSV(_e);
                                        if (hsv.r == _hsv.r&&hsv.g == _hsv.g&&hsv.b == _hsv.b)
                                        {
                                                float h = frac(e.r);
                                                r *= 5;
                                                if (h < _Span / r || h >(1 - _Span / r) || frac(e.g) < _Span || frac(e.b) < _Span)
                                                {
                                                        if (length(col.rgb) > 0.5)
                                                                col.rgb *= 0.5;
                                                        else
                                                                col.rgb *= 2;
                                                }
                                        }
                                }
                                return col;
                        }
                ENDCG
                }
        }
}




知乎@CarefreeQ



[发帖际遇]: 清风 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
回复

使用道具 举报

7日久生情
3241/5000
排名
2041
昨日变化

0

主题

2116

帖子

3241

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
1
蛮牛币
2419
威望
0
注册时间
2017-7-12
在线时间
495 小时
最后登录
2018-9-22

活力之星

发表于 2018-4-16 11:57:11 | 显示全部楼层
谢谢分享

回复

使用道具 举报

5熟悉之中
610/1000
排名
11232
昨日变化
1

3

主题

85

帖子

610

积分

Rank: 5Rank: 5

UID
128276
好友
0
蛮牛币
2713
威望
0
注册时间
2015-11-8
在线时间
442 小时
最后登录
2018-9-20
发表于 2018-4-16 12:25:30 | 显示全部楼层
效果很酷

回复

使用道具 举报

排名
25664
昨日变化
2

0

主题

25

帖子

58

积分

Rank: 2Rank: 2

UID
249924
好友
0
蛮牛币
143
威望
0
注册时间
2017-10-20
在线时间
20 小时
最后登录
2018-9-17
发表于 2018-4-16 15:04:53 | 显示全部楼层
不错的想法,谢谢分享

回复 支持 反对

使用道具 举报

4四处流浪
436/500
排名
5689
昨日变化
2

0

主题

69

帖子

436

积分

Rank: 4

UID
246031
好友
1
蛮牛币
627
威望
0
注册时间
2017-9-26
在线时间
141 小时
最后登录
2018-9-22
发表于 2018-4-16 15:14:29 | 显示全部楼层
6666666666666666666

回复 支持 反对

使用道具 举报

5熟悉之中
514/1000
排名
4749
昨日变化

0

主题

36

帖子

514

积分

Rank: 5Rank: 5

UID
264429
好友
0
蛮牛币
838
威望
0
注册时间
2018-1-15
在线时间
194 小时
最后登录
2018-8-7
发表于 2018-4-16 15:48:31 | 显示全部楼层
好东西,赞一个

回复

使用道具 举报

排名
45804
昨日变化
107

0

主题

9

帖子

36

积分

Rank: 1

UID
244127
好友
0
蛮牛币
33
威望
0
注册时间
2017-9-17
在线时间
23 小时
最后登录
2018-9-6
发表于 2018-4-16 16:18:46 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
1532/5000
排名
2567
昨日变化

12

主题

708

帖子

1532

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
218409
好友
3
蛮牛币
5179
威望
0
注册时间
2017-4-19
在线时间
302 小时
最后登录
2018-9-21
发表于 2018-4-16 16:21:01 | 显示全部楼层

谢谢分享

回复

使用道具 举报

排名
569
昨日变化
1

229

主题

1万

帖子

1万

积分

Rank: 12Rank: 12Rank: 12

UID
78862
好友
12
蛮牛币
17443
威望
0
注册时间
2015-3-11
在线时间
2911 小时
最后登录
2018-9-21
QQ
发表于 2018-4-16 17:40:37 | 显示全部楼层
这个太帅了

回复

使用道具 举报

5熟悉之中
857/1000
排名
13989
昨日变化
2

69

主题

343

帖子

857

积分

Rank: 5Rank: 5

UID
15706
好友
3
蛮牛币
1264
威望
0
注册时间
2014-2-26
在线时间
387 小时
最后登录
2018-9-21
发表于 2018-4-16 18:15:20 | 显示全部楼层
这么实现图上的效果?有代码也不会用啊

回复 支持 反对

使用道具 举报

7日久生情
1678/5000
排名
18913
昨日变化
2

12

主题

779

帖子

1678

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
158776
好友
2
蛮牛币
164
威望
0
注册时间
2016-7-26
在线时间
860 小时
最后登录
2018-9-25
发表于 2018-4-16 18:51:18 | 显示全部楼层
牛B,6666666666666666

回复 支持 反对

使用道具 举报

5熟悉之中
641/1000
排名
3536
昨日变化
1

1

主题

38

帖子

641

积分

Rank: 5Rank: 5

UID
230664
好友
2
蛮牛币
1127
威望
0
注册时间
2017-7-6
在线时间
210 小时
最后登录
2018-8-30
发表于 2018-4-16 19:36:45 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
2601/5000
排名
683
昨日变化
1

30

主题

551

帖子

2601

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
124569
好友
25
蛮牛币
6498
威望
0
注册时间
2015-10-4
在线时间
784 小时
最后登录
2018-9-25
发表于 2018-4-17 08:26:58 | 显示全部楼层
66666666666666666

回复 支持 反对

使用道具 举报

7日久生情
1912/5000
排名
4270
昨日变化

0

主题

1335

帖子

1912

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
267381
好友
5
蛮牛币
3200
威望
0
注册时间
2018-2-1
在线时间
257 小时
最后登录
2018-8-30
发表于 2018-4-17 08:57:25 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
1848/5000
排名
821
昨日变化

29

主题

184

帖子

1848

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
163759
好友
0
蛮牛币
2473
威望
0
注册时间
2016-8-23
在线时间
507 小时
最后登录
2018-9-23
发表于 2018-4-17 09:07:32 | 显示全部楼层
厉害得勒

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表