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 :
[Résolu] Traces sur un rendu de Shader Graph
[Résolu] Traces sur un rendu de Shader Graph
Dernière édition par jmhoubre le 13 Sep 2022 18:37, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Traces sur un rendu de Shader Graph
Salut,
pour moi c'est plutôt du ressort des Quality Settings et de la configuration des ombres qu'autre chose.
Si tu places un cube avec un shader lambda à côté, tu as une meilleure ombre?
pour moi c'est plutôt du ressort des Quality Settings et de la configuration des ombres qu'autre chose.
Si tu places un cube avec un shader lambda à côté, tu as une meilleure ombre?
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Traces sur un rendu de Shader Graph
Bonjour,
merci de prendre le temps de regarder ce souci. Voici une petite vidéo pour montrer un shader lambda, et illustrer comment j'ai pu minimiser les traces en jouant sur différents paramètres.
Souci de traces sur un shader réalisé avec Shader Graph
Je ne sais pas si c'est lié et important, mais les traces ne sont visibles que sur 2 faces.
Avant de perdre trop de temps, j'aimerais que tu confirmes si l'utilisation d'un shader pour bouger mes objets ramassables passe par le GPU et soulage le processeur. Le gain de performances vaut-il le coût ? (je peux avoir jusqu'à 150 objets avec ce shader à l'écran).
Les statistiques disponibles dans la fenêtre Game (onglet Stats) sont-elles fiables ?
Encore merci.
merci de prendre le temps de regarder ce souci. Voici une petite vidéo pour montrer un shader lambda, et illustrer comment j'ai pu minimiser les traces en jouant sur différents paramètres.
Souci de traces sur un shader réalisé avec Shader Graph
Je ne sais pas si c'est lié et important, mais les traces ne sont visibles que sur 2 faces.
Avant de perdre trop de temps, j'aimerais que tu confirmes si l'utilisation d'un shader pour bouger mes objets ramassables passe par le GPU et soulage le processeur. Le gain de performances vaut-il le coût ? (je peux avoir jusqu'à 150 objets avec ce shader à l'écran).
Les statistiques disponibles dans la fenêtre Game (onglet Stats) sont-elles fiables ?
Encore merci.
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Traces sur un rendu de Shader Graph
Salut,
Normalement, si ça passe par le GPU c'est plus rapide que le CPU, par contre, je ne peux te dire le gain.
Par l'animation traditionnelle, le batch va regrouper les animations et meshs pour limiter l'utilisation du CPU, c'est optimisé.
Par l'animation par shader, l'instancing va faire de même pour le GPU.
Sur un PC patate, peut être que ça se ressentira, sur un PC actuel, ce sera moins évident, surtout avec le V-Sync qui va limiter les FPS.
Souvent la question se pose pour les animations avec squelette. Faire du GPU instancing des animations est un réel gain comparé au SkinRenderer d'Unity. Mais là, on parle de bones, de skinning, de rig, bref de choses très lourdes, pour la gestion de foules ou d'armées, pas une pièce qui monte et qui descend.
Les stats d'Unity, je m'en méfie, surtout le FPS.
Concernant la vidéo, ben je n'ai pas trop d'explication en fait. Ce genre de problème, je l'ai vu avec une mauvaise résolution de la shadow maps et un bias trop élevé, donc j'étais parti sur cette explication, mais si le cube standard n'a pas ce souci, ce ne doit pas être ça. A moins qu'il ne génère pas d'ombre, du coup, la comparaison est biaisée.
Normalement, si ça passe par le GPU c'est plus rapide que le CPU, par contre, je ne peux te dire le gain.
Par l'animation traditionnelle, le batch va regrouper les animations et meshs pour limiter l'utilisation du CPU, c'est optimisé.
Par l'animation par shader, l'instancing va faire de même pour le GPU.
Sur un PC patate, peut être que ça se ressentira, sur un PC actuel, ce sera moins évident, surtout avec le V-Sync qui va limiter les FPS.
Souvent la question se pose pour les animations avec squelette. Faire du GPU instancing des animations est un réel gain comparé au SkinRenderer d'Unity. Mais là, on parle de bones, de skinning, de rig, bref de choses très lourdes, pour la gestion de foules ou d'armées, pas une pièce qui monte et qui descend.
Les stats d'Unity, je m'en méfie, surtout le FPS.
Concernant la vidéo, ben je n'ai pas trop d'explication en fait. Ce genre de problème, je l'ai vu avec une mauvaise résolution de la shadow maps et un bias trop élevé, donc j'étais parti sur cette explication, mais si le cube standard n'a pas ce souci, ce ne doit pas être ça. A moins qu'il ne génère pas d'ombre, du coup, la comparaison est biaisée.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Traces sur un rendu de Shader Graph
Pas de chance pour toi, il semblerais que ce soit simplement un bug ShaderGraph/URP.
Il va falloir attendre un fix.
Il va falloir attendre un fix.