[SHADER] shader jauge

Cette section est destinée aux scripts partagés par la communauté. Chaque post est destiné à un script. Suivez bien les recommandations.
Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

[SHADER] shader jauge

Message par Titan » 23 Mars 2013 17:15

edit: mise en page officiel ><
-NOM DU SCRIPT : BarGUI et Bar3D

-AUTEUR(S): Titan

-DESCRIPTION : affiche une barre de vie, énergie, etc

-UTILISATION : voir le readme, rapidement: ajouter sur un quad, choisir une couleur, une texture de jauge, un gradient, une texture de contour, ensuite il suffit de bind _cutValue sur votre variable à afficher sur l’intervalle 0 à 1.

-SCRIPT : voir le package, sinon en 1er la version 3D et en 2eme la version pseudo-GUI

Code : Tout sélectionner

Shader "Bar/Bar3D" 
{
	Properties //
	{
		_Color ("Main Color", Color) = (1,1,1,0.5)
		_CutValue ("Bar value", Range (0, 0.99)) = 0.99
		_MainTex ("Main Texture", 2D) = ""
		_Gradient ("Gradient", 2D) = ""
		_Border ("Border", 2D) = ""
    }
	SubShader 
	{
      	Blend SrcAlpha OneMinusSrcAlpha
      	Tags {Queue=Transparent}
       
		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"
			
			float4 		_Color;
			float 		_CutValue;
			sampler2D 	_MainTex;
			sampler2D 	_Gradient;
			sampler2D 	_Border;
			
			uniform float4 _MainTex_ST;
			uniform float4 _Gradient_ST;
			uniform float4 _Border_ST;
			
			struct v2f {
			    float4 pos : SV_POSITION;
				float2  UV_MainTex : TEXCOORD0;
				float2  UV_Gradient : TEXCOORD1;
				float2  UV_Border : TEXCOORD2;
			};
			
			v2f vert (appdata_base v)
			{
			    v2f o;
			    o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
			    o.UV_MainTex = TRANSFORM_TEX (v.texcoord, _MainTex);
				o.UV_Gradient = TRANSFORM_TEX (v.texcoord, _Gradient);
				o.UV_Border = TRANSFORM_TEX (v.texcoord, _Border);
			    return o;
			}
	
			half4 frag (v2f i) : COLOR
			{
				half4 borderColor = tex2D(_Border, i.UV_Border);
				half4 barColor = float4(0, 0, 0, 0);
				if (tex2D(_Gradient, i.UV_Gradient).x < _CutValue)
			    	 barColor = tex2D(_MainTex, i.UV_MainTex) * _Color;
			    return barColor *  (1 - borderColor.a) + borderColor * borderColor.a;
			}
			ENDCG
		}
	}
}

Code : Tout sélectionner

Shader "Bar/BarGUI" 
{
	Properties //
	{
		_Color ("Main Color", Color) = (1,1,1,0.5)
		_CutValue ("Bar value", Range (0, 0.99)) = 0.99
		_Position("Position", Vector) = (1,1,0,0)
		_MainTex ("Main Texture", 2D) = ""
		_Gradient ("Gradient", 2D) = ""
		_Border ("Border", 2D) = ""
    }
	SubShader 
	{
      	Blend SrcAlpha OneMinusSrcAlpha
      	Tags {"Queue" = "Transparent+100" }
       	
		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"
			
			float4 		_Color;
			float4		_Position;
			float 		_Depth1;
			float 		_Depth2;
			float 		_CutValue;
			sampler2D 	_MainTex;
			sampler2D 	_Gradient;
			sampler2D 	_Border;
			
			uniform float4 _MainTex_ST;
			uniform float4 _Gradient_ST;
			uniform float4 _Border_ST;
			
			struct v2f {
			    float4 pos : SV_POSITION;
				float2  UV_MainTex : TEXCOORD0;
				float2  UV_Gradient : TEXCOORD1;
				float2  UV_Border : TEXCOORD2;
			};
			
			v2f vert (appdata_base v)
			{
			    v2f o;
			    o.pos = v.vertex;
			    o.pos.xy *= _Position.xy * 2;
			    o.pos.xy += _Position.zw;
			    o.pos.z = 1;
			    o.pos.w = 1;
			    o.UV_MainTex = TRANSFORM_TEX (v.texcoord, _MainTex);
				o.UV_Gradient = TRANSFORM_TEX (v.texcoord, _Gradient);
				o.UV_Border = TRANSFORM_TEX (v.texcoord, _Border);
			    return o;
			}
	
			half4 frag (v2f i) : COLOR
			{
				half4 borderColor = tex2D(_Border, i.UV_Border);
				half4 barColor = float4(0, 0, 0, 0);
				if (tex2D(_Gradient, i.UV_Gradient).x < _CutValue)
			    	 barColor = tex2D(_MainTex, i.UV_MainTex) * _Color;
			    return barColor *  (1 - borderColor.a) + borderColor * borderColor.a;
			}
			ENDCG
		}
	}
}
Presque personne à essayer de publier sur le store d’après les retour sur mon post à ce sujet: viewtopic.php?f=2&t=5578
J'ai essayer de mettre ce shader sur le store (gratuitement), mais ça fait plus d'une semaine que c'est en "pending review" alors qu'ils avaient dit 3 jours max :(. y'a rien d'extraordinaire c'était juste pour découvrir leur pipeline, et en même temps les seuls équivalent sur le store sont à 15 euro.
[mode parano]d’ailleurs peut être qu'ils le mettent pas pour éviter de perdre des ventes, puisque ils touchent 30% ?[/mode parano]
bref dites moi ce que vous en pensez, et si ça peut vous être utile tant mieux, mais tant que le nouveau système de GUI n'est pas dispo ça reste du bricolage d'appliquer un shader à l'interface.

https://www.dropbox.com/s/5xdd7gdkej4sp ... itypackage

Image

Si ils se décident à le publier je vais voir pour ajouter un éditeur de jauge qui créerai le gradient dans une class editor, parce que j'ai un peut galérer pour le sample spirale.
____________________________________________
Hop Boy

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: shader jauge

Message par Franck » 23 Mars 2013 17:54

Salut.

C'est vraiment cool.Merci pour le partage.
J'ai testé, tes deux scénes, ça me plait beaucoup!
Pour ce qui est du temps d'attente, t'inquète c'est parfois long, mais ils répondent toujours.(pas toujours ce qu'on veut entendre :mrgreen: .)
Tu peux être un peu parrano, nous ressentons tous qu'unity technologie est TRES attiré par le pognon, et s'en cachan de moins en moins.

