FlightGear - Création d'avions et autres / Creation of aircraft and other

Vous désirez aider à améliorer les avions de Hangar de Helijah, c'est ici que cela se passe / You would like to help improving aircraft from Helijah's hangar, this is where it happens

Vous n'êtes pas identifié(e).

#1 2012-12-10 22:06:21

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Soucis du détail dans la modélisation

Bonjour à tous, salut C-Vall

Voilà, le sujet devrais être à la bonne place.

En fait j'ai abordé la chose sur un autre forum, et je te livre le résultat par un membre de ce forum de divers test de rajout de détails:
"Salut à tous,
Pour mettre un terme définitif à la question " faut-il charger un seul gros fichier ou plusieurs fois le même plus petit", je me suis lancé dans une série de test, le résultat est très étonnant.
Je vous explique ce que j'ai fait :
Un cube à été subdivisé en 6146 points;
D'un côté je charge la modélisation de ce cube plusieurs fois, et de l'autre je charge un seul modèle contenant plusieurs fois ce cube. Les temps de chargement ont été mesuré avec une montre. Pour ne pas m’embêter, j'ai chargé ces cubes avec l'extra 300L (pour ne pas avoir à recréer des ficher-set ect...), donc il y avait encore plus de points.

1er essai :
J'ai chargé 45 fois ce cube par du xml, soit si on fait le calcul : 276 570 points
Résultat : 45 secondes de chargement, le résultat est sans conséquences sur les fps

J'ai ensuite chargé un seul fichier 3D contenant 45 cubes soit le même nombre de points
Résultat : même temps de chargement ! peut-être une seconde de plus, mais c'est pas énorme... FG était encore très fluide

2eme essai :
J'ai doublé le nombre de cube dans les deux cas, soit 553 140 points

Pour le cube chargé 90 fois avec le xml : 46 secondes environ. Étrange vu que le nombre de points à doublé. Là encore le simu est très fluide

En revanche pour le fichier 3D chargé une seule fois et contenant 90cubes, le temps de chargement à duré 48/49 secondes. C'est pas beaucoup plus, mais ça à quand même mis plus longtemps. FG était encore très fluide (pas de chutes de FPS)

3eme essai :
J'ai encore doublé ne nombre de cubes, vous ne rêvez pas, je suis passé à 1 106 280 points !

Pour le cube unique chargé 180 fois avec du xml : temps de téléchargement 47 secondes environ. Très fluide encore

Pour les 180 cubes (soit un fichier de 101,7 Mo) chargés une fois avec du xml : temps de téléchargement 1min45 secondes environ. Là je peux vous dire que FG à mis plus de temps lol ! Mais très étonnant, là encore aucun problème de fps !


Mes conclusions les amis :
Charger plusieurs fois un seul fichier 3D est plus rapide que de charger un éléments contenant plusieurs fois le même objet ! Mais, la différence n'est pas énorme, sauf à très grande échelle.

Je constate que la taille des objets en eux mêmes n'impactent que le chargement, ensuite, ils n'ont pas s’impacte sur FG. Je rappelle qu'aucune texture n'a été associée à ce fameux cube. Il serait donc intéressant de tester la même chose avec un cube texturé. Avec une texture genre 1024x1024, on se rendra vite compte si FG fait des copies ou si il recharge tout à chaque fois, je pense que ça serait très parlant !

En tout cas, je crois que ce sont les textures qui impacte sur les fps du simulateur, pas les objets 3D

Autre piste à regarder, Tous mes cubes contenus dans le même fichier 3D étaient dans le même objet, et si chaque cube était dans un objet séparé ? "

Réponse d'un autre utilisateur:

"Comparatif très intéressant !
Les autres test que tu indique seraient effectivement bon de faire, surtout concernant les textures : 45 cubes = 45 textures = 45 espace mémoire ? ou bien 45 cubes = 45 textures = 1 espace mémoire appelé 45 fois ?

