Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Questions à propos du scripting Shader.
Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par ZJP » 23 Mai 2014 16:42

Salut,

Tout à mes essais sur les shaders de LUX, je viens de faire la découverte que les shaders d'origines "Self-Illu*" d'Unity sont...inopérants. Oubli ou erreur volontaire (certains utilisent pour compenser des "Glows Shaders" du Store alors que des "Self-illu" fonctionnels feraient parfaitement l'affaire)?. De plus, cela fonctionne avec Unity Indie sans aucune (ou presque) ressource supplémentaire.

Lien de la source des shaders d'origine.
Le shader "Self-Illumin/Bumped Diffuse" modifié. Voir aussi les versions Mobiles (Hein Loïc !!! :D )

Code : Tout sélectionner

Shader "Self-Illumin/Bumped Diffuse Illumin" 
{
	Properties 
	{
		_Color ("Main Color", Color) = (1,1,1,1)
		_MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
		_Illum ("Illumin (A)", 2D) = "white" {}
		_BumpMap ("Normalmap", 2D) = "bump" {}
		_EmissionLM ("Emission (Lightmapper)", Float) = 1.0
	}

	SubShader 
	{
		Tags { "RenderType"="Opaque" }
		LOD 300

		CGPROGRAM
                        #pragma target 3.0
			#pragma surface surf Lambert

			sampler2D _MainTex;
			sampler2D _BumpMap;
			sampler2D _Illum;
			fixed4 _Color;
			float _EmissionLM; // ajoutée !!!!!!

			struct Input 
			{
				float2 uv_MainTex;
				float2 uv_Illum;
				float2 uv_BumpMap;
			};

			void surf (Input IN, inout SurfaceOutput o) 
			{
				fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
				fixed4 illumination = tex2D(_Illum, IN.uv_MainTex); // ajoutée !!!!!!
				fixed4 c = tex * _Color;
				o.Albedo = c.rgb;
				o.Emission = c.rgb * tex2D(_Illum, IN.uv_Illum).a;
				
				o.Emission += illumination.rgb * _EmissionLM * illumination.a; // ajoutée !!!!! 

				o.Alpha = c.a;
				o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
			}
		ENDCG
	} 
	FallBack "Self-Illumin/Diffuse"
}



Le résultat :
Image Image

C'est pas bien UT, non, c'est pas bien... :mrgreen:

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par cayou66 » 23 Mai 2014 16:46

Pour moi le Glow c'est un image effect car ça va au delà de la zone de la texture à l'écran pour un glow visuellement réussi. Après ça dépend de ce que tu entends par Glow, mais on voit par exemple sur cette image:
Image
Que le glow laisse un contour brillant, ce que ne fait pas un self-illumin?

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par ZJP » 23 Mai 2014 16:54

cayou66 a écrit :Pour moi le Glow c'est un image effect car ça va au delà de la zone de la texture à l'écran pour un glow visuellement réussi. Après ça dépend de ce que tu entends par Glow, mais on voit par exemple sur cette image:
Image
Que le glow laisse un contour brillant, ce que ne fait pas un self-illumin?
La différence entre un Glow et un "Sel-illu" c'est bien l'aura du Glow, qui n'est pas forcement nécessaire (ou recherché). De plus, il n'est pas normal que des shaders d'origine ne fonctionnent pas comme attendu. ;)

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par cayou66 » 23 Mai 2014 16:57

Je vois.
Pour ce qui concerne les shaders d'origines, c'est rempli d'incohérence et de bugs. Par exemple la lumière (ou un truc du genre) dans les shaders lit est doublée, comme ça, leur réponse c'est qu'ils ont trouvé que c'était cool comme résultat (entendre on sait pas comment ça marche mais ça marche).

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par ZJP » 23 Mai 2014 17:07

cayou66 a écrit :Je vois.
Pour ce qui concerne les shaders d'origines, c'est rempli d'incohérence et de bugs. Par exemple la lumière (ou un truc du genre) dans les shaders lit est doublée, comme ça, leur réponse c'est qu'ils ont trouvé que c'était cool comme résultat (entendre on sait pas comment ça marche mais ça marche).
:?
Je commence a jeter un œil sur tout ces "trucs" maisons. Il y a en effet de l'optimisation a apporter. Par exemple, des "Pass" dans certains shaders qui ne servent pas à grand chose. Le shader "CREASE" que j'utilise beaucoup avait (par défaut) une boucle de 6 (SIX!!) passages dans son script de contrôle alors que leurs effets n’étaient plus visible au delà du..premier!!. Un empilement de RTT gourmands pour...rien (?). Je comprend pourquoi ce shader mettait le FrameRate à genoux.

Edit.

Pour Mobile.

Code : Tout sélectionner

Shader "Mobile/Bumped Diffuse Illu" 
{
	Properties 
	{
		_MainTex ("Base (RGB)", 2D) = "white" {}
		_BumpMap ("Normalmap", 2D) = "bump" {}  // a déactiver si pas de normal map

		_Illum ("Illumin (RGB) Alpha (A)", 2D) = "black" {}

		_EmissionLM ("Emission (Lightmapper)", Float) = 1	
	}

	SubShader 
	{
		Tags { "RenderType"="Opaque" }
		LOD 250

		CGPROGRAM
			#pragma surface surf Lambert noforwardadd

			sampler2D _MainTex;
			sampler2D _BumpMap;  // a déactiver si pas de normal map

			sampler2D _Illum;
			float _EmissionLM;

			struct Input 
			{
				float2 uv_MainTex;
			};

			void surf (Input IN, inout SurfaceOutput o) 
			{
				fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
				fixed4 illumination = tex2D(_Illum, IN.uv_MainTex);
				o.Albedo = c.rgb;
				o.Albedo += illumination.rgb * _EmissionLM * illumination.a;
				//o.Emission += illumination.rgb * _EmissionLM * illumination.a; // a voir !!!
				o.Alpha = c.a;
				o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex)); // a déactiver si pas de normal map
			}
		ENDCG  
	}

	FallBack "Mobile/Diffuse"
}


Avatar de l’utilisateur
mel68
Messages : 827
Inscription : 04 Fév 2012 14:57

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par mel68 » 23 Mai 2014 17:30

Ouhaa, merci ZJP ^^, j'en cherchai justement un
Bonjour bonjour, je tien juste a vous avertir promptement que ce message ne sert totalement a rien

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Shaders Sel-Illu* fonctionnels. Le Glow du "pauvre"

Message par ZJP » 23 Mai 2014 17:39

mel68 a écrit :Ouhaa, merci ZJP ^^, j'en cherchai justement un
A ton service. ;)

Répondre

Revenir vers « les Shaders »