SpeedTrees - Performance

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Répondre
brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

SpeedTrees - Performance

Message par brunom99 » 30 Jan 2016 15:14

Hello a tous

Bon apres avoir constater que les arbres faisaient chuter mon FPS, j'ai creer un nouveau projet juste pour tester les perfs de SpeedTrees.

Voici deux captures :

Sans les arbres :
Image

Avec les arbres :
Image

Que dire ? 40 FPS de difference...
Test effectué avec 1000 arbres "Broadleaf_Desktop"

Go pour l'optimisation ? Des idees ? je vais voir deja les materials des lods de speedtrees...

brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

Re: SpeedTrees - Performance

Message par brunom99 » 30 Jan 2016 15:34

Premier essai :

- Quality settings : Shadow Resolution de High a Medium.
- On enleve les NormalMap sur les Materials des LODS 1 et 2
- Reparametrage du Lod Group

+27 FPS

Image

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: SpeedTrees - Performance

Message par Max » 30 Jan 2016 17:41

Comme quoi, moyennant quelque changements on arrive à quelques résultats.
Maintenant, j'ai regardé les arbres du package (le free), c'est déjà des bestiaux assez conséquent, donc forcement pas évident à intégrer en nombre ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

Re: SpeedTrees - Performance

Message par brunom99 » 30 Jan 2016 17:57

ouais c'est abusé ...

Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

Re: SpeedTrees - Performance

Message par Titan » 30 Jan 2016 21:37

sachant que tu est vraisemblablement cappé à 60 FPS, ton "-40" ne veut pas dire grand chose Tu devrais regarder les temps de rendu dans le profiler.
Tu les a mis static tes arbres ? parce que 6k drawcall c'est tendu.
Dernière édition par Titan le 30 Jan 2016 21:42, édité 1 fois.
____________________________________________
Hop Boy

brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

Re: SpeedTrees - Performance

Message par brunom99 » 30 Jan 2016 21:41

le -40 est un minimum.... on le voit dans la fenetre de stat...

une chose est sure, avec les arbres ca rame... sans, ca marche niquel.

Les mettres en static ? Jen sais rien, je place les arbres en utilisant le terrain... cest au terrain et speedtrees de gerer ca je pense... car on a pas la main sur cette propriete...

brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

Re: SpeedTrees - Performance

Message par brunom99 » 31 Jan 2016 21:46

Bon decidement je comprends pas....

J'ai des soucis de FPS, j'avais longtemps cherché si j'avais pas merdé dans mon code, ou dans mes modeles pour constater que c'est vraiment le terrain unity + les arbres qui foutent la merde...

Voici 4 captures d'ecran :

1 - 32 FPS : very high avec le terrain et les arbres
Image

2 - 44 FPS : base map distance du terrain mis à 0 (du coup j'ai descendu bcp de texture a 512 mais rien n'y fait)
Image

3 - 53 FPS : les arbres sont plus la
Image

4 - 60 FPS : le terrain n'est plus la ...
Image

Quelle est la solution ? je vire le terrain et du coup adieu tout le boulot que j'ai fait dessus ?
Le pire c'est quand je vois la demo de presentation des devs de unity où ils n'utilisent pas leur propre outils Terrain....

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: SpeedTrees - Performance

Message par Freelax » 31 Jan 2016 21:57

Salut,

L'outil terrain n'est pas du tout adapté depuis un bon moment. Pas plus optimiser que pratique, autant passer par une modélisation pur.
Image

brunom99
Messages : 200
Inscription : 02 Mai 2015 15:41

Re: SpeedTrees - Performance

Message par brunom99 » 31 Jan 2016 22:00

heuuu oui ok mais j'ai pas envie de perdre 6 mois ..... surtout que j'utilise bcp la propriete getTextureAt pour placer certain objet, etc... jouer les sons quand le perso marche en fonction de la texture...

Il y a t'il une possibilité d'exporter le terrain vers un certain format, puis, le reimporter en tant que modele ET etre capable de memoriser l'ensmble des textures pour continuer a savoir quelle texture est presente a tel point du terrain ?

Ca en fait des questions ;)

Avatar de l’utilisateur
MasterNovice
Messages : 610
Inscription : 23 Juil 2011 16:03

Re: SpeedTrees - Performance

Message par MasterNovice » 31 Jan 2016 23:47

Salut,

un sujet où l'on en parle : viewtopic.php?f=2&t=11772

Il a plein d'explications sur le net sur l'export de terrain de Unity. Comme l'a dit Freelax, de base le terrain d'Unity n'est clairement pas optimisé. Le mieux c'est de l'oublier ou inverstir dans certains assets qui améliorent les perfs à ce niveau là. Je vois que tu parle souvent de taille de texture, sache que ça n'influence pas (ou quasiment pas) le framerate mais seulement la mémoire. Le plus gros point à regarder ce sont les polygones (tris). Unity possède un index buffer en 16 bits pour les afficher et c'est vraiment "pourris". Tu ne peux pas excéder 65534 vertices par modèles. Ce qui augmente de ce fait les draw calls. Si tu dépasse ce nombre, unity découpera lui même le modèle en plusieurs parties de 65K. Ca marche aussi pour le terrain. Un terrain seul (vierge) peut se retrouver à afficher un paquet de drawcalls en fonction de son nombre de polygones.

Si tu veux optimiser tu dois donc faire très attention :

- Au nombre de tris
- Au nombre de drawcalls (fusionner au maximum les objets et limiter les materials)
- A l'éclairage (qui peux multiplier énormément le nombre de polygone (préférer utilisé des lightmaps et des shaders qui gèrent eux même la lumière pour les lods éloignés)

Répondre

Revenir vers « Unity le logiciel »