[Résolu] Traces sur un rendu de Shader Graph
Publié : 05 Juin 2021 21:45
Bonjour,
j'ai souhaité réaliser une shader avec Shader Graph, pour aller un peu plus loin. Ce shader avait pour but d'animer des objets de type étoiles à récupérer, potions, etc : petites oscillations de bas en haut, et une rotation sur l'axe Y. J'ai pris un cube pour tester le shader.
Question 1 (en fait, c'est un pack de trois...) : juste pour confirmer ce que j'ai lu, grâce au shader, les opérations d'oscillations et de rotation vont être effectuées par le GPU ? Par rapport à des centaines d'objets possédant un script faisant les mêmes opérations (oscillation + rotation), je devrais obtenir une amélioration (significative ?) des performances ?
Après quelques (ha ha ha) tâtonnements, le shader fonctionne. Mais j'ai un effet graphique désastreux sur mon cube :
J'ai d'abord pensé au shader, mais je n'ai rien trouvé. En revanche, l'effet disparait quand :
- sur la Directional Light, on passe Shadow Type de Soft Shadows à No Shadows
- idem sur le Cube, si on passe Lightning/Cast Shadows de On à Off
De plus, l'effet est plus ou moins marqué lorsqu'on change la valeur du Bias/Depth, mais même à 0, il subsiste des traces. Idem avec Bias/Normal, ou des combinaisons de Depth et Normal. Pas d'influence visible de Near Plane.
J'ai créé un nouveau projet, et j'ai eu ... un autre problème, que j'ai résolu. J'ai fait un second sujet, car ce problème peut arriver à quelqu'un qui fait un projet 3D, et qui le passe en URP à la main.
Joie de courte durée, car le cube avec mon shader a toujours son souci. J'ai plusieurs solutions, la moins "contaminante" est de mettre sur le cube Cast Shadows à Off, mais j'aimerais bien comprendre ce qui ne va pas.
Question 4 : à priori, mon Shader Graph a besoin d'un truc en plus.
Voici le graphe :
et le sous-graphe :
j'ai souhaité réaliser une shader avec Shader Graph, pour aller un peu plus loin. Ce shader avait pour but d'animer des objets de type étoiles à récupérer, potions, etc : petites oscillations de bas en haut, et une rotation sur l'axe Y. J'ai pris un cube pour tester le shader.
Question 1 (en fait, c'est un pack de trois...) : juste pour confirmer ce que j'ai lu, grâce au shader, les opérations d'oscillations et de rotation vont être effectuées par le GPU ? Par rapport à des centaines d'objets possédant un script faisant les mêmes opérations (oscillation + rotation), je devrais obtenir une amélioration (significative ?) des performances ?
Après quelques (ha ha ha) tâtonnements, le shader fonctionne. Mais j'ai un effet graphique désastreux sur mon cube :
J'ai d'abord pensé au shader, mais je n'ai rien trouvé. En revanche, l'effet disparait quand :
- sur la Directional Light, on passe Shadow Type de Soft Shadows à No Shadows
- idem sur le Cube, si on passe Lightning/Cast Shadows de On à Off
De plus, l'effet est plus ou moins marqué lorsqu'on change la valeur du Bias/Depth, mais même à 0, il subsiste des traces. Idem avec Bias/Normal, ou des combinaisons de Depth et Normal. Pas d'influence visible de Near Plane.
J'ai créé un nouveau projet, et j'ai eu ... un autre problème, que j'ai résolu. J'ai fait un second sujet, car ce problème peut arriver à quelqu'un qui fait un projet 3D, et qui le passe en URP à la main.
Joie de courte durée, car le cube avec mon shader a toujours son souci. J'ai plusieurs solutions, la moins "contaminante" est de mettre sur le cube Cast Shadows à Off, mais j'aimerais bien comprendre ce qui ne va pas.
Question 4 : à priori, mon Shader Graph a besoin d'un truc en plus.
Voici le graphe :
et le sous-graphe :