[Question] Nombres de polygones maximum

Toutes les questions sur le développement Mobile, y compris la partie script.
Zuke
Messages : 22
Inscription : 19 Sep 2013 15:44

[Question] Nombres de polygones maximum

Message par Zuke » 25 Sep 2013 11:50

Bonjour à tous,

Récemment inscrit sur ce forum, pour un projet qui sera détaillé dans une grosse semaine dans la partie collaboration, je me tourne vers vous pour une question que je pensais simple, mais sur laquelle je ne suis pas arrivé à trouver de réponse précise.
Donc, soit je ne sais pas chercher. Soit je pose mal ma question :roll:

Question :
Combien de polygones peut-on utiliser au maximum dans un environnement 3D (décor, objets, perso en même temps à l'écran) sur des devices comme l'Iphone 4, 4S, 5, 5S, 5C / GSII, GSIII, GSIV, Galaxy Note, etc. ?

Je me doute que cela doit dépendre d'autres facteurs et d'une optimisation générale, mais je me demandais s'il n'existait pas une guideline, ou une approximation éventuelle ?
Pour guider le développement dès le début et ne pas se perdre en polygones inutiles :D

Merci à tous,

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [Question] Nombres de polygones maximum

Message par Alesk » 25 Sep 2013 13:02

Salut,

Dans tous les cas, du point de vue des performances, la règle est simple : moins il y en, mieux c'est.

Ensuite, il faut aussi tenir compte des shaders utilisés, qui auront aussi un impact énorme sur les performances : si le shader est très complexe, tu pourras mettre à genou ton appareil mobile avec seulement une poignée de polygones.
Idem avec les shaders transparents, qui peuvent bouffer ton fillrate à vitesse grand V.

Bref, pour ce qui est des appareils mobiles, il faut essayer de limiter au maximum à tous les niveaux.

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: [Question] Nombres de polygones maximum

Message par Pico57 » 25 Sep 2013 15:35

Salut,

J'ai déjà eu à gérer de très (très très très) gros objets dans Unity. (Des nuages de points de relevés scanner pour être exactes) Et je vais encore devoir plrendre encore plus gros (j'ai peur) Pour info, je n'ai jamais atteint de limite pour Unity, il a toujours accepté mes objets. Il a un peu rechigné, ramé mouliné dans le semoule... mais c'est toujours passé. Donc même pour quelques millions de points, ça passe toujours. Au niveau du rendu, j'utilise un shader trouvé sur le net qui est vraiment le plus simple imaginable (même pas de texture, juste une petite couleur).

Par contre, sur les périphériques mobiles ça rame un peu, mais j'ai des scripts particuliers appliqués dessus qui alourdissent beaucoup, je doit justement tester ce que ça donne sans ces scripts pour savoir si je vais pouvoir utiliser des objets plus lourd ou si c'est même pas la peine d'y penser. Sur Android, j'avais un Galaxy Note2 et j'avais un résultat correct. Ensuite, j'avais un iPad3 sur lequel ça tournais mieux, mais j'avais un autre truc qui faisait planter l'appli.

La particularité de mon cas est que j'avais très peu d'objets mais 2 qui sont très complexes, je ne sais pas s'il y aura beaucoup de différences avec une scène composés d'une immenses quantité d'objets moins complexes.
Pour info, si tu as des objets très complexes (comme moi), Unity va te les découper. Un objet est limité à un maximum de 65534 points ou triangles. Si ça dépasse, il divise les objets et parfois un peu comme ça lui chante.

Zuke
Messages : 22
Inscription : 19 Sep 2013 15:44

Re: [Question] Nombres de polygones maximum

Message par Zuke » 25 Sep 2013 18:41

Merci pour vos réponses !

Donc, en gros, il faut viser le moins possible, et faire des tests en prototypage pour vérifier au fur et à mesure ;)
Mais au vu des dernières grosses productions sur le marché, je ne pense de toutes façons pas être inquiété.

Merci encore,

Bonne soirée.

chloridrik
Messages : 18
Inscription : 24 Mars 2010 19:05

Re: [Question] Nombres de polygones maximum

Message par chloridrik » 02 Oct 2013 09:43

hello, j'ai quelques connaissances en openGL, et voici quelques explications :

Tu as 3 types de ressources à gérer avec un jeu :

La Ram du téléphone
tout ce que tu charge en mémoire est stocké en mémoire, si par exemple tu fais des scenes avec plein d'objets, que tu oublie de détruire des objets qui ne sont plus utilisés par ton code, tout ça reste en mémoire.

La Ram de la carte graphique
Elle est utilisée pour mémoriser les polygones, et surtout les textures, en fonction de la carte graphique du téléphone, tu peux exploiter plus ou moins de textures, et surtout plus ou moins grandes

Le processeur du téléphone
C'est utilisé par le code que tu va écrire pour ton jeu, comme le déplacement des personnages, l'intelligence artificelle, déziper un fichier pour extraire les données, générer un atlas au runtime....

Le processeur de la carte graphique
Le processeur des cartes graphiques de téléphone sont puissants, et souvent mal exploités quand on débute, ça sert en gros a transformer les coordonées 3D des vertex en coordonées 2D à l'écran, et la manières dont sont gérées les textures (via les shaders) Aussi les animations dans certains cas peuvent être gérées par le GPU plutot que par le CPU, tout comme les particules.


imagine une scene avec un objet a 300 000 polygones qui tourne sur lui même, dans, ce cas, tout est géré par le GPU (qui est puissant) , c'est juste une matrice de transformation qui est mise à jour, celle qui sert a calculer l'emplacement des vertex a l'écran.

imagine toujours une scene a 300 000 polygones, mais qui est composée de 100 000 triangles de 3 polygones, avec chacun une texture différente, et un déplacement différent. Ici c'est 100 000 matrices de transformations qui sont gérées par le CPU qui est moins puissant.

Bref, il faut que tu le dis, tester souvent ton jeu :)

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: [Question] Nombres de polygones maximum

Message par Pico57 » 02 Oct 2013 10:50

Très intéressant ce que tu nous dit. Par contre, tu as des confusions entre les termes il me semble : mathématiquement parlant, un triangle est un polygone (une forme composée de plusieurs points). A chaque fois que tu as parlé de polygone, c'est plutôt de point, ou de vertex qu'il faut parler. (dans les 2 paragraphes d'exemples)

chloridrik
Messages : 18
Inscription : 24 Mars 2010 19:05

Re: [Question] Nombres de polygones maximum

Message par chloridrik » 06 Oct 2013 11:02

Oui triangles et polygones ce sont la même chose dans mon message.

Ce que je voulais dire, c'est qu'un mesh de 100 000 triangles qui se déplace en x y z prend bien moins de ressources que 100 000 triangles qui se déplacent individuellement dans différentes directions.

Dans le premier cas:
CPU : une matrice a gérer
GPU : 100 000 vertex + une matrice

Dans le second cas :
CPU : 100 000 matrices
GPU : 300 000 vertex et 100 000 matrices

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »