J'ai un petit problème avec Blend SrcAlpha OneMinusSrcAlpha lorsque je Flip mon personnage.
Le Blend ne donne pas le même résultat en fonction d’où est tourné le personnage.
Je sais pas si c'est par rapport a la source qui prend mal l'inversion du sprite?
Si quelqu'un à une idée please ;s.
Merci
Je met au-cas ou le code du shader ci-dessous :
Code : Tout sélectionner
Shader "CTD/Diffuse" {
Properties{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
_BumpMap("Normalmap", 2D) = "bump" { }
_Cutoff("Alpha Cutoff", Range(0,1)) = 0.5
}
SubShader{
Tags
{
"Queue" = "Transparent"
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
"PreviewType" = "Plane"
"CanUseSpriteAtlas" = "True"
}
Pass{
// Only render pixels with an alpha larger than 50%
AlphaTest Greater 0.5
SetTexture[_MainTex]{ combine texture }
}
LOD 300
Cull Off
Lighting On
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
Fog{ Mode Off }
//Blend DstAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma surface surf Lambert alpha vertex:vert addshadow alphatest:_Cutoff
sampler2D _BumpMap;
sampler2D _MainTex;
fixed4 _Color;
struct Input {
float2 uv_MainTex;
float2 uv_BumpMap;
fixed4 color;
};
void vert(inout appdata_full v, out Input o)
{
#if defined(PIXELSNAP_ON) && !defined(SHADER_API_FLASH)
v.vertex = UnityPixelSnap(v.vertex);
#endif
v.normal = float3(0, 0, -1);
v.tangent = float4(1, 0, 0, 1);
UNITY_INITIALIZE_OUTPUT(Input, o);
o.color = _Color;
}
void surf(Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
}
ENDCG
}
Fallback "Diffuse"
}
/*
Shader "Lynn/Diffuse" {
Properties
{
_ColorTint("Color Tint", Color) = (1,1,1,1)
_MainTex("Main Texture", 2D) = "White"{}
_BumpMap("Normal Map", 2D) = "bump" {}
_RimColor("Rim Color", Color) = (1,1,1,1)
_RimPower("Rim Power", Range(0.5, 8.0)) = 3.0
}
SubShader
{
Tags { "RenderType" = "Transparent"}
Cull Off
CGPROGRAM
#pragma surface surf Lambert
struct Input
{
float4 color : COLOR;
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir;
};
float4 _ColorTint;
sampler2D _MainTex;
sampler2D _BumpMap;
float4 _RimColor;
float _RimPower;
void surf(Input IN, inout SurfaceOutput o)
{
IN.color = _ColorTint;
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb * IN.color;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
half rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
o.Emission = _RimColor.rgb * pow(rim, _RimPower);
}
ENDCG
}
Fallback "Diffuse"
}
*/