Draw call et impact sur les performances

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: Draw call et impact sur les performances

Message par zugsoft » 25 Août 2014 17:03

Salut,

Tu peux en effet avoir 20 drawcall et 1 millions de polygones pour 2img/s sur Mobile.
Tu peux avoir 1000 drawcalls et 1000 polygones pour 2img/s sur Mobile.
Les 2 sont importants.

Tu peux aussi avoir 20 drawcalls et 1000 polygones pour 2img/s si tu as des scripts pourri avec des boucles qui demandent beaucoup de calculs.

Tu dois faire ta propre experience sur divers téléphones.
Pour le même niveau, j'ai différentes scènes avec des objets en moins et des textures en moins, car sur un iPhone 4 ou un HTC One , il y a une grosse différence.
Le plus difficile c'est de faire un jeu qui tourne sur Android avec 512Mo de RAM.
Moon RTS

sotec
Messages : 542
Inscription : 21 Sep 2012 10:11

Re: Draw call et impact sur les performances

Message par sotec » 25 Août 2014 17:29

personnellement, mon appli en cours monte jusqu'à 1000 drawcall ( entre 50 et 1000 ) ( en grande partie a cause des post effects ^^ ) avec un maximum de 20 - 25 k polygones , et elle tourne entre 200 et 300 fps (sans avoir un ordi monstrueux, tiens il faudra que je test sur mon fixe pour le fun ^^ ) . Cela dit, c'est une appli Web ( qui tourne donc sur ordinateur et non mobile) .
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Draw call et impact sur les performances

Message par giyomuSan » 26 Août 2014 00:33

