Voilà mon soucis est le suivant, j'ai récupérer un shader permettant d'avoir un aspect de transparence contenant une outline. Jusque là, tout va bien, mais voilà qu'il y à un petit problème au niveau de l'affichage de l'alpha.
Il y bien l'effet de Cutout (donc transparence par découpage) mais cela efface également les autres textures qu'il y a derrière celle-ci.
J'ai donc décidé d'utiliser un model afin de vous montrer de quoi il en retourne.
Je tiens à préciser que le matériel et le shader de la fourrure n'est pas la même que le reste du loup.
J'ai essayé de faire quelques modifs mais échec, j'ai même trouvé sur un autre forum quelqu'un d'autre qui avait le même problème, sauf que lui c'était pour la version mobile 3DS et je n'ai pas trop compris.
Je vous laisse le code, je pense que cela viens de la :
Code : Tout sélectionner
Shader "Toon_Transparent" {
Properties{
_MainTex("Texture", 2D) = "white" {}
_Color("Couleur", Color) = (1,1,1,0)
_Emission("Couleur d'émission", Color) = (0,0,0,0)
_OutlineColor("Outline couleur", Color) = (0,0,0,1)
_Outline("Outline taille", Range(0.0, 10)) = 0.01
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : POSITION;
float4 color : COLOR;
};
uniform float _Outline;
uniform float4 _OutlineColor;
v2f vert(appdata v) {
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
float3 norm = mul((float3x3)UNITY_MATRIX_IT_MV, v.normal);
float2 offset = TransformViewToProjection(norm.xy);
o.pos.xy += offset * o.pos.z * _Outline;
o.color = _OutlineColor;
return o;
}
ENDCG
SubShader{
Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest" "IgnoreProjector"="True" }
Pass{
ColorMask 0
AlphaTest Greater 1
}
Pass{
Name "BASE"
Blend SrcAlpha OneMinusSrcAlpha
ColorMask RGB
Material{
Diffuse[_Color]
Specular[_SpecColor]
Emission[_Emission]
}
Lighting On
SetTexture[_MainTex]{
Combine texture * primary DOUBLE, texture * primary
}
}
Pass{
Name "OUTLINE"
Tags{ "LightMode" = "Always" }
Cull Front
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
half4 frag(v2f i) :COLOR{
return i.color;
}
ENDCG
}
}
Fallback "Diffuse"
}