Шейдер разделения цвета по маске

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

Шейдер разделения цвета по маске

Сообщение nazgul30 20 мар 2012, 15:06

Мне нужно создать такой шейдер:
Входные параметры: 2 цвета и черно-белая текстура (маска):
Синтаксис:
Используется csharp
Properties {
        _Color1 ("Main Color", Color) = (1,1,1,255)
        _Color2 ("Main Color", Color) = (0,0,0,255)
        _MaskTex ("Mask", 2D) = "white" { }
}
 

Необходимо сделать так, чтобы цвета назначались согласно маске: где у маски цвет черный - там у объекта цвет _Color1, у маски белый цвет - у объекта Color2.
Каким образом можно так сделать?
Может быть, есть готовый шейдер?
nazgul30
UNIт
 
Сообщения: 76
Зарегистрирован: 08 сен 2010, 18:10

Re: Шейдер разделения цвета по маске

Сообщение MysTer92 20 мар 2012, 16:12

Синтаксис:
Используется glsl
Shader "Mix Colors by Mask" {
        Properties {
                         _Color1 ("Main Color", Color) = (1,1,1,255)
                         _Color2 ("Main Color", Color) = (0,0,0,255)
                         _MaskTex ("Mask", 2D) = "white" { }
        }
        SubShader {
                Tags { "RenderType"="Opaque" }
                LOD 200
               
                CGPROGRAM
                #pragma surface surf Lambert

                fixed4 _Color1;
                fixed4 _Color2;
                sampler2D _MaskTex;

                struct Input {
                        float2 uv_MaskTex;
                };

                void surf (Input IN, inout SurfaceOutput o) {
                        fixed mask = tex2D (_MaskTex, IN.uv_MaskTex);
                       
                        fixed4 mix = lerp(_Color1, _Color2, mask);
                       
                        o.Albedo = mix.rgb;
                        o.Alpha = mix.a;
                }
                ENDCG
        }
        FallBack "Diffuse"
}
 
Asset Store: Graphic Power-Up
about me
MysTer92
UNIт
 
Сообщения: 97
Зарегистрирован: 03 дек 2009, 09:08
Откуда: Кемерово
  • Сайт
  • ICQ

Re: Шейдер разделения цвета по маске

Сообщение nazgul30 21 мар 2012, 03:55

Огромное спасибо!:)
nazgul30
UNIт
 
Сообщения: 76
Зарегистрирован: 08 сен 2010, 18:10


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

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

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