[RESOLU] Shader: NormalMap et Android

Questions à propos du scripting Shader.
Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

[RESOLU] Shader: NormalMap et Android

Message par boubouk50 » 16 Oct 2015 15:18

Ugh forum!
Ours scintillant des montagnes cherche réponse.

J'ai un souci avec les normalmaps et Android lorsque je crée un shader. Voici le bout incriminé:

Code : Tout sélectionner

void surf (Input IN, inout SurfaceOutput o) {
	fixed3 normalTex = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap)).xyz;
	o.Normal = normalize (normalTex);
	fixed rim = 0.92 - (dot (IN.viewDir, o.Normal) * 0.8);
	o.Albedo =  _DiffuseColor.rgb * rim;
	o.Alpha = 1;
}
Partout je vois cette manière de récupérer la normalMap, et ça fonctionne en StandAlone, mais dès que je passe sous Android, les normales sont fausses. Ici, j'affiche un fresnel qui prend en compte la normalMap. Le résultat:
Image
Précision sur le shader:
- pas de lumière (Unlit)
- le fresnel marche sans la NormalMap

Je commence à vouloir taper ma tête sur mon clavier... :gene:
Merci à vous.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
SamothSamoth
Messages : 168
Inscription : 22 Avr 2015 18:03
Localisation : Lyon, Villefranche sur Saone, Parcieux

Re: Shader: NormalMap et Android

Message par SamothSamoth » 19 Oct 2015 08:19

Salut le Boubouk !

Alors c'est facile, tu fais...

o.allparam = Asgoodlookingas (Nude.JasminBlack); :D

Non, sans rire.. T'as mis quoi en "#pragma" et en "FallBack" ? Parceque c'est ptetre ca qui chie et qui fais que ca marche en Stand et pas en Android.
------------------------------------------------------------------------------------ LIVE FAST DIE YOUNG -------------------------------------------------------------------------------------

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Shader: NormalMap et Android

Message par boubouk50 » 19 Oct 2015 09:20

Code : Tout sélectionner

#pragma surface surf NoLighting

fixed4 LightingNoLighting (SurfaceOutput s, fixed3 lightDir, fixed atten)
{
	fixed4 c;
	c.rgb = s.Albedo;
	c.a = s.Alpha;
	return c;
}
...
FallBack "Diffuse"
Le shader sans la normalMap fonctionne sous Android, j'ai bien le fresnel comme il faut, mais dès que je mets une normalMap, ça foire. Pourtant les normalMaps sont censées passer sous Android.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

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

Re: Shader: NormalMap et Android

Message par F@B » 19 Oct 2015 09:46

supprime le fallback pour voir si t'as du rose ;) car en effet il passe sur le fallback et donc le diffuse.

ça ne te donnera pas l'erreur par contre... ça confirmera juste qu'il y a bien une erreur sous android dans le shader.
ʕ·͡ᴥ·ʔ ==> 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
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Shader: NormalMap et Android

Message par boubouk50 » 19 Oct 2015 10:50

Il passe sans le fallback. Personnellement, pour avoir fait plusieurs tests, je persiste à penser que la normale sortie de la texture s'applique mal. Un peu comme si tu appliquais une normalmap en tangent space au lieu de world ou object space. Pourtant, la normalMap est créée sous Unity à partir d'une heightmap.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Iwa
Messages : 1131
Inscription : 25 Avr 2012 16:20
Contact :

Re: Shader: NormalMap et Android

Message par Iwa » 19 Oct 2015 10:59

Je dis surement pas un truc malin mais, on dirait presque que c'est mal tilé? comme si ton tilling/offset s'appliquait différement.

Mais je suis pas assez compétente en shader, juste que effectivement je suis d'accord sur le fait que la normal map ça marche bien normalement :s
"N'est stupide que la stupidité Monsieur..." - Forest Gump
... sauf si tu lis pas ça :)

Si tu as tout ce qu'il te faut, merci de penser à basculer ton sujet en [RESOLU] en éditant ton tout premier post ;)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Shader: NormalMap et Android

Message par boubouk50 » 19 Oct 2015 11:09

Les lignes de démarcation au sommet de la sphère sont dues aux UVs de la sphère primitive d'Unity. Dans le cas présent, il était plus judicieux de montrer un fresnel sur une sphère que sur un plan, mais au final, ce sera sur un plan donc cette arête franche n'est pas à prendre en compte dans le mauvais fonctionnement du shader.

EDIT - Est-ce possible que ce soit dû au fait de ma définition du Unlit par le LightingNoLighting? Je veux dire par là, est-ce que je dois définir l'utilisation de la normale dans ce truc? Parce que bon, j'ai compris que ça servait à la manière de rendre la lumière mais je l'ai un peu repomper du net, sans trop trop me renseigner... :roll:
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

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

Re: Shader: NormalMap et Android

Message par ZJP » 19 Oct 2015 16:53

Code : Tout sélectionner

void surf (Input IN, inout SurfaceOutput o)
Donc apparemment tu utilises les nouveaux shaders PBR d'Unity 5. Ça donne quoi en "Legacy"?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Shader: NormalMap et Android

Message par boubouk50 » 19 Oct 2015 17:04

Ah fuck, oui je suis parti d'un Standard (par défaut dans Unity), il faut que je sois plutôt sur du "Legacy" je pense. Merci, je n'y avais pas pensé.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

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

Re: Shader: NormalMap et Android

Message par ZJP » 19 Oct 2015 17:55

boubouk50 a écrit :Merci, je n'y avais pas pensé.
:-D
Espérons que cela règle le souci.

Répondre

Revenir vers « les Shaders »