|
Gestion nombreuses herbes |
|
---|---|---|
OverdOzed
![]() ![]() Inscrit:
26/12/2012 23:15 Post(s): 395
|
Salut à tous.
Actuellement, en train de faire une grande map je me heurte à un problème de performance concernant l'herbe. J'ai à peu près 2 000 objets représentant de l'herbe ayant chacun 48 vertices (plusieurs touffes à chaque fois) Il s'agit de la même géométrie et du même material dupliqués avec une texture 1024px. Ils sont tous animés avec des shapes keys pour représenter une légère brise. Ils ont donc une ligne de brique logique. Ils sont tous évidemment en no collision en ce qui concerne la physique. Je n'utilise pas le clipping de la caméra. Voilà la situation :D Désormais et étant donné que la perf en prend un coup à cause de tout ces petits vertices qui gigotent, je souhaite trouver des astuces pour alléger sans altérer l'aspect graphique. J'ai pensé à un script pour virer toutes ces lignes de briques logiques. Du style, si tel objet à cette propriété, exécuter tel animation. Je devrais donc leur mettre à tous cette propriété. Je me demande si je pourrais pas identifier autre chose comme le material ce qui m'eviterais d'ajoutais une property. J'aurais besoin de votre avis. Sinon j'ai aussi pensé à réunir toutes mes herbes en un mesh unique. Ce qui fonctionne car l'animation en shape key est sauvegardée mais le problème c'est que je ne pourrais plus y toucher ensuite. Je pourrais plus en ajouter à moins de refaire à chaque fois l'animation pour chaque herbes ajoutées. Là aussi j'ai besoin d'avis. Autre idée, faire en sorte que l'animation des herbes ne démarrent qu'à partir d'une certaine distance ou carrément ne les faire apparaitrent qu'à partir de cette certaine distance. Bref, je cherche des solutions et des astuces pour gérer ce problème en évitant les trucs bateaux du genre, faut supprimer tu en as de trop ![]()
Contribution le : 07/09/2017 09:35
|
|
_________________
Blog ; http://anarchie-jeu.over-blog.com |
||
![]() ![]() |
|
Re: Gestion nombreuses herbes |
|
---|---|---|
OverdOzed
![]() ![]() Inscrit:
26/12/2012 23:15 Post(s): 395
|
J'utilise en effet des plans avec de l'alpha et de la transparence pour l'herbe. Quand je dis 48 vertices il s'agit de 12 fois 4 vertices (les plans)
L'animation est faite avec les shape keys et le pivot est bien au niveau de la base. Par contre je n'utilise pas le billboard. En fait, le problème n'est pas vraiment à ce niveau mais plutôt dans la gestion massive d'herbes. Mon environnement est assez grand à vrai dire.
Contribution le : 07/09/2017 11:28
|
|
_________________
Blog ; http://anarchie-jeu.over-blog.com |
||
![]() ![]() |
|
Re: Gestion nombreuses herbes |
|
---|---|---|
OverdOzed
![]() ![]() Inscrit:
26/12/2012 23:15 Post(s): 395
|
Contribution le : 07/09/2017 11:35
|
|
_________________
Blog ; http://anarchie-jeu.over-blog.com |
||
![]() ![]() |
|
Re: Gestion nombreuses herbes |
|
---|---|---|
OverdOzed
![]() ![]() Inscrit:
26/12/2012 23:15 Post(s): 395
|
Sziuny, en fait j'utilise UPBGE et il propose une option pour des instances afin d'économiser en ressource. Ce qui est bien utile.
Ok Redstar. J'ai observé les derniers jeux récemment sortie (FF15, Star Océan 5..) les herbes sont gérées dynamiquement dans les decors larges. Elles disparaissent selon la distance à première vue. Sinon c'est une bonne idées de faire un système de grille en regroupant différents objets et en ajoutant des LOD. Dans un premier temps, je vais essayé de faire un script pour que les anims s'arrêtent selon la distance.
Contribution le : 07/09/2017 14:41
|
|
_________________
Blog ; http://anarchie-jeu.over-blog.com |
||
![]() ![]() |
|
Re: Gestion nombreuses herbes |
|
---|---|---|
OverdOzed
![]() ![]() Inscrit:
26/12/2012 23:15 Post(s): 395
|
Bon j'ai récupéré mes 60 FPS assez étrangement ou du moins je viens de découvrir la chose.
Ça pourrait vous être utile au cas où. J'avais créer une animation pour des arbres haut poly avec une armature à plus de 500 os. Elle influait sur beaucoup de branches. J'ai repris le modèle et j'ai low polysé le tout. Le tronc, les branches, le feuillage et l'armature en elle même que j'ai réduit à 6 os. Dans l'animation en elle même par contre me restais les channels des anciens os qui avait été supprimés et à première vue, surprise, même si les os ont été supprimés cela bouffé les performances en jeu. Il faut donc supprimer les channels qui ne sont plus utilisés pour gagner en performance ![]() Néanmoins, même si cela tourne sur mon PC j'aimerais optimiser et donc la question principale demeure =)
Contribution le : 07/09/2017 16:29
|
|
_________________
Blog ; http://anarchie-jeu.over-blog.com |
||
![]() ![]() |
|
Re: Gestion nombreuses herbes |
|
---|---|---|
Fou Furieux du Clan
![]() ![]() Inscrit:
07/04/2013 10:31 Post(s): 143
|
Salut Anarchy62,
Si tu utilises le UPBGE regarde du coté de la "Geometry instancing", ça fait gagner pas mal de fps(mais il faut que l'objet soit statique). voilà deux liens: https://doc.upbge.org/releases.php?id=0.0.4 https://www.youtube.com/watch?v=RmMOXxTulqQ Sinon il y a aussi le mesh batching qui fait gagner des fps, si j'ai bien tout compris quand le jeu se lance il regroupe tout les mesh avec les même matérials en un seul objet. https://doc.upbge.org/releases.php?id=0.1.4 https://www.youtube.com/watch?v=98G5bQ_JLro Et pour finir il y a ce shader https://blenderartists.org/forum/showthread.php?370844-Procedural-Grass-Geometry-Shader-GLSL-4-0-v-3-amp-amp-GLSL-1-5-v-2-AMD-fully-supported! par contre là je ne sais pas ce qu'il faut, mais il a l'air pas mal. Voilà je s'espère que ça va t'aider.
Contribution le : 07/09/2017 19:21
|
|
![]() ![]() |