Странное поведение альфы

Шейдеры и все-все-все.

Странное поведение альфы

Сообщение eonyanov 09 июн 2017, 13:40

Вот две картинки. Исходная сверху.
Скрытый текст:
Изображение

Как видно, у желтой заливки слева всё гладко.
Это стандартное отображение UI.Image;
Затем я делаю в своем шейдере так:
Синтаксис:
Используется csharp
....
 _FillAmount ("Fill Amount", range(0,1)) = 1
....
....
fixed4 frag(v2f IN) : SV_Target
            {
                half4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
                c.a = c.a *  floor(_FillAmount / IN.texcoord.x);          
                clip (c.a - 0.01);
                return c;
            }
 

_FillAmount задается в параметрах шейдера.
И получается уже нижняя картинка.
Почему так получается, ведь floor в моем случае возвращает 0 или 1.

Пока обошелся таким решением:
Синтаксис:
Используется csharp
 
          fixed4 frag(v2f IN) : SV_Target
            {
                half4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
//                c.a = c.a *  floor(_FillAmount / IN.texcoord.x);          
                if(_FillAmount/IN.texcoord.x > 1)
                    c.a = c.a;
                 else
                    c.a = 0;
                clip (c.a - 0.01);
                return c;
            }
 
Glow Asteroids Game
Happy Chair
Аватара пользователя
eonyanov
UNITрон
 
Сообщения: 298
Зарегистрирован: 22 авг 2014, 10:28

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5