Je suis parvenu (notamment grâce à une aide précieuse trouvée sur ce forum pour certains points) à avoir un shader qui me permet de mixer 2 textures.
S'y est ajoutée ensuite une procédure pour garantir le bon aspect ratio en remplaçant par du noir les pixels hors de l'UV map!
Mais voila que je dois maintenant avoir un masque par dessus cela!
Pourriez-vous m'aider svp? Que dois-je ajouter à ce shader pour avoir un emplacement pour une texture qui va agir comme masque par dessus ce que j'ai déjà?
A gauche ce que j'ai (on ne voit pas l'effet blend, d'accord..mais il y en a un qui sert à switcher vers une autre image)
A droite ce que je voudrais une fois l'effet de soft mask appliqué!
D'avance un grand merci pour votre aide et pour m'aider à y voir plus clair!
Code : Tout sélectionner
Shader "Shaders/Screen_Clamped_Unlit_Fade"
{
Properties
{
_Blend ( "Blend", Range ( 0, 1 ) ) = 0.5
_Color ( "Main Color", Color ) = ( 1, 1, 1, 1 )
_MainTex ( "Texture 1", 2D ) = "white" {}
_Texture2 ( "Texture 2", 2D ) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 300
Pass
{
Cull Front
SetTexture[_MainTex]
SetTexture[_Texture2]
{
ConstantColor ( 0, 0, 0, [_Blend] )
Combine texture Lerp( constant ) previous
}
}
CGPROGRAM
#pragma surface surf Unlit
half4 LightingUnlit (SurfaceOutput s, half3 lightDir, half atten) {
half4 c;
c.rgb = s.Albedo;
c.a = 1;
return c;
}
sampler2D _MainTex;
sampler2D _Texture2;
fixed4 _Color;
float _Blend;
struct Input
{
float2 uv_MainTex;
float2 uv_Texture2;
};
void surf ( Input IN, inout SurfaceOutput o )
{
fixed4 t1 = tex2D( _MainTex, IN.uv_MainTex ) * _Color;
fixed4 c;
if (IN.uv_MainTex.x > 1.0 || IN.uv_MainTex.x < 0.0 || IN.uv_MainTex.y > 1.0 || IN.uv_MainTex.y < 0.0)
c = fixed4 (0, 0, 0, 0);
else
c = t1;
fixed4 t2 = tex2D ( _Texture2, IN.uv_Texture2 ) * _Color;
o.Albedo = lerp(c.rgb, t2, _Blend );
}
ENDCG
}
FallBack "Diffuse"
}