[Résolu] Pb shader transparent sur terrain

Questions à propos du scripting Shader.
CSSMMB
Messages : 8
Inscription : 07 Mars 2018 13:34

[Résolu] Pb shader transparent sur terrain

Message par CSSMMB » 07 Mars 2018 13:49

Bonjour,

Nouvelle sur ce forum, je n'ai pas trouvé ma réponse, mais peut être suis-je passé à côté (dans ce cas sorry !)

J'ai créé un terrain auquel j'ai appliqué un shader mask transparent (car je le veux invisible) :

Code : Tout sélectionner

Shader "Custom/Mask" {
 
	SubShader {
		// Render the mask after regular geometry, but before masked geometry and
		// transparent things.
 
		Tags {"Queue" = "Geometry+10" }
 
		// Don't draw in the RGBA channels; just the depth buffer
 
		ColorMask 0
		ZWrite On
 
		// Do nothing specific in the pass:
 
		Pass {}
	}
}
Depuis peu, j'ai un bug visuel. Mes éléments de décors se fondent dans le terrain par artéfacts visuels décalés.

Image

J'imagine que c'est un problème de renderQueue, mais je n'arrive pas à la corriger.

Je n'arrive pas à appliquer cette solution (la méthode .material étant absente) (http://wiki.unity3d.com/index.php?title=DepthMask)

et en changeant manuellement dans le shader lui-même, cela ne change pas le pb.


Avez-vous déjà eu ce problème et comment l'avez-vous résolu ?

Merci d'avance !
Pièces jointes
bug.jpg
bug.jpg (91.02 Kio) Consulté 1113 fois
Dernière édition par CSSMMB le 07 Mars 2018 13:55, édité 1 fois.

CSSMMB
Messages : 8
Inscription : 07 Mars 2018 13:34

Re: Pb shader transparent sur terrain

Message par CSSMMB » 07 Mars 2018 13:55

Bon je viens de résoudre mon problème seule comme une grande.

Je laisse le post pour qu'il puisse servir à d'autres.

C'était bien un problème de Render Queue.

Il suffisait de changer

Code : Tout sélectionner

Tags {"Queue" = "Geometry+10" }
par :

Code : Tout sélectionner

Tags {"Queue" = "Geometry+1000" }
(j'avais testé avec des chiffres plus petits et ça ne marchait pas, à partir de +1000 dans mon cas, ça fonctionne)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5404
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: [Résolu] Pb shader transparent sur terrain

Message par boubouk50 » 07 Mars 2018 14:00

Salut,
Alors pour que tu saches un peu pourquoi il t'a fallu le geometry+1000, il faut aller voir du côté du RenderQueue:
https://docs.unity3d.com/Manual/SL-SubShaderTags.html
Background is 1000
Geometry is 2000
AlphaTest is 2450
Transparent is 3000
and Overlay is 4000

Les transparences sont dessinées à partir du seuil 2450 pour l'alphaTest et 3000 pour le blending.
Geometry+1000 vaut donc 3000 donc tu es dans la passe des transparences par blending. Tu peux donc le remplacer par Transparent.
"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

CSSMMB
Messages : 8
Inscription : 07 Mars 2018 13:34

Re: [Résolu] Pb shader transparent sur terrain

Message par CSSMMB » 07 Mars 2018 16:51

Merci de ta réponse !

En effet cela marche.
C'était donc mon geometry + 10 qui forcément posait problème :-)

Répondre

Revenir vers « les Shaders »