[Résolu] RenderTexture avec background de caméra transparent

Questions à propos du scripting Shader.
Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: RenderTexture avec background de caméra transparent

Message par cayou66 » 06 Avr 2014 17:36

J'ai changé les lignes que tu m'a dit mais aucune différence.
Ce qui est bien par contre c'est que même si mon personnage a du noir il apparaît quand même, autant que les autres couleurs, seule la couleur de la caméra disparaît si elle est noire.

Edit: Si la ligne Blend SrcAlpha SrcAlpha n'est pas mise le background redevient opaque.

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

Re: RenderTexture avec background de caméra transparent

Message par cayou66 » 06 Avr 2014 17:47

Je suis en train d'essayer au pif toutes les combinaisons de Blending, avec la page d'aide d'Unity.
Pour l'instant le meilleur est Blend DstColor Zero, qui assombrit un peu le personnage, mais qui fait disparaitre le fond de la caméra, mais si la couleur est blanche !
Par contre j'ai un souci de Z depth avec ça...Ma texture passe en arrière de mes textures NGUI, faut que je règle ça aussi.

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: RenderTexture avec background de caméra transparent

Message par F@B » 06 Avr 2014 17:57

le rendertexture je ne peux pas tester j'ai la free, mais peut tu vois l'image dans l'éditeur? et si oui controller la couche alpha?
si la couche alpha il te faut utiliser simplement un shader transparent cutout soft edge

sinon T'as testé le shader donne sur le lien plus haut en remplacement de couleur?

Code : Tout sélectionner

Shader "Custom/ChromaKey" {
	Properties {
		_MainTex ("Base (RGB)", 2D) = "white" {}
	}
	SubShader {
		Tags { "Queue"="Transparent" "RenderType"="Transparent" }
		LOD 200
		
		CGPROGRAM
		#pragma surface surf Lambert alpha

		sampler2D _MainTex;

		struct Input {
			float2 uv_MainTex;
		};

		void surf (Input IN, inout SurfaceOutput o) {
			half4 c = tex2D (_MainTex, IN.uv_MainTex);
			o.Albedo = c.rgb;
			
			// #################################
			//
			// CHANGE THESE VALUES DEPENDING ON WHAT SHOULD BE TRANSPARENT
			//
			// #################################
			if (c.g > 200.0/255.0 && c.r < 200.0/255.0 && c.b < 200.0/255.0)
			{
				o.Alpha = 0.0;	
			}
			else
			{
				o.Alpha = c.a;
			}				
		}
		ENDCG
	} 
	FallBack "Diffuse"
}

ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

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

Re: RenderTexture avec background de caméra transparent

Message par cayou66 » 06 Avr 2014 18:03

Non pas encore, merci de ton implication en tout cas 8-)
J'ai finalement trouvé comment changer la renderqueue de NGUI, maintenant ma texture passe en avant de mon UI, c'est parfait.
J'ai gardé le shader en mettant " Blend DstColor Zero" comme mode de blending et voici le résultat:
erreur_rendertexture_resolved.png
erreur_rendertexture_resolved.png (239.66 Kio) Consulté 6439 fois
Qu'est-ce que tu en penses?

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: RenderTexture avec background de caméra transparent

Message par F@B » 06 Avr 2014 18:07

ha bin parfait!! désolé j'etait au tel en meme temps du coup j'etais présent mais pas réactif! surtout j'etais partit sur une mauvaise piste.

du coup le blend est un multiplicatif, tu avais donc bien un alpha dans ta texture mais c'est NGUI qui foutais le bazard!

a garder précieusement pour une prochaine fois! ;)
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

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

Re: RenderTexture avec background de caméra transparent

Message par cayou66 » 06 Avr 2014 18:11

F@B a écrit :ha bin parfait!! désolé j'etait au tel en meme temps du coup j'etais présent mais pas réactif! surtout j'etais partit sur une mauvaise piste.

du coup le blend est un multiplicatif, tu avais donc bien un alpha dans ta texture mais c'est NGUI qui foutais le bazard!

a garder précieusement pour une prochaine fois! ;)
Exact ! J'vais garder ça au chaud :)
Merci beaucoup à toi en tout cas !

Voilà le résultat un peu plus habillé (on voit encore le gradient, faudra que j'ajuste ça):
erreur_rendertexture_result.png
erreur_rendertexture_result.png (201.29 Kio) Consulté 6437 fois

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

Re: [Résolu] RenderTexture avec background de caméra transpa

Message par Franck » 06 Avr 2014 19:51

Une chose qui m'a aidé, contre les "bug de transparence", c'est d'utiliser une camera en orthographique au lieu de perspective.
Désolé si je suis encore hors sujet, mais ça peut valoir le coup d'essayer.

édit: expérience réalisée avec shader transparent/diffuse.
Dés fois j'bug, dés fois j'bug pas.

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

Re: [Résolu] RenderTexture avec background de caméra transpa

Message par cayou66 » 06 Avr 2014 20:21

Ah bon? Intéressant, mais j'ai besoin d'une caméra perspective, pour donner l'impression de 3d.
Je pourrais quand même tester si je vois une différence.

Répondre

Revenir vers « les Shaders »