Concernant la 3D pure (on oublie les textures), l'impact sur les FPS ne peut se faire que si l'objet dans dans le champs de vision. Il y a 2 choses a différencier : le chargement de l'objet, le rendu de l'objet.
Le chargement de l'objet c'est ce qui se passe au chargement de FG, c'est pourquoi un fichier de 101Mo est plus long à charger qu'un fichier de 2Mo.
Le rendu de l'objet c'est le fait d'afficher l'objet à l'écran. Un exemple très simple avec les nuage 3D de Flightgear : levez les yeux pour regarder les nuages 3D dans FlightGear et vous verrez que vos FPS tombent comme des mouches et ce même avec une bonne carte graphique. Maintenant baissez les yeux pour regarder vos pieds : vos FPS n'ont jamais été aussi élevé ! (j'exagère hein)

J'avais fait le test suivant avec le DC-3 :
Je charge le DC-3, une fois le DC-3 chargé je me retourne pour regarder la cabine passager (composé de plein de sièges, de vitres, de rideaux, de poignées, plaques de textes, extincteurs...) En me retournant je perds beaucoup de FPS et il y a de grosse saccade ! Une fois que je suis retourné et que je vois la cabine passager dans son ensemble, je me re-retourne pour regarder à nouveau mon tableau de bords. Je ne constate pas de saccade ! Et là je me re-re-retourne pour regarder à nouveau la cabine passager et cette fois ci aucune saccade !
Conclusion : Le rendu 3D garde en mémoire ! Une fois qu'on a regardé un objet, FG a fait le rendu et la prochaine fois qu'on regarde cet objet c'est beaucoup plus fluide.

Alors concernant la caravelle de Didier, si la cabine passagère qui contient tous les sièges est trop gourmande pour votre ordinateur : ne la regardez pas et tout ira bien
(On se croirait presque dans Harry Potter avec le serpent qu'il ne faut pas regarder dans les yeux sinon on est transformé en pierre^^ )

Voilà pour mon retour d'expérience"

Je suis sur que maître Emmanuel pourra nous en dire plus à ce sujet


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#2 2012-12-10 22:25:04

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Soucis du détail dans la modélisation

Gaëtan,

voilà la suite du test :

"J'ai du nouveau ! c'est assez intéressant

Alors je légende comme ça :
A : cube unique et appelé X fois par le xml. texturé avec une image 1024x1024
B : Nombre multible de cube dans un seul fichier 3D. Chaque cube est contenu dans un objet séparé, chaque cube est relié a la même texture 1024x1024. Le fait de ne pas avoir mis les cubes dans le même objet fait qu'à chaque fois, l'association avec l'image doit se faire. Enfin, je me vois mal créer 50 textures pour être certain qu'il la charge à chaque fois...

Remarque : ce sont les mêmes cube que tout à l'heure, donc même nombre de points par cubes...

Test 1 : 25 cubes :

A : temps de chargement 45s
B : 52 s

Les fps pour les deux sont similaire et assez bon

Test 2 : 50 cubes

A : temps de chargement 45s
B : 1 min

Test 3 : 100 cubes
A :temps de chargement 45s. Les fps chute de 30 lors du passage à la vue extérieur en regardant les cubes. Mais finissent par revenir à 60 fps après quelques secondes

B : 1min20 mais gros bug, il y a une inscription rapide qui appraît très brièvement à l'écran (ça apparaissait aussi dans le test du précédent message), graphic ...quelqueschose.... (pas le temps de lire), je pense en gros que la CG est saturée. Les fps chutes de 50 lors du passage à la vue extérieur et retourne en quelques secondes à environ 58/59


Vous avez vu ? 45s à chaque fois pour l'objet unique (cas A) ! je pense que la CG fait une copie du même élément et ne recharge pas tout. On note aussi que les fps sont plus grand. Mais on peut se demander si associer la même texture à tout ces cubes (dans le cas B), fait recharger la texture. Pour être certain, il faudrait créer 50 textures et les associer unes par une aux cubes...pfff C'est vrai quoi, vous trouvez pas sa dingue que FG charge 100 fois une texture 1024x1024 ? elle fait 1.49 Mo, j'ai des sérieux doutes..."

voilà tu en sait plus maintenant


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#3 2012-12-18 01:39:07

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Continue mon frère!
Je suis en train de te pardonner tes péchés!

Conclusion:
Il y a du stock (matière à apprendre) dans Blender. Je vais me construire un fichier pour y transférer toute cette information que je rangerai selon une démarche d'apprentissage.

Mille merci!


In Vino Veritas

Hors ligne

#4 2012-12-18 09:25:44

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Soucis du détail dans la modélisation

Salut Didier,

Alors en fait rentrons donc un peu dans le détail d'un système 3D comme FG. Depuis très longtemps maintenant ce type de logiciel utilise ce que l'on appel un arbre 3D. Un exemple simple avec le DC 3. Les sièges de la cabine. Si tu regardes les fichiers présents tu trouveras un seul siège dupliqué dans un xml. Pourquoi ?

En fait le siège n’existera qu'une seule fois en mémoire. Un index lui est assigné dans l'arbre et il sera juste dupliqué au moment du rendu. Alors oui la première fois que tu te retournes il faut que FG duplique ce siège et fasse le rendu. Ensuite, c'est mis en cache et donc tout ce passe bien. Tout ceci est très bien démontré par ton dernier exemple avec les 100 cubes smile

Car de tout temps, ce qui importe c'est la mémoire et non le taux de FPS. Ce dernier finissant toujours par revenir à la normale. Par contre, saturer la mémoire c'est ne plus avoir de FPS du tout sad Dans le DC 3 les sièges, utilisent cela, mais aussi le moteur ou un seul piston est défini en mémoire puis dupliqué au moment du rendu.

Pour les images, le problème est le même. Une image de 1024x1024 24 bit prend environ 3 Mo en mémoire (juste la partie image) auquel il faut ajouter quelques octets pour l'entête. Réduire le nombre d'images c'est réduire le nombre de Malloc et donc la durée du traitement mais surtout économiser de la mémoire. (Malloc : fonction de réservation de la mémoire pour y placer quelque chose). Un Malloc prend du temps.

Enfin bref, que certaines personnes sur d'autres forum n'arrivent pas à comprendre comment fonctionne un logiciel 3D n'est pas vraiment étonnant. Pour cela il faut avoir de la curiosité lol

Pour rappel voici une petite digression que j'ai écrit il y a quelques temps déjà :
Digression

Amicalement Emmanuel

P.S. Pour les curieux, les sources de EB Model 3 sont disponibles quelques part sur mon site. Et mon modeleur utilise lui aussi un arbre 3D.


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#5 2013-02-15 17:49:43

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Merci Didier et Emmanuel. Avec ce genre de considérations on entre dnas le vif du sujet.
J'en aurais une autre:
Les courbes (surtout autour des fenêtres). En consultant le site de Carenado, je constate un niveau de finition exceptionnel au nivau des courbes alors que
beaucoup de dessins affichent  un angle de 90 degrés en 4 ou 5 lignes droites alors qu'une belle courbe est plus agréable à l'oeil.
La Fameuse courbe de Bézier ou autre  boufferait-elle trop de mémoire?
Si c'est le cas, on pourrait la dessiner dans un autre fichier, la sauver comme un objet et l'importer?

Un lien du produit sur Youtube:

http://www.youtube.com/watch?v=88T-Gk4o … r_embedded


My two cents opinion.

Dernière modification par C-VALL (2013-02-15 18:05:58)


In Vino Veritas

Hors ligne

#6 2013-02-15 19:02:25

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Soucis du détail dans la modélisation

Puisqu'on est dans les sièges du DC-3,

une petite question que je m'était mise sur l'oreille pour la fumer plus tard :

Dans la cabine passager de la 10B-3 configuration Sterling/Air-Toulouse, il y a 90 sièges, qui ont tous la même assise et le même dossier, seul les pieds changent : 2 sièges pour les rangéées A et B, et 3 sièges pour les rangées C-D et E.

Au départ je pensait fair un fichier  siegesAB.ac et un fichier siegesCDE.ac, mais en te relisant, ne serait-il pas mieux de faire les mêmes fichiers avec l'armature seulement et rajouter un fichier assise.ac et un fichier dossier.ac, avec un fichier .xml dans le dossier '/interior/cabinepax' pour dupliquer tout ce petit monde à la bonne position?


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#7 2013-02-15 19:46:46

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Ben voilà Didier.
1) Ordre et méthode
2) ne pas réinventer le bouton à 4 trous
3) pourquoi fair compliqué lorsqu'on peut faire simple….
et j'en passe…