Dans un jeux vidéos, c'est principalement les polygones qui utilise les ressources, donc même avec 1000 draw call le jeu peu fonctionné si le nombre de polygone est limité.
Oula, non..tu aura plus de soucis avec les textures qu'un nombre eleve de vertex..les GPU sont tres efficaces sur ce point la ..
Mais que signifie ces draw call? C'est la question que je me pose. De nombreux tuto recommande de minimiser le nombre de draw call, mais pour moi ses draw call ne signifie pas grand chose: si je développe sur un PC très puissant, j'aurais moins de draw call qu'un PC d'entrée de gamme.
Et une foi que n'exporte mon jeu sur mobile, les smartphones n'ont pas les mêmes processeurs, carte graphique et RAM, et par conséquent le nombre de draw call sera plus grand.
Hmm , non ca marche pas comme ca , le nombre de draw call ne change pas selon la machine ( ce qui change c'est que selon la plateforme pour un nombre X de drawcall ton Fps va souffrir plus ou moins.

Pour penser simplement , les draw call representent le nombre d 'objets total qui doit etre redessine a l'ecran ( vu par ta camera donc ) a chaque frame.

Ceci dit c'est pas totalement vrai car d'autre parametres ont leur influences la dessus.

- Le batching, si certain de tes object dans la scene partage le meme materiel et texture ( et qu 'ils soient en mesure de beneficier du batch dynamic, depend du nombre de vertex de ton objet ) tout ces objet la compterons pour 1 seul draw call
D'ou l'interet d'utiliser des atlases de textures, par example 10 objets de type item pourrait avoir toute leur texture sur une seul grande texture, ayant le meme materiel.

- Si tu as des ombres dans ta scene , tout les objet qui recevrons ces ombres vont augmenter le nombre de draw call car la scene devra redessiner ces objet une fois de plus pour gerer les ombres

- De meme les objets affecte par des lumieres ( pixel light ) aussi augmenterons le nombre de draw call

- les objets transparents ( meme si il utilisent le meme materiel et texture ) du fait qu'il faut gerer l'ordre dans lequel ils sont affiches a l'ecran, ca peut aussi se traduire par une augmentation des draw call , lorsque que trop d'objets transparents se superposent par example

Donc il y a pas mal de parametres autour des draw call qui peuvent faire fluctuer le nombre total.

1000 draw call sur mobile , c'est un reve ..ton jeu tournera a 5 fps..

pour les mobile ou tablette de derniere generation entre 100 et 200 max ca peux encore le faire.

Maintenant les draw call c'est une partie du probleme, c'est draw call vont generer un certain temps, qui se traduit par "combine de milliseconds pour que ma scene soit redessine a l'ecran"

Si par exemple tu veux que ton jeu tourne a 60fps ( c'est le max sur mobile ) , ca veux dire que tout ton jeu incluant temps de rendu, physics, script update, animation update etc..devront s'effectuer dans un temps max de 16,7 milliseconds par frame.

Si ton temps de rendu par example est deja de 13ms, bah il te reste plus grand chose pour le reste.

Ensuite selon les capacitees diverse des different mobile ( CPU surtout ) toutes ses valeurs de temps changent , et parfois beaucoup.

voila , l 'optimisation sur mobile c'est pas simple , meme si a l'heure actuel ca devient plus facile car les capacitees deviennent meilleurs au fil des annees , neanmois, ca reste du mobile et peu pas etre gerer de al meme facon que pour un PC.

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Draw call et impact sur les performances

Message par ZJP » 26 Août 2014 00:54

Développer pour Mobile est presque une spécialité. Unity Technologies vend parfois du rêve avec des slogans comme "Développer une fois, publier partout". :mrgreen:

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Draw call et impact sur les performances

Message par giyomuSan » 26 Août 2014 00:55

ZJP a écrit :Développer pour Mobile est presque une spécialité. Unity Technologies vend parfois du rêve avec des slogans comme "Développer une fois, publier partout". :mrgreen:
remplacer "Developper" par "En chier" :lol:

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Draw call et impact sur les performances

Message par ZJP » 26 Août 2014 00:58

giyomuSan a écrit :
ZJP a écrit :Développer pour Mobile est presque une spécialité. Unity Technologies vend parfois du rêve avec des slogans comme "Développer une fois, publier partout". :mrgreen:
remplacer "Developper" par "En chier" :lol:
Ça, c'est vraiment une spécialité. :lol:

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Draw call et impact sur les performances

Message par Scorpionnocrag » 26 Août 2014 21:38

l'architecture est complètement différente, la PSP est tailler pour le jeu, le note 3 est tailler pour ... rien de spécial.

De plus développer pour PSP = développer pour PSP

développer pour Android = développer ... un truc qui va marcher au mieu sur le plus de chose içi présent : http://i.telegraph.co.uk/multimedia/arc ... 31434b.jpg

C'est pour ça que les Iphones ont des jeux parfois bien foutu et pas dégueulasse du tout comparer à android, et que certain studio s'y spécialise, on retourne dans le shéma "simple" développer pour Iphone 6 = développer pour Iphone 6
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Draw call et impact sur les performances

Message par Scorpionnocrag » 27 Août 2014 13:25

Gto3 a écrit :le plus impressionnant c'est que le galaxy s2 est tout aussi performants qu'un galaxy note 3.
Et ça ne va pas aller en s'arrangeant ... le note 4 (d'après les rumeurs, RIEN n'est officiel) il "devrait" y avoir un écran QHD (2560 x 1440) sans un réel bon du processeur / gpu ... bref ... la kikou résolution qui n'arrête pas ...
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: Draw call et impact sur les performances

Message par zugsoft » 27 Août 2014 13:48

Fais un Screen.SetResolution(800,480,true); dans ton jeu pour voir la difference en img/s, ca m'interesse.
Moon RTS

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Draw call et impact sur les performances

Message par Scorpionnocrag » 27 Août 2014 15:19

Gto3 a écrit :J'ai déjà eu l’occasion d'utiliser un smartphone chinois de 5.5" avec un écrans 1440P, et concrètement on ne voit aucune différence par rapport à un écrans de 1080P.
Attention avec ce genre d'affirmation, on disait déjà ça des téléphones HD a FHD, pourtant moi je la vois la différence, et je suis pas le seul (certes, je la vois UNIQUEMENT, si je me concentre sur ce point, mais cela signifie que c'est plus agréable (pour moi) d'avoir du FHD que de l’HD, que ce soit consciemment, ou non. Comme je sais que beaucoup ne partage pas ce point de vue, je vais l'illustrer, c'est comme la direction assister sur une voiture que vous prenez une direction assistée de 5 ans, ou une toute récente, il y aura des améliorations, mais très franchement ... quand on tourne le volent, 99.999999% des gens s'en cognent, ils veulent juste tourner à droite ou à gauche et pourtant, il y a un "mieux", c'est pareil avec un écran, que l'utilisateur ne ce dise pas toutes les 5 secondes "WOW j'ai trop un bel écran" ne veut pas dire qu'il n'y a pas un ajout de confort)

PS : malgré ce message, je ne suis pas pro "faite moi un écran 546316564654k avec autant de pixels qu'il y a d'atome dans l'univers" j'étais déjà content de l’HD sur mon tel, et je fais partie de la secte secrète du nom de "MAIS STOP AVEC VOS ÉCRANS ET SORTER NOUS DE VRAIE BATTERIE", je vous inviterai un jour dedans, si "on" vous choisi :twisted: :twisted: .
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Verrouillé

Revenir vers « Unity le logiciel »