K3DSurf 0.6.2 : champion du calcul mathématique ?

Posté par  (site web personnel) . Modéré par j.
1
24
juin
2007
Éducation
K3Dsurf est un logiciel sous licence GPL qui permet la visualisation et la manipulation de modèles mathématiques dans l'espace de trois, quatre, cinq et six dimensions. K3DSurf supporte les équations paramétriques et les Isosurfaces.

La nouvelle version de K3DSurf v0.6.2 apporte beaucoup d'améliorations au niveau de l'interface graphique et du fonctionnement général du programme, mais la plus importante de ces fonctionnalités est certainement l'introduction d'une nouvelle technique de calcul mathématique : K3DSurf peut désormais prétendre au titre du logiciel de calcul mathématique le plus rapide !
En effet, l'amélioration du calcul est impressionnante et peut varier d'un facteur 1,5 à 5 en moyenne, selon le type et la complexité de la formule mathématique.

La technique, nommée "parser géométrique", s'inspire des modèles mathématiques de dimension supérieure à trois et utilise deux méthodes complémentaires d'accélération du calcul :
  1. Le parallélisme, pour profiter au maximum des capacités CPU d'exécutions multiples et de la mémoire cache L1 et L2, l'unité de calcul est maintenant une portion volumétrique et non plus un simple point. En général, les CPU récents auront un facteur d'amélioration (1.5 < F1 < 5) plus grand que les anciens.
  2. Utilisation des propriétés géométriques du domaine de définition des fonctions : la forme et l'écriture de la formule mathématique déterminent le facteur (1 < F2 < ?) d'amélioration du calcul.
    Au final, le facteur d'amélioration du calcul (F) est le produit des facteurs d'amélioration de ces deux techniques : F = F1*F2.

Aussi, cette technique peut être considérée comme une surcouche aux bibliothèques de calcul mathématique "normaux" et est par conséquent portable sur la majorité des logiciels ayant un module de calcul mathématique.
Pour plus d'explications techniques, visitez cette discussion (avec quelques spécialistes dans la matière) sur le site de PovRay.
Finalement, la combinaison du nouveau parser et de la fenêtre OpenGL à haute résolution est un atout de K3DSurf pour une exploration plus approfondie de l'univers des objets mathématiques.

Améliorations apportées par la version 0.6.2 :
  1. Nouvelle interface graphique avec menus et barre d'outils.
  2. Nouveau parser pour le calcul mathématique qui peut être activé/désactivé à volonté.
  3. La fenêtre OpenGL peut supporter une résolution 10M-Triangles/500-grid
  4. Une nouvelle table pour l'algorithme MC (Marching Cube) pour les isosurfaces a été créée (mise sous GPL) ; elle peut générer un nombre réduit de polygones comparativement à la table originale.
  5. Support de la transparence (et génération d'images multicolores).
  6. Possibilité de sauvegarder la configuration de K3DSurf dans un fichier.
  7. Ajout/suppression/sauvegarde des formules mathématiques
  8. Nouveaux exemples d'objets mathématiques (d'autres exemples sont présents sur le nouveau forum)

