Je tiens à préciser en intro que je suis un débutant sur Unity 3D.
J'ai un petit problème avec un shader sur un de nos projets et je me permet de venir vous demander de l'aide si possible.
Introduction :
- Afin de pouvoir peindre des textures sur un assets j'ai téléchargé "ProBuilder Basic". Cet outils, en plus de permettre de modifier la géométrie d'un asset directement dans Unity, permet aussi de le coloriser à l'aide de l'outil "Vertex color editor" soit avec une couleur ou avec plusieurs textures.
Du coup j'utilise le shader "Probuilder/Diffuse Texture Blend" qui permet de peindre des textures sur la texture d'origine de l'asset.
Problème :
L'outil permettant de peindre avec des texture marche bien par contre j'ai une transparence dans la texture qui me pose un vrais problème de rendu.
Je ne sais pas si le problème viens du shader ou d'un réglage d'un des paramètre du projet. Lorsque j'utilise le shader "Probuilder/Standard Vertex Color" effectivement le problème n'apparait plus mais du coup je ne peux que peindre avec des couleurs brut et plus avec des textures...
Vous trouverez ci dessous le code du shader : "Probuilder/Diffuse Texture Blend" ,si une bonne âme peut se pencher dessus pour me dire si le problème viens de là ou si cela est à cause d'un autre règlage.
Code : Tout sélectionner
Shader "ProBuilder/Diffuse Texture Blend"
{
Properties
{
_FirstTex ("Texture", 2D) = "white" {}
_SecondTex ("Texture", 2D) = "white" {}
_ThirdTex ("Texture", 2D) = "white" {}
_FourthTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType" = "Opaque" }
ColorMask RGB
CGPROGRAM
#pragma surface surf Lambert
sampler2D _FirstTex;
sampler2D _SecondTex;
sampler2D _ThirdTex;
sampler2D _FourthTex;
struct Input
{
float4 color : COLOR;
float2 uv_FirstTex;
float2 uv_SecondTex;
float2 uv_ThirdTex;
float2 uv_FourthTex;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c0 = tex2D(_FirstTex, IN.uv_FirstTex);
fixed4 c1 = tex2D(_SecondTex, IN.uv_SecondTex);
fixed4 c2 = tex2D(_ThirdTex, IN.uv_ThirdTex);
fixed4 c3 = tex2D(_FourthTex, IN.uv_FourthTex);
fixed4 blend = normalize(IN.color);
fixed4 rgba = c0 * blend.r;
rgba = lerp(rgba, c1, blend.g);
rgba = lerp(rgba, c2, blend.b);
rgba = lerp(rgba, c3, blend.a);
o.Albedo = rgba.rgb;
}
ENDCG
}
Fallback "Diffuse"
}
nikko
Les balises code SVP
Merci de lire la Netiquette.