Simple Science

La science de pointe expliquée simplement

# Informatique# Graphisme

Améliorer les requêtes de distance point-à-maille

Une nouvelle méthode pour accélérer la recherche de distances entre des points et des surfaces maillées.

― 6 min lire


Requêtes rapidesRequêtes rapidesPoint-à-Mailledes maillages 3D complexes.Améliorer les requêtes de distance pour
Table des matières

Dans beaucoup de domaines, comme la graphisme informatique et le design, savoir quelle est la distance la plus courte d'un point à une surface maillée est super important. Une maille est composée de sommets (points), d'arêtes (lignes), et de faces (surfaces planes). Le défi, c’est de trouver rapidement et efficacement le point le plus proche sur la maille à partir d'un point donné dans l'espace.

Méthodes Actuelles

En ce moment, beaucoup de méthodes utilisent une structure de données appelée Hiérarchie de volumes englobants (BVH) pour accélérer le processus de requête. BVH organise la maille dans un arbre, ce qui permet d'éliminer rapidement les parties de la maille qui ne contiennent pas le point le plus proche. Quelques outils populaires qui aident avec ces requêtes incluent le Proximity Query Package (PQP), Embree, et le Fast Closest Point Query (FCPW). Cependant, ces méthodes peuvent encore être lentes, surtout avec des mailles complexes.

Notre Approche

On propose une nouvelle méthode appelée P2M qui vise à améliorer la rapidité des requêtes de distance point-à-maille. Notre approche se concentre sur deux composants principaux : un Arbre KD (KDT) des sommets de la maille et une table d'interception.

Arbre KD

Un arbre KD est une structure de données qui organise les points dans l'espace. Ça permet de rechercher efficacement en divisant l'espace en régions. Dans notre cas, on crée un arbre KD des sommets sur la surface de la maille. Ça aide à identifier rapidement quel sommet est le plus proche du point de requête.

Table d'Interception

La table d'interception est une autre partie cruciale de notre méthode. Elle enregistre les relations entre les sommets et les arêtes ou les faces avec lesquelles ils interagissent. Donc, quand on trouve le sommet le plus proche du point de requête, on peut rapidement vérifier quelles arêtes ou faces pourraient contenir le point le plus proche.

Le Processus de Requête

Quand un utilisateur fournit un point de requête, on trouve d'abord le sommet le plus proche en utilisant l'arbre KD. Une fois le sommet le plus proche identifié, on vérifie ensuite la table d'interception pour voir quelles arêtes ou faces sont liées à ce sommet. Ce processus nous permet de trouver beaucoup plus rapidement le point réel le plus proche sur la maille comparé aux méthodes traditionnelles.

Prétraitement

Avant de traiter les requêtes, on effectue une étape de prétraitement où on construit l'arbre KD et la table d'interception. Cette préparation permet d'avoir des temps de réponse plus rapides lorsque les requêtes réelles sont faites.

Inspection d'Interception

Pendant le prétraitement, on utilise une technique appelée inspection d'interception. Cette technique vérifie quels sommets interceptent des arêtes ou des faces. Une approche de flooding est utilisée pour explorer la maille et remplir la table d'interception. Plutôt que de vérifier chaque paire de sommets et d'arêtes ou de faces, on les inspecte de manière connectée. Ça accélère vraiment le processus.

Résultats Expérimentaux

Pour évaluer notre méthode, on a mené une série d'expériences. On a testé les performances de notre algorithme P2M par rapport à des méthodes existantes comme PQP et FCPW. Les résultats ont montré que notre algorithme réduit significativement le temps nécessaire pour effectuer des requêtes de distance point-à-maille.

Performance des Requêtes

Dans nos tests, le temps moyen pris pour trouver le sommet le plus proche en utilisant l'arbre KD était vraiment rapide. De plus, le temps pour trouver le primitive géométrique la plus proche en utilisant notre table d'interception était aussi rapide. La combinaison de ces deux parties a conduit à un temps de requête global beaucoup plus rapide par rapport à d'autres méthodes.