D'où ma suggestion de créer un magazin de pièces détachés.
Quelque trains d'atterrissages, altimètres et autres, et fini les "job" de bras!


In Vino Veritas

Hors ligne

#8 2013-02-15 19:54:32

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Soucis du détail dans la modélisation

Bonsoir Didier, bonsoir Gaëtan

Gaëtan, les courbes de Béziers demandent beaucoup de ressources CPU pour être en "temps réel" en 2D alors imagine en 3D. Je ne connais qu'un seul moteur 3D "temps réel" les utilisant. Celui de Doom 3. Mais bon, john Carmack et John Romero sont des génies de la programmation qui ont marqués l'histoire. De toute façon il ne me semble pas qu'elles soient gérées par OSG et donc par SG. la seule solution pour obtenir de belles courbes reste de multiplier le nombre de points et de facettes. Quitte à utiliser les courbes de Beziers, les B-spline, voir même les Nurbs. Mais dans ce cas c'est la taille des objets 3D qui impactera les FPS par le nombre de points et de facettes trop important.

C'est toujours le plus difficile dans un logiciel de 3D "temps réel". Trouver le bon compromis entre nombre de points réduits et graphismes assez détaillés. Ce qui est rassurant, c'est qu'il est toujours possible d'ajouter des points ultérieurement pour améliorer certaines courbes... Voir la modification de F-Sig sur le mirage dernièrement smile

