UnityShader学习实践(hsv转rbg)

Shader "Custom/RGBtoHSV" {
Properties
{
_H("hue",Range(0,360))=0.1
_S("saturation",Range(0,1.0))=0
_V("value",Range(0, 1.0)) = 0
_A("Alpha", Range(0,1.0))=1.0
}

SubShader
{
Tags { "Queue"="Transparent" "RenderType"="Transparent" }

Pass
{
CGPROGRAM

#pragma vertex vert
#pragma fragment frag
#pragma target 2.0

uniform fixed _H;
uniform fixed _S;
uniform fixed _V;
uniform fixed _A;

fixed4 HSVtoRGB()
{
fixed R;
fixed G;
fixed B;

if (_S == 0)
{
R = G = B = _V;
}
else
{
_H /= 60;
fixed i = (int)_H;
fixed f = _H-i;
fixed a = _V*(1 - _S);
fixed b = _V*(1 - f*_S);
fixed c = _V*(1 - (1 - f)*_S);

if (i == 0)
{
R = _V; G = c; B = a;
}
else if (i == 1)
{
R = b; G = _V; B = a;
}
else if (i ==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值