Страница 1 из 1

Маска поверx основной текстуры

СообщениеДобавлено: 28 апр 2017, 22:38
Visochestvo
Недавно начал работать над шейдерами.
Как наложить маску текстуру поверх основной базовой текстуры, но при этом с разными цветами, у основой текстуры и у маски. Допустим темные цвета этот прозрачные места и должно быть видно основную текстуру.
Получается так что накладываются текстуры правильно, но смешиваются цвета и получается неправильно.

Синтаксис:
Используется glsl
void surf (Input IN, inout SurfaceOutput o) {

 float4 tex = tex2D(_MainTex, IN.uv_MainTex) * _Color;
 float4 mask = tex2D(_Mask, IN.uv_Mask) * _MaskColor;
 float4 Specular = _Shininess;

 float4 Diffuse = tex + mask * _Intensity;
 o.Albedo = Diffuse;
 o.Specular = Specular;
}


Изображение

Re: Маска поверx основной текстуры

СообщениеДобавлено: 28 апр 2017, 23:33
waruiyume
Синтаксис:
Используется glsl
void surf (Input IN, inout SurfaceOutput o)
{
 float4 tex = tex2D(_MainTex, IN.uv_MainTex) * _Color;
 fixed mask = tex2D(_Mask, IN.uv_Mask).r ;
 float4 Specular = _Shininess;

 float4 Diffuse = lerp(tex, _MaskColor, mask * _Intensity);
 o.Albedo = Diffuse;
 o.Specular = Specular;
}

Re: Маска поверx основной текстуры

СообщениеДобавлено: 29 апр 2017, 00:30
Visochestvo
waruiyume писал(а):
Синтаксис:
Используется glsl
void surf (Input IN, inout SurfaceOutput o)
{
 float4 tex = tex2D(_MainTex, IN.uv_MainTex) * _Color;
 fixed mask = tex2D(_Mask, IN.uv_Mask).r ;
 float4 Specular = _Shininess;

 float4 Diffuse = lerp(tex, _MaskColor, mask * _Intensity);
 o.Albedo = Diffuse;
 o.Specular = Specular;
}

Точно, респект :-bd
осталось убрать Specular из маски что бы была только на основной текстуре