Didier : Tout à fait. Si seul le support du siège change, mais pas le siège autant n'avoir qu'un seul élément siège et 2 (ou plus) éléments support puis assembler cela via les xml. Mais ce découpage peut être fait tout à la fin. Tu peux, dans Blender créer tout les sièges, tout les éléments. et à la fin tu regardes lesquels se répètent et lesquel sont spécifique. Puis tu découpe et tu place dans des dossiers (en récupérant les coordonnées au passage pour le xml) smile

Amicalement Emmanuel

P.S. Revenons sur les facettes. Il existe des méthodes pour affiner cela mais pas dans FG à ma connaissance. Comme avoir plusieurs modèles 3D selon la distance de la caméra. Loin un modèle simple suffit, prêt un modèle plus complexe et très prêt un modèle très complexe. Mais là encore c'est la mémoire qui prend une claque sad

Pour un rendu parfait quelque soit la position de la caméra il n'existe qu'une méthode mais elle n'est pas "temps réel". C'est le Ray Tracing (et encore seulement si les objets ne sont pas des constitués de facettes mais définis par des formules mathématiques). Je pense principalement à P.O.V. Persitence of Vision

Un simple exemple avec une sphère qui est définie comme suit avec P.O.V. :

sphere {
  0,0,1.4, 1
  texture {
    pigment { color rgb 1 }
    finish{
      diffuse 0.3
      ambient 0.0
      specular 0.6
      reflection 0.8
    }
  }
}

ce qui se traduit par : Une sphère dont le centre est en 0 0 1.4 et le rayon 1
Sa texture sera blance car rgb 1 correspond à toutes les composantes à 1
et quelques effet lumineux comme vous le voyez.
Avec cela, quelque soit la position de la caméra, la sphère sera toujours une sphère parfaite même à 3 mm le rendu sera parfait. Mais le ray tracing "temps réel" ce n'est pas encore pour demain smile


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#9 2013-02-15 20:06:33

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Wo Wo Wo Emmanuel!
Mais joual vert!  Ceux qui ont développé ce produit et ceux qui passent le tout sur leur bécane ne font pas sauter le processeur que je sache!
il chauffe d'accord (pour les plus de 5 ans) mais on ne travaille plus avec un boulier que je sache! (scuze-moi, c'était plus fort).


In Vino Veritas

Hors ligne

#10 2013-02-15 21:03:25

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Soucis du détail dans la modélisation