++
Dés fois j'bug, dés fois j'bug pas.

Avatar de l’utilisateur
Max
Messages : 8773
Inscription : 30 Juil 2011 13:57
Contact :

Re: shader jauge

Message par Max » 23 Mars 2013 18:03

Dommage, car il est bien sympa ton package, surtout que tu le propose en Free :P
J'espère que tu auras des new's rapidement quand même ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: shader jauge

Message par giyomuSan » 24 Mars 2013 00:40

tres sympa les shaders..

pour ce qui est du temps on est en plein GDC la donc ne pas etre presse ...xd ...a chauqe fois qu'il y a un event du genre tout tourne au ralentit...

@franck, si unity faisait pas de pognon..l'engine serait dead depuis longtemps..en plus c'est pas sur l'assets store qui degage le plus de marge..pour un truc qui se vends bien doit y en a voir 100 qui rapporte que dalle...30% de 0 ca fais zero et 30% de 100 000$ ou plus pour une asset qui vends bien dans la duree ca fais pas des masses non plus ...:)

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: shader jauge

Message par Franck » 24 Mars 2013 09:58

giyomuSan a écrit : @franck, si unity faisait pas de pognon..l'engine serait dead depuis longtemps..
Je ne le conteste pas, et je rajouterai même que l'asset permet de "nourrir" tout une communotée, dont je compte bien faire parti un jours.
Dés fois j'bug, dés fois j'bug pas.

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

Re: shader jauge

Message par ZJP » 24 Mars 2013 17:29

+1 pour les délais. GDC oblige. :?
UT aura le 2eme ou 3eme plus grand stand du salon, et le meilleurs emplacement. 8-)

Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

Re: shader jauge

Message par Titan » 05 Avr 2013 14:29

Juste pour vous tenir informé, ils ont passé mon package en "declined" sans même m'envoyer un mail et après 2 semaine d'attente.
ça donne pas envie de se lancer sur un plus gros projet. Je vais essayer de le republier à 10$, voir si ils le sortent.
____________________________________________
Hop Boy

Avatar de l’utilisateur
Max
Messages : 8773
Inscription : 30 Juil 2011 13:57
Contact :

Re: shader jauge

Message par Max » 05 Avr 2013 14:35

dommage, et j'aurais pas parié sur cette décision, ton package étant bien sympa et représentant un réel internet... :?
Quand on compare à certains trucs de gauge déjà présent sur l'AS....hmmm j'comprends pas.....
Les voies du store sont décidément toujours aussi impénétrables....;
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: shader jauge

Message par Franck » 05 Avr 2013 16:16

Salut.

Declined sans mail, bizzard.

Je ne pense pas que ce soit une question de prix.
A suivre.
Dés fois j'bug, dés fois j'bug pas.

Avatar de l’utilisateur
Max
Messages : 8773
Inscription : 30 Juil 2011 13:57
Contact :

Re: shader jauge

Message par Max » 07 Avr 2013 15:11

Vu sur le forum off/AssetStore: http://forum.unity3d.com/threads/176185 ... y-occasion
un rapport ou un lien de cause à effet ?

Image
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « Scripts »