Page 1 sur 1

[Résolu] Pb shader transparent sur terrain

Publié : 07 Mars 2018 13:49
par CSSMMB
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 !

Re: Pb shader transparent sur terrain

Publié : 07 Mars 2018 13:55
par CSSMMB
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)

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

Publié : 07 Mars 2018 14:00
par boubouk50
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.

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

Publié : 07 Mars 2018 16:51
par CSSMMB
Merci de ta réponse !

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