Impact de la Complexité de la Maille

Une des découvertes significatives a été la performance de notre méthode avec des complexités de maille variées. À mesure que le nombre de faces dans la maille augmentait, notre algorithme maintenait une performance stable, contrairement à certaines méthodes traditionnelles qui ralentissaient considérablement avec des formes plus complexes.

Test Basé sur les Threads

On a aussi testé comment notre méthode se comportait avec plusieurs threads. En divisant la charge de travail entre plusieurs threads, on a découvert que la performance de notre méthode s'améliorait beaucoup, ce qui permet de gérer plusieurs requêtes en même temps.

Utilisation de Mémoire

Les besoins en mémoire pour notre méthode incluent le stockage de l'arbre KD, les informations géométriques des primitives de la maille, les listes d'interception, et les structures R-tree utilisées pour le filtrage. Bien que l'utilisation de mémoire soit plus élevée que certaines autres méthodes, le compromis pour une vitesse de requête améliorée était significatif.

Limitations

Malgré les avantages, notre méthode a encore quelques limitations. La table d'interception peut devenir assez grande, surtout pour des formes symétriques où beaucoup de sommets peuvent être liés à un grand nombre d'arêtes et de faces. Dans des cas comme celui-ci, le processus peut être plus lent, et on explore des moyens de l'optimiser davantage.

Une autre limitation est que, bien que notre méthode se concentre sur les requêtes de distance point-à-maille, elle ne supporte pas encore d'autres types de requêtes, comme les intersections ligne-surface. On vise à résoudre cela dans de futurs projets.

Conclusion

Notre nouvelle approche, P2M, offre une amélioration significative dans la recherche efficace de la distance point-à-maille. Avec l'utilisation d'un arbre KD et d'une table d'interception, on peut rapidement trouver la primitive géométrique la plus proche d'un point de requête. Les résultats expérimentaux montrent que notre algorithme surpasse de nombreuses méthodes existantes, surtout lorsqu'il s'agit de mailles complexes.

Alors qu'on continue à peaufiner notre approche, on se réjouit de résoudre les limitations et d'élargir ses capacités. L'avenir promet des possibilités excitantes pour améliorer la modélisation 3D et le design grâce à de meilleures et plus rapides techniques de requêtes.

Source originale

Titre: P2M: A Fast Solver for Querying Distance from Point to Mesh Surface

Résumé: Most of the existing point-to-mesh distance query solvers, such as Proximity Query Package (PQP), Embree and Fast Closest Point Query (FCPW), are based on bounding volume hierarchy (BVH). The hierarchical organizational structure enables one to eliminate the vast majority of triangles that do not help find the closest point. In this paper, we develop a totally different algorithmic paradigm, named P2M, to speed up point-to-mesh distance queries. Our original intention is to precompute a KD tree (KDT) of mesh vertices to approximately encode the geometry of a mesh surface containing vertices, edges and faces. However, it is very likely that the closest primitive to the query point is an edge e (resp., a face f), but the KDT reports a mesh vertex \u{psion} instead. We call \u{psion} an interceptor of e (resp., f). The main contribution of this paper is to invent a simple yet effective interception inspection rule and an efficient flooding interception inspection algorithm for quickly finding out all the interception pairs. Once the KDT and the interception table are precomputed, the query stage proceeds by first searching the KDT and then looking up the interception table to retrieve the closest geometric primitive. Statistics show that our query algorithm runs many times faster than the state-of-the-art solvers.

Auteurs: Chen Zong, Jiacheng Xu, Jiantao Song, Shuangmin Chen, Shiqing Xin, Wenping Wang, Changhe Tu

Dernière mise à jour: 2023-08-30 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2308.16084

Source PDF: https://arxiv.org/pdf/2308.16084

Licence: https://creativecommons.org/licenses/by-nc-sa/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires