Transparent из цвета

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

Transparent из цвета

Сообщение i_am_kisly 15 июн 2016, 01:28

Есть у меня набор вот таких спрайтиков :

ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение
ИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображениеИзображение

( да, это армия из 16 мужиков с рогами :)) )

Движок игры из которой спрайт выдран воспринимает цвет 0000FF как Transparent. И на сколько я понимаю - градиент там не используется.
Собственно я не пойму, как мне выделить в альфу только цвет 0000FF ?

Вот вам дерево :)
Изображение
Текущие проекты: [Lineage2 unity5][_blog non6.blogspot.ru ]
i_am_kisly
Старожил
 
Сообщения: 742
Зарегистрирован: 10 фев 2015, 17:26
  • Сайт

Re: Transparent из цвета

Сообщение waruiyume 15 июн 2016, 01:56

Кликнуть на инструмент "волшебное дилдо" и выделить.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Transparent из цвета

Сообщение i_am_kisly 15 июн 2016, 02:55

Я так понимаю дерево вам не понравилось..

Вроде бы логика понятна, но получается какая-то херня
Изображение

вот сам чудак с рогами без фильтраций и смс
Изображение

всё кликабельно
Текущие проекты: [Lineage2 unity5][_blog non6.blogspot.ru ]
i_am_kisly
Старожил
 
Сообщения: 742
Зарегистрирован: 10 фев 2015, 17:26
  • Сайт

Re: Transparent из цвета

Сообщение waruiyume 15 июн 2016, 05:38

Синтаксис:
Используется glsl
Shader "Unlit/NewUnlitShader"
{
        Properties
        {
                _MainTex ("Texture", 2D) = "white" {}
                _MaskColor("MaskColor", Color) = (0,0,0,0)
                _MaskStepPoint("_MaskStepPoint", range(0, 1)) = .9
        }
        SubShader
        {
                Tags { "RenderType"="Opaque" }
                LOD 100
               
                ZWrite Off
                Blend SrcAlpha OneMinusSrcAlpha

                Pass
                {
                        CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag
                        // make fog work
                        #pragma multi_compile_fog
                       
                        #include "UnityCG.cginc"

                        struct appdata
                        {
                                float4 vertex : POSITION;
                                float2 uv : TEXCOORD0;
                        };

                        struct v2f
                        {
                                float2 uv : TEXCOORD0;
                                UNITY_FOG_COORDS(1)
                                float4 vertex : SV_POSITION;
                        };

                        sampler2D _MainTex;
                        float4 _MainTex_ST;
                        fixed4 _MaskColor;
                        half _MaskStepPoint;
                       
                        v2f vert (appdata v)
                        {
                                v2f o;
                                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                                UNITY_TRANSFER_FOG(o,o.vertex);
                                return o;
                        }
                       
                        fixed4 frag (v2f i) : SV_Target
                        {
                                // sample the texture
                                fixed4 col = tex2D(_MainTex, i.uv);
                                fixed dist = distance(col.rgb, _MaskColor.rgb);
                                dist = step(_MaskStepPoint, dist);
                                col.a = dist;
                                // apply fog
                                UNITY_APPLY_FOG(i.fogCoord, col);
                                return col;
                        }
                        ENDCG
                }
        }
}

 


Можно попробовать поискать что-то более продвинутое по запросу "chroma key"
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Transparent из цвета

Сообщение i_am_kisly 15 июн 2016, 22:39

Благодарю :)
Текущие проекты: [Lineage2 unity5][_blog non6.blogspot.ru ]
i_am_kisly
Старожил
 
Сообщения: 742
Зарегистрирован: 10 фев 2015, 17:26
  • Сайт


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

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

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