Je suis nouveau pour traiter des données 3D avec C ++ (ou C ++ 0x) et j'essaie d'écrire une application simple, ce qui permettra de traiter ces données (modèle, subdivide, etc.). Je cherche quelque chose comme "3D Geometry Engine" - Moteur qui gère efficacement la géométrie 3D en mémoire et donne à API de modifier ses composants (sommets, points, polygones (non seulement triangles), attributs des sommets, etc.). Je cherchais quelque chose comme ça, mais sans chance. Pourriez-vous recommander n'importe quel moteur géométrique 3D (open-source), qui aura une telle API, s'il ya un moteur librement disponible? P>
merci. p>
5 Réponses :
Vous pouvez essayer http://pointclouds.org/ . P>
Selon le site Web: la bibliothèque de cloud complets (ou PCL) est un projet ouvert à grande échelle pour le traitement des cloud points. P>
Le cadre PCL contient de nombreux algorithmes de pointe, y compris filtrage, estimation de fonctionnalités, reconstruction de surface, enregistrement, montage et segmentation de modèle. P>
PCL est publié sous les termes de la licence BSD et est un logiciel open source. C'est gratuit pour une utilisation commerciale et de recherche. Nous sommes soutenus financièrement par Willow Garage, Nvidia, Google et Toyota. P>
Si je comprends bien, PCL est pour la géométrie des nuages de points, par opposition à des mailles plus classiques. Ce n'est pas un problème en soi, c'est juste quelque chose que l'OP devrait être au courant.
super! Merci beaucoup pour cela - ma question n'a pas été connectée à ce sujet, mais ce sera très utile pour moi!
Si votre principale préoccupation consiste à traiter des mailles polygonales (comme votre question suggère, bien que "le moteur de géométrie 3D" pourrait signifier quelque chose de plus large), vous pouvez regarder Openmesh . Comme vous l'avez mentionné C ++ 0x, je suppose que vous n'êtes pas ennemi avec des modèles, vous pouvez donc aimer OpenMesh, car il utilise de lourdes constructions de programmation génériques, pour constituer une source de données de maille facile à utiliser, mais toujours très efficace. Il ne vient pas trop d'algorithmes pré-éprouvés pour le traitement des mailles, mais quelques-uns qui pourraient être un point de départ pour la mise en œuvre de vos propres algorithmes. P>
Merci! Je vais regarder dans Openmesh. Pourriez-vous me dire si vous avez une expirenece avec CGAL ? Pourriez-vous le comparer à OpenMesh dans des conditions?
@ Danilo2 Je n'ai aucune expérience avec cgal. C'est une énorme bibliothèque de géométrie informatique générale qui fournit beaucoup plus que des mailles polygonales. Je ne sais pas à quel point c'est utilisable, mais il a une grande communauté et est largement utilisé, je pense. Peut-être que PMR en sait plus à ce sujet. Mais si vous n'êtes interrompu que dans des mailles polygonales, OpenMesh est une petite bibliothèque rapide et rapide.
@ Danilo Christian a raison. CGAL est I> énorme mais les paquets simples sont assez bien séparés les uns des autres (en plus des noyaux, qui sont omniprésents). Vous devriez avoir une idée des algorithmes que vous devez utiliser et rechercher un meilleur ajustement.
J'ai eu un certain succès avec vtk. Ce n'est peut-être pas la meilleure API pour traiter des mailles, mais cela fonctionne et a une fonctionnalité décente pour les afficher. Et je sais au moins quelques gars de géométrie informatique qui travaillent exclusivement avec elle, il ne peut donc pas être tout à fait mal :) p>
Merci! Je vais certainement regarder ça! Peut-être que cela ne convient pas à mes besoins (parce que je veux développer une grande application (au début petit, mais en grandissant) et comme vous l'avez dit, cela ne pourrait pas être la meilleure API. Je vais jeter un coup d'œil à ça :)
CGAL fournit une grande variété d'algorithmes de traitement de maillage et est livré avec des types de nombres personnalisés pour l'arithmétique de point flottant exact. p>
Merci! :) Je le comparide maintenant à d'autres outils et ça a l'air vraiment intéressant! :)
Bien que cela soit assez long depuis cela, j'ai récemment pris la même question. J'ai constaté que fondamentalement: cgal est énorme i>, tellement plus complexe, il comprend de nombreux algorithmes pré-construits, mais la plupart d'entre eux ont une licence GPL, afin que des projets commerciaux avec un budget faible ne soient pas les le plus pratique. OpenMesh, D'autre part, est tout à fait plus simple, avec une licence flexible compatible avec des projets commerciaux (LPGL), bien qu'elle dispose d'une bibliothèque de petites algorithmes.
Vous pouvez essayer le graphite, une structure de traitement de géométrie open source, beaucoup plus facile à manipuler que cgal tout en fournissant Delaunay, etc.
http://alice.loria.fr/index.php?option=com_content&view = article & ID = 22 P>
Ceci est définitivement plus avancé que "simplement manipuler des triangles et des points", mais fournir des fonctionnalités intéressantes souvent nécessaires pour le traitement des mailles. P>
Comme vous êtes neuf ici, assurez-vous de vous informer des fonctionnalités acceptées et anticipé.
Je ne peux pas sélectionner plus d'une réponse aussi correcte? Donc, à l'heure actuelle, je dois examiner profondément ces 2 bibliothèques - Openmesh et CGEO pour voir ce qui est préférable de dire. Je parle que les deux ont des caractéristiques de traitement de poly similaires, mais je me demandais lequel d'entre eux est mieux "conçu"