Aller plus loin

  • # joli

    Posté par  (site web personnel) . Évalué à 7.

    trouvé au détour du forum http://k3dsurf.s4.bizhat.com/k3dsurf-ftopic9.html

    une jolie série d'images sur http://www.evolution-of-genius.de/3d/ de quoi réconcilier avec les maths ceux qui seraient plutôt artistes dans l'âme que mathématiciens.

    Et visiblement, d'après http://k3dsurf.s4.bizhat.com/k3dsurf-ftopic26.html il y a de quoi faire de la doc' pour ceux qui seraient plutôt littéraires ;-)
    Peut-être qu'un couplage avec http://fr.wikipedia.org/wiki/Portail:Math%C3%A9matiques permettrait "facilement" de récupérer des descriptions d'objets mathématiques (en allant chercher la page appropriée) et inversement d'effectuer une représentation rapide à partir de formules trouvées au détour de wikipedia ou autre site ?
    • [^] # Re: joli

      Posté par  (site web personnel) . Évalué à 6.

      Bonjour,

      trouvé au détour du forum http://k3dsurf.s4.bizhat.com/k3dsurf-ftopic9.html

      une jolie série d'images sur http://www.evolution-of-genius.de/3d/ de quoi réconcilier avec les maths ceux qui seraient plutôt artistes dans l'âme que mathématiciens.

      Effectivement Taurolf Sauermann est un artiste a part qui a su inventer son propre style, un mélange d'art plastique et de figure mathématiques. Nous avons le plaisir de l'avoir comme modérateur et membre actif sur le forum.
      Nous avons aussi le plaisir d'avoir d'autres artistes professionnels sur le forum ainsi que des physiciens ou encore de jeunes étudiants en architecture... Bref, les mathématiques ne sont pas reservés aux matheux (du moins en ce qui concerne l'aspect representatif des figures mathématiques).
      Sur le forum, vous pouvez faire vos interventions en français et pour ceux qui ne comprennenent pas l'anglais, ils peuvent toujours utiliser les services d'un traducteur en ligne comme celui la : http://babelfish.altavista.com/tr
      N'hésitez pas a vous inscrire et a partciciper par vos propres créations.
      Cordialement,
      Taha
      • [^] # Re: joli

        Posté par  (site web personnel) . Évalué à 2.

        Tu parles d'un nouvel algo de marching cube pour aller plus vite dans le rendu des isosurfaces. Est-ce que tu as une description quelques part de cette algo ?

        Je "m'amuse" à voir si un algo de marching cube pourrait être adapté en hardware.

        "La première sécurité est la liberté"

        • [^] # Re: joli

          Posté par  (site web personnel) . Évalué à 2.


          Tu parles d'un nouvel algo de marching cube pour aller plus vite dans le rendu des isosurfaces. Est-ce que tu as une description quelques part de cette algo ?

          Je "m'amuse" à voir si un algo de marching cube pourrait être adapté en hardware.

          Bonjour,
          Dans l'article, je parle d'une nouvelle table pour l'algorithme du "Marching Cube", qui peut être utilisée pour générer un nombre réduit de polygones (en moyenne moité moin que la table originale). Vous pouvez constater vous même le résultat de cette table en regadant les lignes sur les isosurfaces et les comparer avec les lignes sur les anciennes versions de K3DSurf (ou tout simplement en activant le bouton "Triangles"). Cette description "minimale" de l'Isosurface est trés interessante pour ceux qui travaillent avec des modeleurs 3D et qui souvent ont besoin d'un mesh 3D de bonne qualité mais composé d'un nombre réduit de polygones.

          Je "m'amuse" à voir si un algo de marching cube pourrait être adapté en hardware.

          L'implémentation de l'algorithme du MC dans K3DSurf est extrémement rapide ce qui rend son implementation "Hardware" dans notre cas pas trop bénéfique (tant qu'on parle de quelques millions de triangles) mais l'idée peut être trés interessante dans d'autres domaines (imagerie médicale par exemple)...je me demande d'ailleur si ça n'existe pas déjà, vu que l'imagerie médicale est un domaine de recherche trés actif.
          • [^] # Re: joli

            Posté par  (site web personnel) . Évalué à 2.

            Je suis le projet Open Graphics et souvent les carte 3D, c'est afficher le plus vite possible un paquet de triangle à lisser et colorier. Il ne gère jamais de primitive de plus haut niveau.

            Je pensais que les iso surfaces serait un bon moyen d'aller plus loin.

            Même si K3Dsurf est rapide, une implémentation hardware, surtout si le calcul est composé d'opération simple (en gros, tout sauf des multiplications à plein de bits ou des shifts) peut être 10 à 100 fois plus rapide.

            En gros, tu me conseilles de regarder le code source ?

            "La première sécurité est la liberté"

            • [^] # Re: joli

              Posté par  (site web personnel) . Évalué à 2.

              Pour aller plus loin : les iso surfaces utilisés en infographie sont les metaballs qui sont simplement des "sphères" avec un champ décroissant (en 1/r). Donc manipuler une telle sphère, c'est un point et une valeur "d'intensité". Bref, c'est une donné minuscule.

              On peut étendre avec des objets plus complexes mais cela n'est pas forcément utile.

              Je voulais voir aussi si on étais obligé de passé par la case "triangle". Si on récupère un vecteur normal à la surface pour chaque pixel de l'image cela suffit. Il "reste" ensuite à trouver un moyen de plaquer une texture et de gérer l'éclairage, du raytracing ou mieux serait un must. D'ailleurs, est-ce simple de calculer un "cone" d'interception pour gérer les rayons au lieu d'une droite ?

              Je profite que tu sois là, car tout cela demande pas mal de connaissance mathématique.

              "La première sécurité est la liberté"

  • # moi pas comprendre

    Posté par  . Évalué à -6.

    les 5 et 6ème dimensions elles sont affichées comment? l'odeur? le son? euh ... cool, je vais pouvoir inventer la fonction qui pue la merde et qui pète les tympans.
  • # Rapide

    Posté par  (site web personnel) . Évalué à 4.

    Programme de calcul de maths le plus rapide, c'est vite dit ca...

    Je veux des benchs sur la factorisation de grands entiers, sur des bases de Gröbner, des produits matriciels... Et pas juste du "on va 5 fois plus vite". Plus vite que qui ? que quoi ? quelle version ? quel calcul ?

    Bref, le plus rapide dans tout ca, c'est pas le temps de calcul, c'est la redaction de l'article on dirait...(désolé pour le ton)
    • [^] # Re: Rapide

      Posté par  (site web personnel) . Évalué à 4.

      Bonjour,

      En effet, l'amélioration du calcul est impressionnante et peut varier d'un facteur 1,5 à 5 en moyenne, selon le type et la complexité de la formule mathématique.

      Cette phrase dans l'article en question parle d'une "amélioration de calcul", par rapport a qui? je vous laisse deviner...
      K3DSurf utilise une nouvelle technique pour le fonctionnement interne du "parser" et il battera a plate couture tout autre logiciel de mathématique qui n'utilise pas cette technique: ceci est une certitude et non pas une supposition. Le point d'interrogation dans le titre est du au fait que je ne suis pas sure a 100% que cette technique n'a pas été utilisée dans d'autres logiciels (surtout proprétaires a cause du code fermé, parceque dans ce cas, mon implementation peut être de moindre qualité et donc moin rapide dans son execution).
      A ma connaissance, il n'existe pas dans la littérature une description d'un "parser" avec un fonctionnement aussi sophistiqué que celui de K3DSurf.

      Et pas juste du "on va 5 fois plus vite". Plus vite que qui ? que quoi ? quelle version ? quel calcul ?

      La aussi vous vous trompez, car ce n'est pas ce qui a été rapporté dans l'article : J'ai bien précisé que c'était "un facteur 1,5 à 5 en moyenne" ...car le parser a le potentiel d'aller beaucoup plus vite que ça (5 est en quelque sorte la borne supérieure la plus petite imaginable).

      Bref, le plus rapide dans tout ca, c'est pas le temps de calcul, c'est la redaction de l'article on dirait...(désolé pour le ton)

      Aussi, je vous conseilles de toujours prendre le temps de commencer vos interventions par un "Bonjour" ou un "Bonsoir" (même si ça n'a pas beaucoup de sens, vu les décalages horaires) : ça ne vous rendera peut être pas plus intelligent mais ça vous donnera un air plus civilisé qui sera trés apprécié par vos interlocuteurs.
      Cordialement,
      Taha
      • [^] # Re: Rapide

        Posté par  (site web personnel) . Évalué à 2.

        Bonjour, (vu le site sourrcforge de k3dsurf, je devine quon est sur le meme continent, et que tu as repondu le soir).

        Un "parser" ? Dédié a quel usage ? Quand meme pas a la lecture des equations ?

        Encore une fois, une affirmation (même modérée par un point d'exclamation) mérite des preuves, des comparaisons. Magma, Matlab, GMP, Gambit... Des logiciels ou langages qui permettent de *très* rapides calculs ne manquent pas.

        Le terme "calcul' seul me semble donc complètement inadapté,.
        • [^] # Re: Rapide

          Posté par  (site web personnel) . Évalué à 1.

          Bonjour,
          Tout d'abord, je vous félicite pour le "Bonjour" de votre message.

          Un "parser" ? Dédié a quel usage ? Quand meme pas a la lecture des equations ?

          Les moderateurs ont eu la gentiellesse de mettre des liens vers Wikipedia pour quelques mots de l'article, dont "parser" et cela évidement pour aider les personnes désireuses d'en savoir un peu plus sur le fonctionnement de la chose.
          J'ai aussi mis un lien vers une discussion qui donne plus de détails sur l'implementation de cette technique: Avez vous visitez ces pages?
          * Si non, je vous conseilles de le faire car toutes les réponses a vos questions sont la.
          * Si oui, je vous dirais juste qu'un parser a pour principales fonctions :
          1) La lecture des équations et génération du "opcode" : Une optimisation de cette partie n'aurait rien rapporté en terme de rapidité vue que les équations ne dépassent que rarement une page de texte...
          2) Le traitement de ce même "opcode" : C'est cette partie qui a été optimisée dans le "parser géométrique".
          Veuillez S.V.P visiter les pages indiquées et si vous y trouvez une partie qui vous ne comprenez pas, veuillez me le faire savoir.
          PS: Sourceforge choisi toujours le serveur disponible le plus proche de chez vous.
          Cordialement,
          Taha

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.