Hum... Cher Gaëtan, je pense que tu n'as pas idée de ce qu'est un moteur de Ray tracing. Pour faire très très mais alors très simple. C'est un simulateur de lumière. Le moteur simule TOUT les rayons lumineux touchant la scène pour calculer la couleur de chaque pixel de l'image en tenant compte de pratiquement toutes les lois physique connues pour cela. Réfraction, réflexion, transparence etc....

Un simple exemple (pris sur le site de POVRAY) pour te montrer la différence ce qui suit est une image totalement calculée par un ordinateur et non pas une photo modifié. Pas un seul pixel de cette image n'est réel.
eroded.jpg

Et encore je ne parle pas de radiosité qui est aussi disponible dans POVRay. C'est un système de préparation basé sur les lois de la thermodynamique. En gros, si tu place une balle rouge devant un mur blanc, le mur blanc va très légèrement rougir prêt de la boule et la boule blanchir. C'est l'interaction thermique entre les objet qui est utilisé pour cela. Les rendus en sont encore plus réalistes. Mais nécessites parfois des heures de calculs. Même sur de très gros PC.

Amicalement Emmanuel


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#11 2013-02-16 02:49:17

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Tention cheuf.
Tu prends un canon pour tuer une mouche.
Je parle d'une simple courbe noire sur fond blanc (d'accord il y a un algorithme mathématique derrière) qui peut devenir un simple objet.
Les voisins d'en face le réussissent, pourquoi pas nous?

If they can do it, WE can!


In Vino Veritas

Hors ligne

#12 2013-02-16 11:04:46

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Soucis du détail dans la modélisation

Je l'ai expliqué plus haut, Une simple courbe noire sur fond blanc cela n'existe pas en 3D. Si c'est faire une courbe et une seule, non raccordé à des facettes et non raccordé à un objet plus complexe (un avion par exemple), alors oui, c'est tout à fait possible.... mais franchement, une simple courbe, toute seule, cela ne sert strictement à rien. Et je le redis il n'y a pas de courbes non plus dans FSX/P3D. Simplement elles sont utilisées dans le modeleur pour créer le modèle, mais au final elles sont transformées en facettes.

Mais tu peux toujours t'amuser avec les algorithmes smile
http://www.mathcurve.com/courbes3d/bezi … er3d.shtml

Et quand à Carenado, il créent des apparaeils tellement lourd que je ne connais pas de PC classique assez puissant pour les faire voler avec une telle qualite. En gros ceux qui ont FSX et qui veulent des FPS ont deux choix. 1 Se ruiner dans un PC futuriste 2 - Enlever toutes les options graphiques et evoir des FPS mais sans la qualité. Il ne faut pas se fier aux photos que tu vois sur les sites. Non seulement elles sont faites avec des PC que tu ne pourra jamais avoir, mais en plus, dans 90% des cas elles sont retouchées vie toshop ou autre.

Et oui nous pouvons, mais quel en est l’intérêt ? Reduire les FPS, alourdir les fichiers, demander plus de mémoire... tout cela pourquoi quelques points suplémentaires et pour le plaisir des yeux ! FG est un simulateur avant d'être un jeu. Le plaisir des yeux est secondaire et il faut =garder à l'esprit qu'il DOIT rester secondaire.
Souvient toi...
Image15.gif
Des triangles, des carrés, pas de texture, et pourtant, notre imagination faisait la différence et tout le monde y croyait.

Amicalement Emmanuel


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#13 2013-02-16 11:11:41

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Soucis du détail dans la modélisation

Hooooooooooooo, Flightgear sous DOS en 16 couleurs !!!!!!


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#14 2013-02-16 11:54:01

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Soucis du détail dans la modélisation

Raté Didier lol

C'est Flight Simulator 2 sur ATARI smile Par contre c'est bien en 16 couleurs (à l'époque les PC sous Dos n'en n'avait que 4) et en 320x200


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#15 2013-02-16 13:08:35

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Soucis du détail dans la modélisation

Atends-moi deux secondes.
Je n'ai pas dis mon dernier mot à ce sujet.
Si je me plante, je l'avouerai. Mais avant...


In Vino Veritas

Hors ligne

Pied de page des forums

Propulsé par FluxBB 1.4.8