MakeHuman pour MorphOS

15 sujets de 16 à 30 (sur un total de 35)

  • Alex

      #72061

      je vois pas le rapport entre les template et la vitesse du code :-?

      Ensuite baeucoup de choses sont normalement « inline » donc pas tant de saut de méthodes qu’on le pense.

      Ensuite l’histoire des exceptions y a un proverbe qui dit « ne s’use que si l’on s’en sert », bhein les exceptions c’est en peu pareils : ça ralentit que si l’on s’en sert (i.e. si y en a une de levée)

      Mais au final vaut-il mieux un code sûr, réutilisable, avec gestion d’exceptions mais un peu moins lent,

      ou un code qui déchire sa mère niveau vitesse, mais qui

      1) n’est pas réutilisable et nécessite une réécriture partielle à chaque fois que l’on souhaite l’utiliser,

      2) se banane avec un joli crash dès qu’un truc non attendu se présente ?

      Moi j’ai choisi : vive le C++ et vive la STL… Après libre à chacun de faire ses choix, perso recoder les méthodes de gestion de pile à chaque projet moi ça me gonfle, j’écris un template de gestion de pile et après je l’utilise dans tous les projets…

      EDIT: une petite note : je n’ai jamais dit que les iostream étaient plus rapides que de passer directement par les méthodes système d’accès au fichier. C’est évident que ce sera plus lent puisque leur implémentation se base justement sur elles… C’est comme de dire qu’avec la SDL c’est plus lent que de passer par la graphics.library et Intuition… J’ai juste voulu dire que les iostreams ne sont pas si lents que ce que la rumeur générale tend à le dire.

      Yomgui

        #72062

        Pas tout a fait d’accord avec toi alex… en faite c’est plus l’existance du C++ qui me gene.

        Ce langage est fait surtout pour faire croire aux gars qui ne sont pas tres « precis » dans leur code qu’ils peuvent faire du code stable et re-utilisable. Mais pour reussir a faire cela qu’a t’on perdu? car on pert forcement qq chose.

        La SDL est un wrapper oui, mais il reste en C.

        Qui plus est le C++ tant a rendre beaucoup plus complique la lecture du code contrairement a son objectif premier.

        Pourquoi? car on ne fait pas un cheval avec un ane!

        Quelqu’un ne sachant pas se debrouiller avec du C, n’y arrivera pas plus en C++.

        Alex

          #72063

          Yomgui:

          bon ok, les gouts et les couleurs c’est chacun son truc, c’est comme avec Java, perso je trouve ça dégeu… Mais bon c’est *mon* avis.

          Après niveau lisibilté la encore ça dépend des gens, c’est plus une question d’habitude qu’autre chose. Perso l’indentation/mise en forme type FSF je trouve ça super dégueu et j’arrive pas trop à la relire… C’est un peu comme dans les toilettes publiques : si tu passe après un type propre y a pas de problème, si tu passes derrière un gros porc, c’est dur à vivre…

          Sinon c’est quoi ton compilo et ta STL (version et tout) parceque là ça compile pas la méthode gets() dans istream ça n’existe pas (il me semble que ça a eu existé mais c’était y a un bail style vers 98/99 avant que la STL soit normalisé et entre dans la norme du C++) et ce aussi bien en cross-compil qu’en compil native cygwin…

          Yomgui

            #72064

            Bah ca vient de mon install MorphOS-SDK. gcc-2.95.3 (un truc du genre).

            [Edit]

            effectivement cela n’existe plus apparement… et en plus ils enlevent les trucs les plus utiles! :-lol:

            Fab1

              #72065

              Ok, Le template n’influe pas directement sur la vitesse du code (mais sur la vitesse de compilation, alors là, carrément), mais vu que ça fait intervenir un type abstrait, on définit généralement des méthodes génériques pour manier le type en question. Ces méthodes sont bien évidemment une charge supplémentaire à l’exécution.

              Sinon, pour l’exemple en question VertexVector, je dirais qu’il vaudrait mieux faire son propre getline en appelant istream::read() sur un « gros » buffer et en traitant les lignes toi-même, au cas où en interne gets() ou getline() auraient la merveilleuse idée de faire de la lecture octet par octet (ce qui ne m’étonnerait même pas).

              Et aussi, cette classe VertexVector hérite de std::vector, qui n’est pas non plus bien véloce, surtout si on lui enfile des structures complexes sans passer par un pointeur (ce qui a pour effet d’appeler le constructeur par copie à chaque push_back). Et dans ce source on lui enfile des Vertex, qui contiennent 2 vecteurs + une liste stl d’entiers.

              Rester à évaluer ce qui est le plus rapide entre appeler le constructeur par copie ou faire une allocation dynamique. Dans le cas précis de ce vertex, j’imagine qu’on préfèrera la première solution, les allocations dynamiques pouvant être très lentes.

              Pour résumer ce que le C++ apporte :

              – temps de compilation x2,

              – taille du code x2,

              – lisibilité /2,

              – vitesse d’exécution /2,

              – temps de maintenance x2,

              tout ça pour grapiller quelques minutes en évitant d’implémenter sa propre pile, liste, string,… :)

              Et pour finir, on peut faire du code C ANSI réutilisable et stable et rapide et lisible, on est pas des demomakers après tout.

              Alex

                #72066

                Bah ca vient de mon install MorphOS-SDK. gcc-2.95.3 (un truc du genre).

                Le problème c’est que gcc 2.95.3 (egcs en general pour la partie C++) est sorti avant que la STL soit normalisée dans le C++ ansi/iso du coup chaque implémenteur y allait de sa petite sauce :-(

                Ceci dit maintenant tu des get(), getline() et autre qui te permettent de faire sensiblement la même chose (sauf que tu doit allouer ton propre buffer et donc le libérer aussi).

                C’est toi qui l’a écrit ça ou bien c’était déjà dedans ?

                Yomgui

                  #72067

                  Fab:

                  Comme je l’ai deja dit plein de fois, mes connaissances en C++ sont limitees et empiriques.

                  => Traduction:

                  C’est pas moi qui se colle a l’optimisation

                  Alex: le code d’origine est dispo sur le CVS du site officiel.

                  j’ai juste mis en 1 seul rep les projets makehuman/mhgui et animorph. Ensuite voir les diffs entre.

                  Alex

                    #72068

                    Ok, je regarde ça…

                    Alex

                      #72069

                      bon comme je le craignais je peux pas compiler la partie GUI à cause de choses non définies dans la version de GLUT de mon SDK. Désolé :-(

                      J’ai posé la question, mais pour le moment j’ai pas eu de réponse, s’il y aura moyen d’aller plus loin avec un SDK plus avancé…

                      Yomgui

                        #72070

                        De mon cote j’ai resolu tous les pb I/O. cf au debut du thread.

                        LorD

                          #72071

                          J’ai essayé hier soir et c’est plus rapide sous MOS avec un peg G3 et une radeon 8500 que sur le Sempron 2800+ (mais qui utilise un chipset graphique intégrés merdique) et pas qu’un peu !!

                          Toutes les fonctions ne sont pas encore implémentées, mais on peu déjà s’amuser à créer un perso et à l’habiller sous blender.

                          Encore un soft inimaginable il y a quelques temps sur nos plateformes !!

                          Yomgui

                            #72072

                            LorD a écrit :

                            Encore un soft inimaginable il y a quelques temps sur nos plateformes !!

                            Manque d’imagination tout ca!

                            Moi j’en reve deja a l’epoque du CPC464…

                            /me qui devient aussi bouffon que TheFab… mefiance

                            Ah sinon la radeon 8500 est tres performante il me semble dans sa serie.

                            Essais la nouvelle version ce soir, tu seras encore plus content ;-)

                            Trucs&Astuces: clicker sur le petit icone en haut, a gauche, qui ressemble a une grille, cela enleve le maillage du personnage et accelere vraiement le rendu.

                            LorD

                              #72073

                              Rah lala, va falloir que je me mette à l’animation sous Blender… mais ça a l’air assez complexe à première vue (comme dans tous les softs de 3D) pour un débutant.

                              Yomgui

                                #72074

                                LorD: ca fait 1 an que tu repete la meme chose… t’imagine en 1 ans les progres que tu aurais fait?

                                Aller un peu de courage! 8-)

                                LorD

                                  #72075

                                  Non mais j’ai fait des trucs avec Blender, des personnages, des essais de décors… mais je n’ai rien texturé, ni animé (à chaque fois je me rendais compte trop tard que c’était inanimable (par exemple les vetements des personnages.

                                  Puis je ne sais pas encore ce que je vais faire de mes trucs en 3D, mon idée est de les utiliser comme base à mes dessins ou animations 2D… Mais c’est plus long de faire de la 3D que de la 2D, surtout que je ne suis jamais satisfait de ce que je fais.

                                15 sujets de 16 à 30 (sur un total de 35)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement MakeHuman pour MorphOS

                                Amiga Impact