FR3039686A1 - Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance - Google Patents

Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance Download PDF

Info

Publication number
FR3039686A1
FR3039686A1 FR1557674A FR1557674A FR3039686A1 FR 3039686 A1 FR3039686 A1 FR 3039686A1 FR 1557674 A FR1557674 A FR 1557674A FR 1557674 A FR1557674 A FR 1557674A FR 3039686 A1 FR3039686 A1 FR 3039686A1
Authority
FR
France
Prior art keywords
triangulation
points
tolerance
volume
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1557674A
Other languages
English (en)
Other versions
FR3039686B1 (fr
Inventor
Pierre Alliez
David Cohen-Steiner
Manish Mandad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut National de Recherche en Informatique et en Automatique INRIA
Original Assignee
Institut National de Recherche en Informatique et en Automatique INRIA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut National de Recherche en Informatique et en Automatique INRIA filed Critical Institut National de Recherche en Informatique et en Automatique INRIA
Priority to US15/749,011 priority Critical patent/US20190019331A1/en
Priority to EP16758233.7A priority patent/EP3329465A1/fr
Priority to PCT/FR2016/051997 priority patent/WO2017021644A1/fr
Publication of FR3039686A1 publication Critical patent/FR3039686A1/fr
Application granted granted Critical
Publication of FR3039686B1 publication Critical patent/FR3039686B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/012Dimensioning, tolerancing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

Le traitement de données géométriques part d'un volume de tolérance Ω, relatif à des données géométriques brutes de départ. On initie (201) une triangulation canonique dans le volume de tolérance, à partir d'un jeu S de points échantillons pris aux limites de ce volume de tolérance, et de points LBB situés à l'extérieur de celui-ci. On raffine (203) cette triangulation canonique, jusqu'à classifier les points de l'échantillon, ce qui fournit un maillage dense du volume de tolérance. Et l'on simplifie (207) ce maillage dense par des opérations de modification de triangulation, en préservant la topologie et la classification des points de l'échantillon.

Description

Traitement de données géométriques, avec approximation isotopique dans un volume de tolérance. L'invention concerne les techniques informatiques de construction ou reconstruction de surfaces géométriques. A la base, une surface ou une forme peut être représentée par un ensemble de points dans l'espace. On parle alors d'un "nuage de points".
Pour en permettre un traitement informatique en tant que surface, une surface à deux dimensions est souvent représentée par un maillage à base de primitives triangulaires. De même, un volume à trois dimensions peut être représenté informatiquement par un maillage tétraédrique. Les expressions "maillage triangulaire" et triangulation couvrent l'ensemble de ces cas.
Une représentation de surfaces par "maillage triangulaire" ou surfaces paramétriques peut être imparfaite, le plus souvent en raison des limites des capteurs utilisés pour l'établir et des algorithmes de reconstruction de surfaces à partir de mesures. Les défauts peuvent être par exemple des trous, ou encore des auto-intersections (car il est rare qu'une surface du monde réel se traverse elle-même). L'expression "soupe de triangles" est utilisée pour viser une triangulation qui peut être imparfaite. Réaliser une approximation fidèle de formes complexes avec des mailles triangulaires (que l'on appelle aussi simplicielles, de l'anglais "simplicial") est un problème à facettes multiples, qui fait intervenir la géométrie, la topologie, et leur discrétisation (découpage en primitives).
Ce problème a suscité un intérêt considérable, du fait de sa vaste gamme d'applications, et de la disponibilité toujours croissante de capteurs géométriques. Il en découle une disponibilité nettement accrue de modèles géométriques scannés, ce qui ne signifie pas que leur qualité croît : alors que de nombreux praticiens ont accès à des systèmes d'acquisition de haute précision, la tendance récente est à remplacer ces outils coûteux par une combinaison hétérogène de dispositifs d'acquisition du niveau grand public. Les mesures engendrées par ces derniers sont insusceptibles d'un traitement direct. C'est encore plus vrai si l'on cherche à fusionner les données hétérogènes provenant de différents capteurs grand public. De même, la diversité des outils de traitement géométrique se traduit par une augmentation du nombre de défauts dans les données : la conversion de et vers différentes représentations géométriques a souvent pour effet de perdre en qualité par rapport au signal d'entrée. Rares sont les algorithmes qui procurent, sur leur sortie, des garanties de qualité meilleures que leurs exigences en termes de signal d'entrée.
On a recours à des discrétisations de plus en plus fines, pour capturer des formes géométriques complexes. Ceci fait que le souci devient dominant d'offrir des garanties géométriques strictes, pour être robustes à l'apparition d'artefacts et rendre possible la certification des algorithmes.
Par "garanties géométriques", on entend la fixation d'un maximum aux erreurs de l'approximation géométrique, et l'absence d'auto-intersections.
Il s'y ajoute des garanties topologiques, comme l'homotopie, l'homéomorphisme ou l'isotopie. Ces notions sont définies plus loin.
En l'occurrence, l'isotopie signifie qu'il existe une déformation continue qui déforme une forme sur une autre, tout en maintenant un homéomorphisme entre ces deux formes.
Des maillages de surface offrant ces garanties sont requis pour obtenir un rendu sans artefact, pour l'ingénierie numérique, pour l'ingénierie inverse, pour la fabrication, et pour l'impression 3D.
La simplification géométrique permet de réduire le nombre de primitives. La simplification topologique peut réparer des trous et des dégénérescences présents dans les discrétisations existantes. Ces deux types de simplifications peuvent être utilisés en combinaison pour reconstruire des formes propres à partir de données géométriques brutes telles que des nuages de points, ou des soupes de triangles.
De nombreuses techniques ont été proposées au fil des ans pour réaliser des approximations informatiques de formes. Peu d'entre elles procurent une limite supérieure des erreurs.
Le Document [Refl] (Annexe 2) a proposé une méthode d'approximation en temps polynomial, avec une garantie de descendre à un nombre minimal de sommets pour une tolérance d'erreur maximale donnée. Mais ce résultat est purement théorique, et ce document n'offre pas d'algorithme pratique de mise en oeuvre. L'approximation à erreur maximale a été recherchée également par regroupement ("clustering") dans [Refl8], par décimation de mailles [Ref9], [Refl5], [ReflO], [Ref28] ou encore par une combinaison de ces deux techniques [Ref24],
En général, la métrique d'erreur considérée est la distance de Hausdorff unidirectionnelle qui remonte au maillage d'entrée, mais certains ont utilisé la distance bidirectionnelle [Ref 9],
De façon générale, ces approches ne sont pas suffisamment génériques pour travailler sur des données d'entrée hétérogènes et imparfaites. Et elles ne permettent pas de garantir une sortie dénuée d'intersections.
On peut éviter de créer des intersections pendant la décimation de mailles ([Ref26]), mais cela ne suffit pas dans le cas de données d'entrées qui comprennent elles-mêmes des auto-intersections, et ces évitements impliquent une fin prématurée de la phase de simplification, et ce qui se traduit au bout du compte par des maillages trop complexes.
De façon générale, il est important d'engendrer en sortie un maillage qui soit isotopique aux données d'entrée, et se contente d'un faible nombre de triangles (ou de sommets). En 2D, ceci s'appelle le problème des polygones inscrits minimaux ("minimum nested polygons"), et a été bien étudié dans le cas convexe [Ref22], En 3D cela devient le problème des polyèdres inscrits minimaux, dont on a montré qu'il est de difficulté N-P.
Bien que ce problème soit ancien, il n'existe toujours pas de solution robuste et pratique qui réponde à ce défi scientifique et technique. La présente invention vient y remédier.
Le procédé proposé à cet effet part, comme données d'entrée, d'un volume de tolérance Ω.
Ce volume de tolérance peut être déterminé, dans le cadre d'un pré-traitement, à partir de données géométriques brutes de départ, par exemple sur la base d'un nuage de points ou d'une soupe de triangles, ou encore à partir de n'importe quel ensemble de données géométriques, même hétérogènes.
Le procédé proposé comprend les étapes suivantes : A. recevoir un volume de tolérance Ω, relatif à des données géométriques brutes de départ, B. initier une triangulation canonique dans le volume de tolérance, à partir d'un jeu S de points échantillons pris aux limites de ce volume de tolérance, et de points situés à l'extérieur de celui-ci, C. raffiner cette triangulation canonique, jusqu'à classifier les points de l'échantillon, ce qui fournit un maillage primaire dense, de topologie correcte, pour le volume de tolérance, et D. simplifier ce maillage dense par des opérations de modification de triangulation, en préservant la topologie et la classification des points de l'échantillon.
Est également proposé un dispositif de traitement de données géométriques, comprenant :
Une mémoire de données géométriques, pour recevoir des données graphiques représentant un volume de tolérance,
Un organe d'initialisation, agencé pour réaliser une première triangulation canonique entre le bord du volume de tolérance et des points situés à l'extérieur de celui-ci,
Un organe de raffinement, agencé pour préciser ladite première triangulation jusqu'à fournir un maillage dense du volume de tolérance, qui préserve une condition de classification des points de la triangulation,
Un organe de simplification, agencé pour simplifier ledit maillage dense, en préservant la topologie et la classification de ses points, et un pilote qui actionne successivement l'organe d'initialisation, l'organe de raffinement, et l'organe de simplification, pour des données graphiques en évolution à partir du même volume de tolérance. D'autres caractéristiques sont également proposées, pour le procédé comme pour le dispositif correspondant. L'étape B d'initialisation peut comprendre la sous-étape d'échantillonner les limites du volume de tolérance selon une densité d'échantillonnage choisie σ, ce qui fournit l'ensemble S de points échantillons. L'étape B peut comprendre le marquage de chaque point échantillon de l'ensemble S par une valeur-étiquette qui représente l'index de la composante connexe de bord de ce point, dans le volume de tolérance. L'étape C de raffinement comprend alors la génération itérative de la triangulation canonique, en insérant un point à la fois, sur au moins une partie de l'ensemble S de points, jusqu'à ce que tous les points concernés vérifient une condition de classification, appuyée sur la valeur d'une fonction F elle-même dépendant de leur valeur d'index, et sur son interpolation par une fonction d'interpolation f appliquée à chaque maille de la triangulation 3D.
Ainsi, il peut être fait usage d'un opérateur de classification de point, qui reçoit la désignation d'un point à traiter, et détermine une fonction d'interpolation f sur la base de la maille entourant ce point à traiter, et de valeurs-étiquettes relatives aux sommets de cette maille, pour fournir une étiquette interpolée, et comparer celle-ci à une étiquette courante du point à traiter, ce qui permet de déterminer une condition de classification du point à traiter. L'étape C peut se compléter par la construction d'une isosurface linéaire par morceaux Zset, à l'aide des points où la fonction d'interpolation f possède une même valeur intermédiaire choisie, en particulier nulle, cette isosurface Zset étant une surface fermée, qui forme une approximation surfacique du volume de tolérance.
De préférence, la triangulation canonique est une triangulation de Delaunay.
Les données géométriques brutes de départ peuvent être des données 2D ou des données 3D.
De son côté, l'étape D. de simplification peut comprendre les opérations suivantes :
Dl. déterminer si des opérations de modification de triangulation sont valides, c'est-à-dire préservent la topologie du maillage et préservent la condition de classification de l'ensemble S de points échantillons, et D2. effectuer les opérations de modification de triangulation valides dans un ordre déterminé.
De préférence, les opérations de modification de triangulation comprennent des fusions d'arêtes et/ou des fusions de demi-arêtes. L'ordre peut être déterminé en fonction d'un critère d'optimisation.
Dans un mode de réalisation, l'étape D. porte sur un volume dit "tolérance simplicielle" qui approche le volume de tolérance par une union de mailles de la triangulation canonique, l'isosurface Zset étant contenue dans ce volume dit "tolérance simplicielle",
Les étapes DI et D2 peuvent alors être effectuées : D'abord sur le bord du volume dit "tolérance simplicielle",
Ensuite sur le fruit d'une triangulation mutuelle entre l'isosurface (Zset) et le volume dit "tolérance simplicielle", cette triangulation mutuelle ajoutant des sommets, des arêtes et des mailles dans la triangulation, sur l'isosurface,
Enfin, avec d'autres arêtes contenues dans le volume dit "tolérance simplicielle", jusqu'à couvrir toutes les arêtes possibles. L'invention vise également un produit-programme d'ordinateur comprenant des portions de code de programme pour mettre en oeuvre le procédé ou le dispositif précités, lorsque le programme est exécuté sur un ordinateur. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels : - Les figures 1-a à 1-e illustrent schématiquement un premier exemple d'application de l'invention ; - la figure 2 est le diagramme de flux général du mécanisme proposé selon l'invention, - la figure 3 illustre un exemple de début d'application de l'invention. - la figure 4 est un diagramme de flux qui détaille celui de la figure 2, - la figure 5 est un dessin illustrant la définition de ratios barycentriques, - la figure 6 est un diagramme de flux qui détaille une réalisation préférentielle de l'étape de raffinement 203 des figures 2 et 4, - les figures 7 montrent différents état de la triangulation pendant la phase de raffinement, sur un autre exemple, très géométrique, d'application de l'invention, - les figures 8 montrent différents état de la triangulation pendant la phase de simplification, sur le même exemple, très géométrique, d'application de l'invention, - les figures 9 sont des dessins illustrant un cas particulier d'application de l'invention, - les figures 10 sont des représentations d'éléphants montrant la robustesse du procédé selon l'invention, - les figures 11 illustrent schématiquement d'autres exemples d'application de l'invention, sur le même objet que les figures 1, - la figure 12 est un diagramme, illustrant certains avantages de l'invention, - la figure 13 est un autre diagramme, illustrant certains avantages de l'invention, - la figure 14 est une autre représentation, dite « fertilité », sur laquelle portent les diagrammes des figures 12 et 13, - les figures 15 sont des représentations comparables à celle de la figure 3, permettant de mieux comprendre la sous-phase de triangulation mutuelle, dans la phase de simplification, - les figures 16 illustrent deux mécanismes de fusion d'arêtes et de demi-arêtes, - la figure 17 est un diagramme de flux qui détaille une réalisation préférentielle pour l'étape de simplification 207 des figures 2 et 4, - la figure 18 est le schéma de principe d'un dispositif selon l'invention, et - la figure 19 est le schéma de principe d'un opérateur de classification utilisé selon l'invention.
Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La nature de l'invention fait que certaines caractéristiques ne s'expriment complètement que par le dessin.
La description est suivie d'une Annexe 1 comportant des définitions, et d'une Annexe 2 regroupant les coordonnées des documents auxquels il est fait ici référence. Ces annexes font partie intégrante de la description.
On examinera d'abord les figures la à le, pour une description très générale de l'invention, faite en référence à la figure 2, qui illustre les grandes étapes de fonctionnement du procédé proposé, et à la figure 4, qui détaille la figure 2.
La figure 1-a illustre le point de départ, à savoir un volume de tolérance Ω relatif à une pièce mécanique mesurée par un scanner laser, avec une tolérance d'entrée δ de 0,6 %.
La figure 1-b illustre ce qu'on obtient après l'étape de raffinement (203, figure 2). Le résultat est une fonction linéaire par morceaux Z, correspondant à un maillage surfacique du volume de tolérance Ω de la figure 1. Le nombre de sommets est 20,4k (20.400).
On procède ensuite à des simplifications, conformément à l'étape 207 (figure 2).
La figure 1-c illustre le même maillage que la figure l.b, mais après qu'il ait subi une première simplification (simplification du bord 0Γ de la tolérance "simplicielle" Γ, étape 2072, figure 4), qui le fait descendre à 5,3 k sommets.
La figure 1-d illustre le même maillage, après triangulation mutuelle et simplification de Z (étape 2074, figure 4), qui le fait descendre à 1,01 k sommets.
Enfin, la figure 1-e illustre le maillage en fin de simplification (étape 2076, figure 4) qui est descendu encore à 752 sommets.
On observe, à l'œil, que, même simplifié, le maillage de la figure 1-e représente bien l'objet défini par les figures précédentes.
Il est maintenant fait référence à la figure 3, qui utilise un volume de tolérance curviligne symbolique, plus simple que celui des figures 1.
On a vu que la figure 2 illustre les grandes étapes de fonctionnement du procédé proposé. La figure 4 illustre certaines étapes du procédé de façon plus détaillée.
Sur la figure 3, le volume de tolérance Ω est défini par une forme curviligne boudinée, dont la zone frontière 0Ω présente deux bordures όΩι et 0Ω2, dans une vue en coupe en plan. L'étape 201 des figures 2 et 4 est une initialisation. Comme indiqué en 2011 (Figure 4), l'initialisation comprend d'abord un échantillonnage du bord (ou de la frontière) du volume de tolérance.
On obtient un ensemble S de points échantillons s, stocké à l'étape 2013 (figure 4). Cet échantillonnage est en principe "σ-dense". Cela signifie que des boules de rayon σ centrées sur tous les points s de S recouvrent intégralement la zone frontière 0Ω du volume de tolérance Ω. En pratique, σ est une fraction de l'épaisseur δ de Ω.
Dans le cas le plus simple, celui de la figure 3, la zone frontière 0Ω n'a que deux composantes connexes de surfaces de bord, à savoir ôOi (frontière externe) et 0Ω2 (frontière interne). Dans ce cas, on distingue facilement l'intérieur et l'extérieur d'un bout à l'autre de la zone frontière 0Ω. Cela peut se faire formellement, en affectant à chaque échantillon s de l'ensemble S une valeur d'étiquette (ou label) F(s) qui est, par exemple: F(s) = 1 si le point s est sur όΩι, et F(s) = -1 si le point s est sur 0Ω2.
Cette valeur F(s) peut être vue comme une représentation de l'index (ou "indice") de la composante connexe de bord du point s considéré, dans le volume de tolérance.
Une autre fonction ’f' est construite : Pour un point x, présent dans une maille M (triangulaire en 2D, tétraédrique en 3D), on calcule une fonction d'interpolation linéaire f(x, M), définie sur la base des valeurs F(s) aux trois ou quatre sommets de la maille M (triangle ou tétraèdre), et des coordonnées barycentriques du point x considéré, par rapport aux sommets de la maille. Plus précisément, f(x, M) est une combinaison linéaire convexe des valeurs de F aux sommets vi de la maille M :
où pour tout i, ai est positif ou nul, et la somme des ai est 1. Les valeurs de ai se définissent par exemple comme indiqué sur la figure 5 :
Pour un point X situé dans une maille triangulaire ABC, l'un des ai est la valeur a pour X par rapport au sommet A du triangle, notée aA(X), qui est le rapport de la surface du triangle XBC à la surface du triangle ABC.
On aura donc : f(x,M) = aA(X) F(A) + aB(X) F(B) + ac(X) F(C) C'est la même chose avec une maille tétraédrique, qui comporte un sommet de plus, et où les surfaces deviennent des volumes.
Pour un point X situé dans une maille tétraédrique ABCD, la valeur a pour X par rapport au sommet A du tétraèdre, notée aA(X), est le rapport du volume du tétraèdre XBCD au volume du tétraèdre ABCD. Et la formule devient : f(x,M) = aA(X) F(A) + aB(X) F(B) + ac(X) F(C) + aD(X) F(D)
En 3D, dans le cas de tétraèdres, la fonction interpolée f(x, M) est contrainte à être une fonction qui vérifie la condition dite de Lipschitz (avoir une dérivée limitée). L'homme du métier sait comment mettre en oeuvre cette condition supplémentaire, qui s'impose au cours du raffinement. On en donnera des exemples plus loin, en référence aux figures 9. D'autres informations sur ces calculs barycentriques sont disponibles dans [Ref25], A côté de cela, l'ensemble des points p où f(p) = 0 correspond à une ligne polygonale (une surface en 3D) dite ZeroSet. Cette ligne polygonale ZeroSet, également notée Z en abrégé, est une surface linéaire par parties, qui se place à l'intérieur du volume de tolérance.
On utilise aussi une grandeur d'erreur ε, qui peut être définie comme suit : ε (s) = | f(s, M) - F(s) |, où la notation | x | vise la fonction valeur absolue de x.
Faisant partie de l'ensemble S, le point s possède une valeur F(s). Dans la maille M du maillage qui contient ce point s, celui-ci reçoit une valeur interpolée f(s, M).
On considère un paramètre a, avec (0 < a < 1). La valeur par défaut de a peut être fixée à 0,2. On dira alors : si ε (s) <= (1 - a), que le point s est bien classifié avec la marge a,
Sinon, que le point s est mal classifié.
Une valeur ε proche de 1 indique que le maillage doit être raffiné.
Ce raffinage se fait en ajoutant à l'ensemble Sp (ensemble des points qui font l'objet de la triangulation) un point x de l'ensemble S qui ne fait pas encore partie de Sp. Ce point x inséré dans le maillage possède une valeur-étiquette F(x). On refait alors le calcul de classification, et de l'erreur ε, pour tous les points non insérés de l'ensemble S (c'est-à-dire pour tous les points de l'ensemble S qui ne font pas partie de l'ensemble Sp).
En théorie du moins, il serait possible de procéder dans un ordre arbitraire. On préfère actuellement commencer par les points qui donnent l'erreur la plus grande, et faire une itération ensuite. C'est ce que l'on décrira plus loin, en référence au mécanisme illustré sur la figure 6.
On observe que ce mécanisme converge quel que soit le mode de sélection des points ajoutés: dans le pire des cas on ajouterait tous les points de l'échantillon, et ils sont alors tous bien classifiés.
Dans le cadre d'un raffinement de Delaunay, les points que l'on ajoute à l'ensemble courant d'échantillons à trianguler (Sp) sont appelés "points de Steiner." (A ne pas confondre avec le point de Fermât d'un triangle, que certains appellent aussi "point de Steiner").
Quand ceci est terminé, et que tous les points sont correctement classifiés, c'est-à-dire que l'erreur est partout <= (1 - a), on dispose d'un maillage primaire correct, mais compliqué.
On recommencera maintenant la description sur la base des figures 7, qui sont très géométriques, ce qui facilite la compréhension. Ces figures illustrent le traitement en deux dimensions, que l'homme du métier saura transposer en trois dimensions. Seule l'illustration 2D est possible ; en effet, des figures en 3D seraient illisibles, car tout se superposerait à l'écran.
La figure 7.0 montre un volume de tolérance tel quel.
La figure 7.1 montre la phase d'initialisation, dans laquelle apparaissent les points s de l'échantillonnage S des bordures de la zone frontière du volume de tolérance. A l'extérieur, pour l'étiquette F(s) = 1, ces points sont des ronds creux. A l'intérieur, pour l'étiquette F(s) = -1, ce sont des ronds pleins.
La figure 7.2 fait apparaître une enveloppe dite boîte englobante élargie LBB. Cette boîte englobante élargie LBB (ou "Loose Bounding Box") peut être construite en calculant la boite englobante stricte du volume de tolérance, à l'aide du minimum et du maximum des coordonnées en x,y,z des points du volume de tolérance. Cette boîte LBB est agrandie par homothétie d'un facteur 1.5, par exemple.
La boîte englobante élargie LBB comprend les points LBB1 à LBB4 visibles sur la figure 7.2. En 2D, la boîte englobante est formée par seulement 4 points, contre 8 points en 3D. On peut utiliser d'autres moyens permettant de définir des points externes dont la propriété d'englobement est garantie.
On considère alors un autre ensemble Sp de points sp. Au départ vide, cet ensemble Sp reçoit d'abord tous les points de la boîte englobante élargie LBB. A l'étape 2015 de la figure 4, on commence par réaliser une triangulation T à partir de ces premiers points de la LBB placés dans Sp, mais qui ne sont pas des points de S.
Les segments de droite qui forment les limites des mailles sont illustrés en trait tireté long et fin, sur les figures 7.
On donne aux points de la LBB des valeurs étiquettes spéciales, qui dépendent de leur distance par rapport au bord du volume de tolérance. Ces valeurs étiquettes spéciales peuvent être supérieures à 1.
Par exemple : on assigne la valeur-étiquette 1 au bord le plus externe du volume de tolérance, et l'étiquette 'd+1' aux sommets de la LBB, où d représente la distance normalisée entre un sommet de la LBB et le point du bord externe du volume de tolérance qui est le plus proche du sommet de la LBB. La normalisation est fonction de l'épaisseur du volume de tolérance, qui est déterminée à la valeur 2 (la différence entre -1 et +1).
On fait alors le calcul de classification, et de l'erreur ε, pour tous les points non insérés de l'ensemble S, auxquels s'ajoutent les points de la boîte englobante élargie qui sont dans l'ensemble Sp.
Ce calcul souffre une exception dans le cas où un point de l'échantillon est localisé dans une maille où la fonction est homogène, c'est-à-dire avec des valeur-étiquettes identiques aux sommets de la maille. Dans ce cas si la fonction a le même signe que le label du point de l'échantillon alors il est bien classifié, et mal classifié sinon, sans qu'on se serve de l'erreur ε.
Comme déjà indiqué, tous les points s de l'ensemble S se sont vu affecter une valeur étiquette F(s). La fonction d'interpolation f est construite, comme précédemment, pour chaque maille (triangle en 2D, tétraèdre en 3D) : Pour un point x de l'ensemble Sp, présent dans une maille tétraédrique, on calcule une fonction d'interpolation linéaire f(x, M), définie sur la base des valeurs étiquette F(s) aux sommets de la maille tétraèdre M, et des coordonnées barycentriques du point x considéré, par rapport aux sommets de la maille. Et l'on calcule à chaque fois la grandeur d'erreur ε, qui indique si le point x est ou non bien classifié.
Sur la figure 7.2, un point bien classifié est représenté par un carré. Un point mal classifié est représenté par une croix.
On observe que la fonction interpolée sur les deux triangles LLB1-LBB2-LBB3, ainsi que LLB1-LBB3-LBB4 est ici homogène et positive en tous points, puisque les sommets de la LBB ont tous une étiquette 'd+1' qui est nettement positive.
On est donc dans le cadre de l'exception précitée.
Les ronds creux de la figure 7.1 ont un label positif + 1. Ils sont donc de même signe que la fonction interpolée sur les deux triangles, et par conséquent bien classifiés. Par conséquent, ces ronds creux de la figure 7.1 deviennent des carrés sur la figure 7.2.
De leur côté, les ronds pleins de la figure 7.1 ont un label négatif - 1. Ils sont donc de signe contraire à la fonction interpolée sur les deux triangles, et par conséquent mal classifiés. Par conséquent, ces ronds pleins de la figure 7.1 deviennent des croix sur la figure 7.2.
Commence ensuite le raffinement proprement dit (étape 203 de la figure 2, et cadre 203 de la figure 4). A l'étape 2031 de la figure 4, on ajoute un premier point de Steiner SP1 dans la triangulation. Ce point SP1 est ajouté à l'ensemble Spdes points à trianguler.
Ce point SP1 peut être celui dont l'erreur ε est maximum, comme indiqué ici par ailleurs.
Sur la figure 7.3, ce premier point de Steiner SP1 se trouve par hasard être proche de la diagonale L1 de l'enveloppe LBB. L'étiquette de SP1 est F(SP1) = -1.
On refait alors le calcul de classification, et de l'erreur ε, pour tous les points de l'ensemble S, et pour le point SP1 ajouté (étape 2032 de la figure 4).
Les deux points extrêmes LBB1 et LBB3 de la diagonale L1 font partie de la LBB. Cela détermine une version "SP1" de la fonction f, calculée comme indiqué plus haut, dans les 4 mailles triangulaires LBB1-LBB2-SP1, LBB2-LBB3-SP1, LBB1-LBB4-SP1, LBB3-LBB4-SP1. On obtient finalement f(SPl) = -1, ce qui classifie bien le point ajouté SP1.
Autour du point SP1 est alors définie une isosurface IS1, où f = 0. Cette isosurface est illustrée par une ligne brisée noire en traits gras, presque carrée, sur la figure 7.3.
Considérons le triangle LBB1-LBB2-SP1. La fonction interpolée vaut -1 en SP1, et une valeur positive plus grande que 1 en LBB1 et LBB2, disons 5. Le long de l'arête SP1-LBB1 la fonction varie donc linéairement de -1 à 5, et on trouve donc le niveau zéro de la fonction interpolée f près de SP1, au dessus.
Considérons maintenant le triangle LBB3-LBB4-SP1. Par symétrie, on trouve un autre niveau zéro de la fonction interpolée f près de SP1, au dessous, cette fois.
Les deux segments verticaux de IS1 s'expliquent de la même manière, en considérant les triangles LBB2-LBB3-SP1 et LBB1-LBB4-SP1. L'analyse en 2D faite ci-dessus peut s'extrapoler vers le 3D de la manière suivante : En 3D, la fonction interpolée f est toujours linéaire par morceau, mais évolue dans l'espace donc il y a une profondeur en plus ; et l'isosurface zeroset (ou Zset) n'est plus un segment dans un triangle, mais un polygone planaire dans un tétraèdre, à savoir un triangle ou un quadrilatère.
On observe que, sur la ligne horizontale de points contenue au centre de IS1, les points sont maintenant bien classifiés, et les croix sont devenues des carrés, avec F(s) = 1. Au contraire, les points situés à l'extérieur de IS1 sont restés des croix, avec F(s) = -1, donc mal classifiés.
On observe que la partie basse du contour IS1 est à mi-chemin entre la ligne horizontale de points contenue dans IS1, et la ligne de croix située en dessous.
Les autres éléments du contour IS1 dépendent de la version "SP1" de la fonction f, comme on l'a expliqué plus haut. L'isovaleur IS1 représente le niveau zéro de la fonction interpolée, qui est donc positive d'un côté de IS1, et négative de l'autre côté de IS1. Les points de l'échantillon sont bien classifiés lorsqu'ils sont situés du côté de IS1, qui correspond au signe de leur label ou valeur-étiquette. D'autres informations utiles pour construire une triangulation de Delaunay pourront être trouvées dans [Ref23], Ces informations sont à considérer comme incorporées à la présente description.
Il est à noter que, pour des points en position générale (en 2D, pas plus de 3 points cocirculaires, et en 3D pas plus de 4 points co-sphériques), il existe une seule triangulation de Delaunay, qui est donc canonique. Une propriété est en 2D que les cercles circonscrits aux triangles ne contiennent aucun autre point; de même, en 3D, les sphères circonscrites aux tétraèdres du réseau (constitués par des points du sous-ensemble Sp de S) sont vides, et ne contiennent aucun autre point que les sommets du tétraèdre.
La triangulation de Delaunay est terminée quand tous les points de l'ensemble S sont correctement classifiés (étape 2033 de la figure 4).
Si ce n'est pas le cas, on répète les étapes 2031 à 2033 de la figure 4, en insérant un nouveau point de Steiner. C'est ce qui est fait avec le point SP2 de la figure 7.4, qui est ajouté à l'ensemble Spdes points à trianguler.
On refait alors le calcul de classification, et de l'erreur ε, pour tous les points de l'ensemble S, et pour les points SP1 et SP2 ajoutés (étape 2032 de la figure 4). Il en découle une version dite "SP2" de la fonction f.
Les points où cette version "SP2" de la fonction f est nulle définissent une nouvelle isosurface IS2, qui englobe les points SP1 et SP2. Sur les segments CC20 et CC22 du contour du volume de tolérance, les points restent mal classifiés (des croix). Par contre, au voisinage de SP2, les segments CC21 et CC23 contenus dans IS2 comprennent maintenant des points bien classifiés.
De même, le segment en équerre CC24 devient bien classifié, contrairement aux segments alignés sur lui, mais extérieurs à IS2.
Inversement, les segments en équerre CC25 et CC26 deviennent mal classifiés, contrairement aux segments alignés sur eux, mais extérieurs à IS2. A l'étape de test 2033 de la figure 4, certains points de l'ensemble S restent mal classifiés.
On répète donc les étapes 2031 à 2033 de la figure 4, en insérant un nouveau point de Steiner SP3, comme illustré sur la figure 7.5.
On refait alors le calcul de classification, et de l'erreur ε, pour tous les points de l'ensemble S, et pour les points SP1, SP2 et SP3 ajoutés (étape 2032 de la figure 4). Il en découle une version "SP3" de la fonction f.
Les points où cette version "SP3" de la fonction f est nulle définissent une nouvelle isosurface IS3, qui englobe les points SP1, SP2 et SP3.
Comme précédemment, on observe que les points qui sont à l'intérieur de IS3 n'ont pas la même classification que les points situés sur la même ligne qu'eux, mais à l'extérieur de IS3. A l'étape de test 2033 de la figure 4, certains points de l'ensemble S restent mal classifiés.
On va répéter plusieurs fois les étapes 2031 à 2033 de la figure 4, en insérant à chaque fois un nouveau point de Steiner. Cela donne la figure 7.6, où les points de Steiner sont de gros ronds noirs, si leur valeur-étiquette est négative, ou bien de gros cercles intérieurement blancs, si leur valeur-étiquette est positive. L'isosurface obtenue se rapproche de la forme générale du volume de tolérance, mais il reste des points mal classifiés.
On va encore répéter plusieurs fois les étapes 2031 à 2033 de la figure 4, en insérant à chaque fois un nouveau point de Steiner. Cela aboutit à la figure 7.7, où l'isosurface est entièrement contenue dans le volume de tolérance, et il n'y a plus de croix (de points mal classifiés). A l'étape de test 2033 de la figure 4, on a maintenant atteint la fin du raffinement.
On passe donc à la phase 207 de simplification (ou décimation), des figures 2 et 4.
On a ainsi décrit l'étape 203 des figures 2 et 4, qui est dite "raffinement". L'un des buts de ce raffinement est d'arriver à un maillage sans intersection de surface, qui corresponde à la topologie du volume de tolérance. Comme l'indique le mot "raffinement", on fait évoluer le maillage "de-grossier-à-fin", à l'aide des points successivement insérés.
Le maillage lui-même peut se faire en utilisant une triangulation de Delaunay, dont les structures de données n'acceptent pas d'intersection de surfaces. On peut utiliser d'autres techniques pour construire des triangulations canoniques qui ne s'intersectent pas. Le Demandeur préfère actuellement une triangulation utilisant la propriété de Delaunay, avec la preuve de terminaison et la garantie de topologie qu'elle permet.
Comme indiqué, la sélection des points de Steiner insérés peut se faire en fonction de la grandeur d'erreur ε. Ceci peut être réalisé sur la base du mécanisme de la figure 6, que l'on décrira maintenant, en version 3D. A l'étape 601, on maintient, pour chaque tétraèdre de la triangulation T, une liste de ceux des points échantillons s de l'ensemble S qui sont contenus dans ce tétraèdre. Chaque point est accompagné de son étiquette, et de son erreur ε. Les points de l'ensemble Sp qui sont déjà inclus dans la triangulation ne sont pas dans cette liste. A l'étape 603, on maintient une queue dynamique de priorité, pour chaque tétraèdre de la triangulation T, contenant les points d'erreur maximale dans les tétraèdres, triés par erreur décroissante. A l'étape 605, qui correspond à l'étape 2031 de la figure 4, on ajoute dans la triangulation T le point d'erreur maximale en tête de queue, qui peut être alors supprimé de la queue. A l'étape 607, qui correspond à l'étape 2032 de la figure 4, les calculs d'erreur sont mis à jour. Un test 609, qui correspond à l'étape 2033 de la figure 4, examine si la topologie est correcte, i.e. si l'ensemble S est complètement classifié. Si ce n'est pas le cas, on retourne en 601. Sinon, on peut passer à la phase suivante de simplification du maillage.
En fin de raffinement, la représentation maillée des figures 7.6 et 7.7 est correcte, en ce sens notamment qu'elle ne comprend pas d'intersections, et qu'elle est isotopique. Par contre, elle est trop dense, et contient un nombre excessif de mailles (ou de sommets). On va donc la simplifier, comme on le verra plus loin.
On considérera d'abord la figure 7.8.
Au terme du maillage par triangulation qui constitue le raffinement, on a un ensemble de tétraèdres. On appelle la "tolérance simplicielle", notée Γ, l'union des tétraèdres qui constituent une approximation maillée (triangulée) du volume de tolérance Ω. Ces tétraèdres ont des sommets avec des étiquettes différentes.
Le bord de cette "tolérance simplicielle" est noté ST (sur la Figure 7.8). En 3D, ce bord est composé des triangles qui sont les faces libres des tétraèdres du maillage. C'est une représentation triangulée de la frontière du domaine de tolérance. Le trait mixte sur la figure 7.8 illustre celles des arêtes de cette représentation triangulée qui sont dans le plan de la figure. A partir de là, la simplification de la représentation maillée des figures 7.7 ou 7.8 peut s'effectuer essentiellement en utilisant un processus dit "fusion d'arêtes" (en anglais "edge collapse").
La nature de ce processus sera maintenant décrite en référence aux figures 16, qui sont en 2D.
La figure 16.0 indique les extrémités A et B d'une arête que l'on peut fusionner (on en verra plus loin les conditions). L'opérateur général de fusion supprime l'arête qui joint les sommets, l'un au moins de ces deux sommets, et les faces ou tétraèdres adjacents à l'arête supprimée (Figure 16.2). La position du sommet P résultant de la fusion (sommet cible) est un degré de liberté (continu) de cet opérateur, sous condition de préserver la topologie et de bien classifier tous les points.
Dans le cas où ces deux contraintes (topologie et classification) peuvent être satisfaites, il existe une ou plusieurs régions de l'espace (région de validité) où le sommet cible P peut être placé. On peut le placer arbitrairement dans cette région, mais il est préférable de choisir un point optimum.
Pour cela, on peut utiliser un calcul d'erreur en un point. L'erreur est par exemple la somme des carrés des distances de ce point aux plans support des facettes de l'isosurface Z, ces facettes étant sélectionnées dans un voisinage local à l'arête considérée. Ce voisinage local peut comprendre les facettes de l'isosurface qui sont localisées à une distance 2 de l'arête dans le graphe de la triangulation (ce que l'on appelle « 2-ring »). On recherche le point Q optimum qui minimise cette erreur.
Ce calcul d'erreur sert de critère d'optimisation. En effet, comme point P préféré, on peut alors prendre le point situé dans la région de validité, et qui se trouve le plus près possible du point Q optimum qui minimise ladite erreur.
Il est à noter que ce mode de calcul d'erreur et de détermination du point P préféré est particulièrement pertinent pour des surfaces planaires par partie ; on peut cependant imaginer d'autres solutions en fonction de la nature des surfaces en entrée. Par exemple pour les surfaces courbes par parties, on peut imaginer choisir non plus des plans mais des surfaces paramétriques de type quadriques ou cubiques, et prendre comme erreur la somme des carrés des distances à ces surfaces.
En pratique, pour augmenter la rapidité du traitement, il est intéressant d'utiliser aussi, en variante, un opérateur purement combinatoire que l'on appelle « opérateur de fusion de demi-arête » : dans cette variante moins générale, l'opérateur est contraint à fusionner un sommet de l'arête sur l'autre. Sur la figure 16.1, on fusionne ainsi le sommet A sur le sommet B. Et le critère d'optimisation est défini par la distance entre le point cible (ici le point B) et le point Q optimum calculé comme ci-dessus.
Cet opérateur de fusion de demi-arête est moins puissant que l'opérateur de fusion d'arête qui admet de placer le sommet résultant de la fusion à une position générale P dans l'espace, mais il est beaucoup plus rapide à simuler, puisque l'on connaît directement le point cible B, sans avoir à rechercher le meilleur point P. L'opérateur de fusion de demi-arête est dit combinatoire dans le sens où il existe un nombre fini de degrés de liberté : 2 E fusions possibles, où E représente le nombre d'arêtes de la triangulation. Ensuite lorsqu'aucune fusion de demi-arête n'est possible, on a recours à l'opérateur plus général de fusion d'arêtes.
Il convient de bien comprendre la différence entre les deux phases : raffinement et simplification.
Pendant le raffinement on insère des points de l'échantillon dans une triangulation canonique (dont la connectivité est déterminée par les positions des points). Donc, dans cette phase de raffinement, les degrés de liberté ne sont qu'en termes de choix de points.
Pendant la simplification, on va voir que les opérateurs de fusion agissent par arêtes ou demi-arêtes, donc une queue de priorité trie les opérateurs qui sont valides (qui préservent la topologie et classification des points), suivant un score qui dépend d'un critère d'optimisation.
Le but final est de simplifier le plus possible, et on observe que certaines positions de points après fusion sont propices à une simplification plus importante, intuitivement en préparant mieux les simplifications futures car davantage d'opérateurs de fusion seront valides par la suite.
On précisera maintenant les contraintes (topologie et classification) qui vont permettre de déterminer si un opérateur de fusion en cours de simulation est applicable (« valide ») ou non.
Pour la contrainte de préservation de la topologie, on peut utiliser trois notions :
Une « link condition », décrite dans [Ref21], pour la propriété D-manifold. En 2D cette condition assure que tout voisinage d'un point est homéomorphe (topologiquement équivalent) à un disque ou à un demi-disque. Sur le plan topologique cette condition impose que chaque arête est adjacente à exactement une ou deux faces triangulaires, et que chaque sommet est adjacent à une seule composante connexe. En 3D cette condition assure que tout voisinage d'un point est homéomorphe (topologiquement équivalent) à une boule ou une demi-boule.
La détermination d'un noyau de polyèdres pour vérifier que le plongement est valide [Ref27], En 3D le noyau d'un polyèdre est le lieu des points qui voient tout le bord du polyèdre. Dans le cas général le noyau est soit vide, soit un polyèdre convexe. Le polyèdre considéré pour le calcul du noyau est le polyèdre formé par l'union des tétraèdres adjacents aux deux sommets de l'arête. Lorsque le noyau est non vide on peut fusionner l'arête en plaçant le sommet cible dans le noyau : la triangulation reste valide, c'est-à-dire sans chevauchement ni retournement de tétraèdres. Lorsque le noyau est vide on ne peut pas fusionner l'arête sans créer une triangulation invalide. Dans notre contexte on utilise la construction du noyau pour délimiter une zone de recherche de points qui classifient bien (c'est le point ci-après).
La préservation de la classification des points de l'échantillon, qui se fait comme précédemment, et que l'on reverra ci-après.
Un opérateur de fusion en cours de simulation sera donc considéré comme valide si :
La « link condition » est vérifiée,
La condition de plongement valide est vérifiée, la classification des points de l'échantillon est préservée.
Le processus de simplification peut être conforme à la figure 17.
On considère une à une toutes les arêtes existant dans différentes parties de la triangulation, en commençant par le bord de la tolérance simplicielle, comme on le verra.
Pour chaque arête, l'étape 1701 simule d'abord la fusion de cette arête, pour déterminer si cette fusion est possible (« valide »). Comme déjà indiqué, on essaiera d'abord un opérateur de fusion de demi-arête, puis un opérateur de fusion d'arête générale. La simulation se fait sur la base de l'état courant de la triangulation.
Si l'opérateur de fusion en cours de simulation est valide, l'étape 1703 en stocke la définition dans une queue dynamique de priorité. L'ordre de priorité est défini par le critère d'optimisation précité. A l'étape 1705, on applique le premier opérateur de fusion, dans l'ordre de la queue de priorité.
Après cela, l'étape 1707 met à jour la queue de priorité : suppression des opérateurs qui n'ont plus de raison d'être, car ils portent sur une arête supprimée par l'opérateur de fusion qui vient d'être exécuté.
Re-simulation des opérateurs modifiés, que l'on remet dans la queue, avec leur critère d'optimisation recalculé. Un opérateur est « modifié » lorsque l'opérateur de fusion qui vient d'être exécuté a modifié les parties de la triangulation qui sont adjacentes à l'un au moins des deux sommets de l'arête sur laquelle il porte (ou aux deux sommets).
Les sous-étapes 2072 à 2076 de l'étape 207 de la figure 4 montrent que l'on opère en trois temps. A chaque temps, on considérera d'abord des fusions de demi-arête, puis des fusions d'arête générales.
Ici, une triangulation réciproque (décrite en détail plus loin) s'effectue dans l'étape 2074, au sein de la phase de simplification. Il serait concevable d'effectuer cette triangulation réciproque juste après avoir fait le raffinement. Autrement dit, on peut imaginer simplifier toutes les arêtes possibles après avoir fait tout le raffinement, y compris la triangulation réciproque. Le procédé proposé est considéré comme plus parcimonieux, car il permet une plus faible complexité de la triangulation.
Ainsi, le Demandeur estime actuellement qu'il est préférable de simplifier la triangulation du volume de tolérance (la tolérance simplicielle) avant de lancer la triangulation réciproque, puis le reste de la simplification. L'idée est de réduire la taille de la triangulation avant de la simplifier car le nombre d'opérateurs à utiliser est fonction de cette taille. A noter aussi le point suivant : dans le raffinement, la triangulation 3D proposée est celle de Delaunay; elle est commode, car canonique pour un ensemble de points, et on sait prouver la terminaison du raffinement. Mais c'est « verbeux » : car c'est à points fixés une triangulation la plus isotrope possible- autant dire peu parcimonieuse (en points) aux endroits ou la géométrie est anisotrope. L'idée est donc de réduire la taille de la triangulation avant de la simplifier car le nombre d'opérateurs à utiliser est fonction de cette taille.
La simplification sera maintenant illustrée, en référence aux figures 8.0 à 8.11.
La figure 8.0 reprend le maillage, en son état de la figure 7.7, dont la figure 7.8 a montré qu'il s'agissait de la tolérance simplicielle Γ. On sait que l'isosurface Zset est contenue dans ce volume de "tolérance simplicielle" noté Γ.
La simplification porte d'abord sur le bord ST de la "tolérance simplicielle" (étape 2072 de la figure 4).
Sur la figure 8.0, deux des points sont reliés par une arête SF1, illustrée en gras, pour indiquer qu'ils peuvent être fusionnés.
Comme déjà indiqué, la fusion entre deux sommets adjacents fait disparaître l'arête qui les joint, l'un de ces deux sommets, et les faces ou tétraèdres adjacents à l'arête supprimée.
Lorsque l'on fusionne deux sommets en 3D, on va aussi fusionner (effondrer l'une sur l'autre) deux arêtes situées entre ces deux points et un troisième (qui n'est pas dans le plan de la figure).
Par conséquent, il faut considérer l'ensemble des primitives (triangles en 2D ou tétraèdres en 3D) qui sont adjacentes aux sommets de l'arête supprimée. Les points de l'échantillon qui sont situés dans ces primitives sont appelés ici "points concernés par la fusion".
Il faut alors que, au voisinage des arêtes à effondrer, l'erreur ε en tous les points concernés par la fusion vérifie la condition précitée : ε <= (1- a) autrement dit que tous les points concernés par la fusion soient bien classifiés (symbolisés par des carrés) après la fusion. C'est ce qu'on appelle préserver la condition de classification des points de l'ensemble S.
Comme indiqué, on détermine à l'avance quels sont les opérateurs de fusion qui préservent la classification et la topologie en les « simulant », sans les appliquer. Seuls les opérateurs de fusion retenus comme convenables (« valides ») après simulation sont rangés dans la queue de priorité dynamique de l'étape 1703.
Dans le but d'accélérer les traitements, on effectue d'abord les fusions de demi-arête (half-edge collapse), dont les opérateurs sont beaucoup plus rapides à simuler. Ensuite lorsqu'aucune fusion demi-arête n'est possible on considère les opérateurs plus généraux de fusion d'arêtes.
On peut dire aussi que les mailles de Delaunay concernées doivent être homogènes en ce qui concerne la bonne classification des points. A noter qu'au niveau de la simplification, il n'est pas vérifié que le maillage continue à satisfaire les conditions de Delaunay.
Le résultat après cette première fusion de de demi-arêtes et/ou d'arêtes est illustré sur la figure 8.1.
On a refait le calcul de classification, et de l'erreur ε, pour ceux des points de l'ensemble S qui sont concernés par la fusion. On a également recalculé l'isosurface.
Sur la figure 8.2, deux des points sont reliés par une arête SF2, illustrée en gras, pour indiquer qu'ils peuvent être fusionnés eux aussi.
Le résultat après cette autre fusion est illustré sur la figure 8.3.
Ceci est répété avec tous les points qui peuvent être fusionnés. Quand il n'y a plus d'arêtes à fusionner (de points qui peuvent être fusionnés) au niveau du bord de la tolérance simplicielle 0Γ, on aboutit au résultat de la figure 8.4.
En résumé, jusqu'à présent, la simplification a comporté les étapes suivantes : hl. Délimiter un volume dit "tolérance simplicielle", noté Γ. Il est constitué d'une union de mailles de la triangulation de Delaunay 3D, choisies pour constituer une approximation maillée du volume de tolérance. C'est illustré en 2D sur la figure 7.8, où le trait mixte indique le bord 0Γ de cette tolérance simplicielle. h2. Effectuer des fusions d'arêtes dans 0Γ, en vérifiant la préservation de la condition de classification de S (Figures 8.1 à 8.4).
On continue comme suit : h3. Effectuer une triangulation mutuelle entre l'isosurface (Zset) et le volume dit "tolérance simplicielle", tel que modifié à l'opération h2 (étape 2074 de la figure 4).
Cette triangulation mutuelle (parfois appelée triangulation réciproque) ajoute des sommets avec la valeur F(v)=0 (où v désigne un sommet), des arêtes et des mailles dans la triangulation 3D, sur l'isosurface.
Par cette opération de triangulation mutuelle de l'étape h3, on va en quelque sorte intégrer l'isosurface Z à la triangulation générale du volume de "tolérance simplicielle", noté Γ.
En 2D la triangulation mutuelle entre une triangulation 2D T et une ligne polygonale L (dont les sommets coïncident avec les arêtes de la triangulation) consiste à insérer tous les sommets de L dans T, toutes les arêtes de L dans T, puis conformer la triangulation en ajoutant des arêtes à T pour n'obtenir que des triangles.
Le fonctionnement de la triangulation mutuelle est illustré par les figures 15, sur un objet de même allure que celui de la figure 3 :
Au début (figure 15.1), on a la triangulation existante (au point où elle en est rendue) en traits hachurés, et l'isosurface Zset en traits gras.
La figure 15.2 illustre la triangulation réciproque de la courbe Zset et de la triangulation existante : apparaissent de nouveaux sommets (petits disques noirs) sur la ligne Zset, de nouvelles arêtes, et de nouveaux triangles. La courbe Zset est maintenant représentée sous la forme d'une chaîne d'arêtes de la triangulation.
Enfin, sur la figure 15.3, les triangles sont classifiés en fonction du signe de la fonction interpolée (blanc = positive, gris = négative).
Pour l'exemple des figures 8, le résultat est illustré sur la figure 8.5. On y voit des arêtes ajoutées à la triangulation en traits hachurés, et des nouveaux sommets (petits disques noirs). h4. Effectuer des fusions d'arêtes sur cette isosurface Z, qui prend sa configuration définitive, après ces simplifications. (Figures 8.6 à 8.8). h5. Continuer à effectuer des fusions d'arêtes, sur toutes les arêtes possibles dans le volume de "tolérance simplicielle", en vérifiant notamment la préservation de la condition de classification de l'ensemble S de points échantillons (étape 2076 de la figure 4).
Le processus continue, tant qu'il reste des arêtes à fusionner, du côté intérieur de Z. Il s'arrête lorsqu'aucune arête ne peut être fusionnée sans violer les conditions de classifications des points et de topologie.
Dans ce qui précède, la simplification utilise des opérateurs de fusion d'arête comme opérateurs de modification de triangulation. Il est concevable d'utiliser d'autres opérateurs de modification de triangulation, au moins en partie, par exemple : les opérateurs continus (déplacement de sommets), les opérateurs combinatoires, qui, outre la fusion « half-edge », déjà citée, comprennent des opérateurs comme ceux dits « 4-4 flips », ou encore « edge-removal », comme visibles sur la figure 1 depuis http://graphics.berkeley.edu/papers/Klingner-ATM-2007-10/Klingner-ATM-2007- 10.pdf et les opérateurs mixtes dont la fusion d'arête générale est un exemple.
Sont également utilisables des combinaisons d'opérateurs (par exemple fusion d'arête générale, suivie d'un flip 4-4, puis d'un edge-removal).
Le mode de réalisation décrit évite des besoins excessifs en termes de complexité mémoire et calcul. Son résultat final est illustré sur la figure 8.10. La Figure 8.11 est semblable à la figure 8.10, mais débarrassée des symboles illustrant la classification des points.
Dans le contour final de la figure 8.11, l'isosurface Zset s'inscrit exactement à l'intérieur du volume de tolérance.
En finale, l'isosurface Zset forme une approximation surfacique maillée du volume de tolérance. On peut considérer que Zset et 0Γ se sont rejoints, lors de la triangulation mutuelle.
Le mécanisme qui vient d'être décrit (raffinement + simplification) fonctionne bien dans le cas général. Il peut devoir être aménagé dans des situations particulières.
Certains facteurs pourraient compromettre la phase de raffinement de la topologie.
Tout d'abord, il se peut que l'isosurface Zset traverse δΩ entre deux échantillons, par exemple en raison de la présence d'un tétraèdre plat ("sliver").
Cela est au moins en partie évité en utilisant le paramètre a précité, dans la classification. On a vu qu'un point s est considéré comme bien classifié si ε (s) <= (1 - a)
On considère alors les tétraèdres hétérogènes, qui sont ceux dont les sommets ont des valeurs étiquettes F(s) différentes. On considère aussi une grandeur ou "hauteur" h, qui est la distance entre les triangles de dimension maximale, formés par les sommets du tétraèdre qui ont la même valeur étiquette.
Sur la figure 9A, les trois sommets B, C et D ont la même étiquette, et h est la distance minimale entre le sommet A et le plan support de la face BCD.
Sur la figure 9B, les sommets A et B ont la même étiquette. De même, les sommets C et D ont la même étiquette, h est la distance minimale entre la droite support de AB et la droite support de CD.
Et l'on contraint ces tétraèdres hétérogènes de sorte que h >= 2/ (σα). C'est une manière de faire en sorte que la fonction d'interpolation f vérifie le critère de Lipschitz, suivant lequel la valeur absolue du gradient de cette fonction f est bornée.
Un choix convenable de a fait ainsi que les problèmes de tétraèdre plat ("sliver") sont naturellement résolus.
Comme autres facteurs perturbateurs du raffinement, on peut aussi rencontrer des problèmes d'orientation (direction des perpendiculaires ou "normales") dans des zones complexes.
Ils peuvent être résolus en utilisant ce qui précède. De préférence, et optionnellement, on vérifiera aussi pour chaque tétraèdre qu'une extension de la fonction linéaire par morceau en dehors du tétraèdre, classifie bien aussi des points de l'échantillon pas seulement dans le tétraèdre, mais aussi en dehors. On dira alors que la fonction d'interpolation f classifie la "géométrie locale".
La valeur à choisir pour a dépend de la nature des données d'entrée. La valeur a = 0.2 convient bien, au moins comme valeur de départ.
Il est maintenant fait référence aux figures 10, qui illustrent en partie haute des représentations brutes d'un éléphant (de gauche à droite : un nuage de points sans bruit, une soupe de triangles sans bruit, un nuage de points avec bruit, et une soupe de triangles avec bruit), et en partie basse la triangulation obtenue selon l'invention. Pour chaque exemple les données brutes sont converties en un volume de tolérance en calculant un sous-niveau de la fonction distance aux données (points ou triangles). A gauche (figure 10 A), l'image de départ est un nuage de points qui n'ont pas d'effet notable sur la surface finale triangulée. Plus à droite (figure 10 B), les données de départ formes une soupe de triangles non organisés (avec des intersections, des trous) qui n'ont pas non plus d'effet notable sur la qualité de la surface finale triangulée. Encore plus à droite (figure 10 C), les données de départ sont un nuage de points avec un fort niveau de bruit (incertitude sur leurs coordonnées) qui n'a pas non plus d'effet notable sur la qualité de la surface finale triangulée. Enfin, tout à fait à droite (figure 10 D), les données de départ forment une soupe de triangles très irrégulière et bruitée qui n'a pas non plus d'effet notable sur la qualité de la surface finale triangulée. On note simplement que la triangulation est moins détaillée sur les figures 10 C et 10 D, là où les données de départ ont un fort niveau de bruit, et pour lesquelles un plus grand volume de tolérance est choisi.
Ces exemples illustrent bien la robustesse de la technique selon l'invention. L'invention a été mise au point en utilisant la base informatique suivante :
Machine INTEL Intel 2.4GHz à 16 coeurs avec 128 Gigaoctets de mémoire vive,
Pour les structures de données de triangulation, bibliothèque CGAL, disponible auprès de la société Geometry Factory, 20, Avenue Yves Emmanuel Baudoin, 06130 Grasse, France,
Bibliothèque INTEL "Threading Building Blocks library" pour la parallélisation. Il est observé que les traitements "atomiques" sur les tétraèdres et les points échantillons sont indépendants, et peuvent donc facilement être conduits en parallèle.
Les figures 11 reprennent la pièce des figures 1. La figure 11.0 est le volume de tolérance. Les figures 11.1 à 11.4 illustrent le maillage final obtenu, avec des conditions de traitement différentes, en ce qui concerne le facteur δ, qui est la distance de séparation entre les frontières du volume de tolérance, exprimée en pourcentage. Le tableau suivant indique les valeurs de δ, le temps de traitement avec l'équipement indiqué plus haut, la figure avec le maillage final, et le nombre de sommets de celui-ci.
Il apparaît que le temps de calcul diminue quand la tolérance augmente. De façon générale, le processus est lent, ce qui est une contrepartie de sa robustesse.
Les performances obtenues par l'invention sont illustrées sur la figure 12.
On observera qu'une comparaison stricte à l'art antérieur n'est pas possible puisque les contraintes du problème posé ici sont différentes. L'invention peut cependant se comparer aux propositions suivantes :
Lindstrom-Turk, qui est le procédé décrit dans [Refl9], qui peut être mis en œuvre à l'aide de la bibliothèque CGAL version 4.6, commercialisée par la société Geometry Factory déjà citée, MMGS, qui est le procédé décrit dans [Ref7], mis en œuvre par un logiciel MMGS version 2.0a, transmis directement par Pascal Frey, second auteur de [Ref7], MMGS-A, qui est une variante du même logiciel MMGS avec l'option anisotropie de mailles,
Open Flipper, qui est le procédé décrit dans [Ref20], avec un logiciel disponible en téléchargement sur le site www.openfiipper.org/, version 2.1.
Simplification Envelopes, qui est [Ref9], avec un logiciel version 1.2, transmis par email par le premier auteur.
La distance de Haussdorf mesure la dissemblance entre deux formes géométriques. La distance unidirectionnelle Haussdorf(A,B) est définie par le maximum de la distance euclidienne entre la forme A et la forme B, pour tout point de A, et vice-versa pour Haussdorf(B,A). La variante symétrique est le maximum de Haussdorf(A,B) et Haussdorf(B,A). L'échelle des ordonnées de la figure 12 correspond à la distance de Hausdorff H|o->i, qui est la distance de Hausdorff unidirectionnelle entre la sortie et l'entrée. L'échelle des abscisses correspond au nombre de sommets en sortie.
Cette figure 12 montre que l'invention est meilleure que les autres techniques par des distances de Haussdorf plus faibles, avec des nombres de sommets en finale moins élevés, en plus de la robustesse déjà montrée plus haut.
Les figures 12 et 13 ont pour entrée un maillage de surface brut des images des figures 14 (environ 14 000 sommets).
La figure 13 porte sur les temps de traitement. Elle illustre l'évolution de la complexité du maillage en fonction du traitement et du temps pour différentes valeurs de la tolérance d'entrée δ, indiquées dans le rectangle de légende. En abscisse, on a les différentes étapes du traitement, à savoir :
Raffinement,
Simplification par fusions de demi-arêtes de la frontière ST de la tolérance simplicielle,
Simplification par fusions d'arêtes de la frontière ST de la tolérance simplicielle, Triangulation mutuelle et fusions de demi-arêtes du zeroSet Z,
Fusions d'arêtes du zeroSet Z,
Simplification de tous les bords. L'invention permet également de traiter des surfaces ayant des trous, par exemple lorsqu'elles sont obtenues par balayage laser qui tangente des zones concaves. Les trous peuvent être supprimés, dès lors que le volume de tolérance les englobe. L'invention peut également être définie comme un dispositif.
La figure 18 reprend les éléments de la figure 4, dont les étapes sont réalisées par des opérateurs. Dans les références numériques, le chiffre le plus significatif est 2 pour les étapes, contre 3 pour les opérateurs.
Ainsi l'étape d'initialisation 201 de la figure 4 est réalisée par l'opérateur d'initialisation 301 de la figure 18. Il part du volume de tolérance, mémorisé en 310. A l'intérieur de cette initialisation, l'étape 2011 de la figure 4 est réalisée par l'opérateur 3011 d'échantillonnage de contour de la figure 18.
La figure 19 illustre un opérateur de classification de points, référencé 1900.
Pour un point à classifier, on part des données suivantes (au moins en partie, certaines données étant déductibles des autres): les coordonnées de ce point, l'étiquette ou label de ce point, la maille qui entoure ce point, avec les coordonnées et étiquettes des sommets de cette maille.
Un opérateur 1901 calcule la fonction f d'interpolation, comme décrit plus haut en référence à la figure 5. Il fournit une étiquette calculée pour ce point. L'opérateur 1902 en déduit si le point est bien classifié ou non, comme déjà décrit.
On observera que cette figure 19 ne reflète pas les cas d'exception, comme celui où tous les sommets de la maille ont la même valeur étiquette.
Cet opérateur de classification de points, 1900, est appelé à de nombreuses reprises, notamment par les opérateurs 3013 et 3032 de la figure 18, ainsi que par l'opérateur de simulation 1701 de la figure 17, dans la mesure où celui-ci doit vérifier que la classification des points est préservée.
Annexe 1 - Définitions Isomorphisme
En mathématiques, un isomorphisme entre deux ensembles structurés est une application bijective qui préserve la structure et dont la réciproque préserve aussi la structure (Pour beaucoup de structures en algèbre, cette seconde condition est automatiquement remplie ; mais ce n'est pas le cas en topologie par exemple où une bijection peut être continue, sans que sa réciproque ne le soit).
Hom(é)omorphisme (en anglais : "homomorphism")
En topologie, un homéomorphisme est une application bijective continue, d'un espace topologique dans un autre, dont la bijection réciproque est elle aussi continue. Au vu de ce qui précède, c'est un isomorphisme entre deux espaces topologiques.
Lorsque l'on dit que deux espaces topologiques sont homéomorphes, cela signifie qu'ils sont « le même », vu différemment. Cela ne tombe pas toujours sous le sens. On montre par exemple qu'une tasse (avec anse) est homéomorphe à un tore, car il existe une transformation qui fait passer de l'une à l'autre : combler le corps de la tasse de matière, puis le déformer progressivement, avec son anse, pour que l'ensemble forme un tore. La transformation réciproque redonne la tasse.
Isotopie
La notion d'isotopie est notamment importante en théorie des noeuds : deux noeuds sont considérés identiques s'ils sont isotopes, c'est-à-dire si on peut déformer l'un pour obtenir l'autre sans que la « corde » ne se déchire ou ne se pénètre.
Cette notion d'isotopie ne doit pas être confondue avec l’isotopie en chimie, ni avec l'isotropie en physique des matériaux.
Volume de tolérance (en anglais : "tolérance volume")
Cela s'applique à un composant à trois dimensions. Le volume de tolérance pour un composant est le volume compris entre sa plus grande et sa plus petite surface extérieure admissible.
En pratique, il peut y avoir plusieurs composantes connexes du volume de tolérance. Il peut aussi y avoir plusieurs composantes connexes de ses surfaces de bord, même si le volume de tolérance n'a lui-même qu'une seule composante connexe.
Annexe 2 - Références [Refl], Agarwal, P. K, and Suri, S. 1998. Surface approximation and géométrie partitions. Journal of Computing 27, 4,1016-1035.
[Ref2], Amenta, N., and Bern, M. 1998. Surface reconstruction by voronoi filtering. Discrète and Computational Geometry 22, 481-504.
[Ref3], Amenta, N., Choi, S., Dey, T. K., and Leekha, N. 2000. A simple algorithm for homeomorphic surface reconstruction. In Proceedings of ACM Symposium on Computational Geometry, 213-222.
[Ref4], Bischoff, S., Pavic, D., and Kobbelt, L. 2005. Automatic restoration of polygon models. ACM Transactions on Graphics 24,1332-1352.
[Ref5], Boissonnat, J.-D., and Cazals, F. 2000. Smooth surface reconstruction via natural neighbour interpolation of distance functions. In Proceedings of ACM Symposium on Computational Geometry, 223-232.
[Ref6], Boissonnat, J.-D., and Oudot, S. 2005. Provably good sampling and meshing of surfaces. Graphical Models 67, 5, 405-451.
[Ref7], Borouchaki, H., and Frey, P. 2005. Simplification of surface mesh using hausdorff envelope. Computer Methods in Applied Mechanics and Engineering 194, 48-49, 4864 - 4884.
[Ref8], Chazal, F., and Cohen-Steiner, D. 2004. A condition for isotopic approximation. In Proceedings of ACM Symposium on Solid Modeling and Applications, 93-99.
[Ref9], Cohen, J., Varshney, A, Manocha, D., Turk, G., Weber, H., Agarwal, P., Brooks, F., and Wright, W. 1996. Simplification envelopes. In Proceedings of ACM Conférence on Computer Graphics and Interactive Techniques, 119-128.
[ReflO], Cohen, J., Manocha, D., and Olano, M. 2003. Successive mappings: An approach to polygonal mesh simplification with guaranteed error bounds. International Journal of Computational Geometry and Applications 13,1, 61-96.
[Refll], Dey, T. K., and Goswami, S. 2003. Tight cocone: A watertight surface reconstructor. In Proceedings of ACM Symposium on Solid Modeling and Applications, 127-134.
[Refl2], Dey, T. K., and Sun, J. 2005. An adaptive mis surface for reconstruction with guarantees. In Proceedings of EUROGRAPHICS Symposium on Geometry Processing.
[Refl3], Dey, T. K., Li, K., Ramos, E. A., and Wenger, R. 2009. Isotopic reconstruction of surfaces with boundaries. Computer Graphics Forum 28, 5,1371-1382.
[Refl4], Dey, T. K. 2006. Curve and Surface Reconstruction: Algorithms with Mathematical Analysis [Cambridge Monographs on Applied and Computational MathematicsJ. Cambridge University Press.
[Refl5], Gueziec, A. 1996. Surface simplification inside a tolérance volume. Tech. Rep. 20440. IBM Research Report RC 20440.
[Refl6], Hornung, A., and Kobbelt, L. 2006. Robust reconstruction of watertight 3d models from non-uniformly sampled point clouds without normal information. In Proceedings of EUROGRAPHICS Symposium on Geometry Processing, 41-50.
[Refl 7], Ju, T. 2004. Robust repair of polygonal models. ACM Transactions on Graphics 23, 3, 888-895.
[Refl8], Kalvin, A. D., and Taylor, R. H. 1996. Superfaces: Polygonal mesh simplification with bounded error. IEEE Computer Graphics and Applications 16, 3.
[Refl9], Lindstrom, P., and Turk, G. 1999. Evaluation of memoryless simplification. IEEE Transactions on Visualization and Computer Graphics 5, 2, 98-115.
[Ref20], Mobius, J., and Kobbelt, L. 2012. Openflipper: An open source geometry processing and rendering framework. In Proceedings of International Conférence on Curves and Surfaces, Springer-Verlag, 488-500.
[Ref21], Tamal K. Dey, Anil N. Hirani, Bala Krishnamoorthy, Gavin Smith. Edge Contractions and Simplicial Homology. arXiv:1304.0664.
[Ref22], Aggarwal, A, Booth, H., O'Rourke, J., Suri, S., and Yap, C. K. 1985. Finding minimal convex nested polygons. In Proceedings of ACM Symposium on Computational Geometry, 296-304.
[Ref23], Boissonnat, J.-D., and Yvinec, M. 1998. Algorithmic Geometry. Cambridge University Press.
[Ref24], Ciampalini, A., Cignoni, P., Montani, C., and Scopigno, R. 1997. Multiresolution décimation based on global error. The Visual Computer 13.
[Ref25], Coxeter, H. S. M. 1969. Introduction to geometry (2nd ed.J. John Wiley and Sons.
[Ref26], Gumhold, S., Borodin, P., and Klein, R. 2003. Intersection free simplification. International Journal of Shape Modeling 9, 2.
[Ref27], Lee, D. T.; Preparata, F. P. [1979J, "An Optimal Algorithm for Finding the Kernel of a Polygon", Journal of the ACM 26 [3J: 415-421, doi:10.1145/322139.322142.
[Ref28], Zelinka, S., and Garland, M. 2002. Permission grids: Practical, error-bounded simplification. ACM Transactions on Graphics 21, 2, 207-229.

Claims (12)

  1. Revendications
    1. Procédé de traitement de données géométriques, comprenant les étapes suivantes : A. recevoir un volume de tolérance Ω, relatif à des données géométriques brutes de départ, B. initier (201) une triangulation canonique dans le volume de tolérance, à partir d'un jeu S de points échantillons pris aux limites de ce volume de tolérance, et de points situés à l'extérieur de celui-ci, C. raffiner (203) cette triangulation canonique, jusqu'à classifier les points de l'échantillon, ce qui fournit un maillage dense du volume de tolérance, et D. simplifier (207) ce maillage dense par des opérations de modification de triangulation, en préservant la topologie et la classification des points de l'échantillon.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape B comprend la sous-étape (2011) d'échantillonner les limites du volume de tolérance selon une densité d'échantillonnage choisie σ, ce qui fournit l'ensemble S de points échantillons.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que l'étape B comprend le marquage (2013) de chaque point échantillon de l'ensemble S par une valeur-étiquette qui représente l'index de la composante connexe de bord de ce point, dans le volume de tolérance, et en ce que l'étape C comprend la génération itérative de la triangulation canonique, en insérant un point à la fois (2031), sur au moins une partie de l'ensemble S de points, jusqu'à ce que tous les points concernés (2033) vérifient une condition de classification (2032), appuyée sur la valeur d'une fonction F elle-même dépendant de leur valeur d'index, et sur son interpolation par une fonction d'interpolation f appliquée à chaque maille de la triangulation 3D, et la construction d'une isosurface linéaire par morceaux Zset, à l'aide des points où la fonction d'interpolation f possède une même valeur intermédiaire choisie, en particulier nulle, cette isosurface Zset étant une surface fermée, qui forme une approximation surfacique du volume de tolérance.
  4. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que la triangulation canonique est une triangulation de Delaunay.
  5. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que les données géométriques brutes de départ sont des données 3D.
  6. 6. Procédé de traitement de données géométriques selon l'une des revendications précédentes, caractérisé en ce que l'étape D. comprend les opérations suivantes : Dl. déterminer (1701) si des opérations de modification de triangulation sont valides, c'est-à-dire préservent la topologie du maillage et préservent la condition de classification de l'ensemble S de points échantillons, et D2. effectuer (1703-1709) les opérations de modification de triangulation valides dans un ordre déterminé.
  7. 7. Procédé selon la revendication 6, caractérisé en ce que les opérations de modification de triangulation comprennent des fusions d'arêtes et/ou des fusions de demi-arêtes.
  8. 8. Procédé selon l'une des revendications 6 et 7, caractérisé en ce que l'ordre est déterminé en fonction d'un critère d'optimisation.
  9. 9. Procédé selon l'une des revendications 6 et 7, caractérisé en ce que l'étape D. porte sur un volume dit "tolérance simplicielle" qui approche le volume de tolérance par une union de mailles de la triangulation canonique, l'isosurface Zset étant contenue dans ce volume dit "tolérance simplicielle", Et en ce que les étapes Dl et D2 sont effectuées : D'abord (2072) sur le bord du volume dit "tolérance simplicielle", Ensuite sur le fruit (2074) d'une triangulation mutuelle entre l'isosurface (Zset) et le volume dit "tolérance simplicielle", cette triangulation mutuelle ajoutant des sommets, des arêtes et des mailles dans la triangulation, sur l'isosurface, Enfin (2076), avec d'autres arêtes contenues dans le volume dit "tolérance simplicielle", jusqu'à couvrir toutes les arêtes possibles.
  10. 10. Dispositif de traitement de données géométriques, comprenant : Une mémoire de données géométriques, pour recevoir des données (310) représentant un volume de tolérance, Un organe d'initialisation (301), agencé pour réaliser une première triangulation canonique entre le bord du volume de tolérance et de points situés à l'extérieur de celui-ci, Un organe de raffinement (303), agencé pour préciser ladite première triangulation jusqu'à fournir un maillage dense du volume de tolérance, qui préserve une condition de classification des points de la triangulation, Un organe de simplification (307), agencé pour simplifier ledit maillage dense, en préservant la topologie et la classification de ses points, et Un pilote (300) qui actionne successivement l'organe d'initialisation (301), l'organe de raffinement (303), et l'organe de simplification (307), pour des données graphiques en évolution à partir du même volume de tolérance.
  11. 11. Dispositif selon la revendication 10, caractérisé en ce qu'il comprend : un opérateur de classification de point (1900), qui reçoit la désignation d'un point à traiter, et détermine une fonction d'interpolation sur la base de la maille entourant ce point à traiter, et de valeurs-étiquettes relatives aux sommets de cette maille, pour fournir une étiquette interpolée, et comparer celle-ci à une étiquette courante du point à traiter, ce qui permet de déterminer une condition de classification du point à traiter.
  12. 12. Produit-programme d'ordinateur comprenant des portions de code de programme pour mettre en oeuvre le procédé selon l'une des revendications 1 à 9, ou le dispositif selon l'une des revendications 10 et 11, lorsque le programme est exécuté sur un ordinateur.
FR1557674A 2015-08-01 2015-08-11 Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance Expired - Fee Related FR3039686B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/749,011 US20190019331A1 (en) 2015-08-01 2016-08-01 Processing of geometric data with isotopic approximation within a tolerance volume
EP16758233.7A EP3329465A1 (fr) 2015-08-01 2016-08-01 Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance
PCT/FR2016/051997 WO2017021644A1 (fr) 2015-08-01 2016-08-01 Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1501664A FR3039685A1 (fr) 2015-08-01 2015-08-01 Traitement de donnees geometriques avec approximation isotopique dans un volume de tolerance

Publications (2)

Publication Number Publication Date
FR3039686A1 true FR3039686A1 (fr) 2017-02-03
FR3039686B1 FR3039686B1 (fr) 2017-08-04

Family

ID=55129973

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1501664A Pending FR3039685A1 (fr) 2015-08-01 2015-08-01 Traitement de donnees geometriques avec approximation isotopique dans un volume de tolerance
FR1557674A Expired - Fee Related FR3039686B1 (fr) 2015-08-01 2015-08-11 Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR1501664A Pending FR3039685A1 (fr) 2015-08-01 2015-08-01 Traitement de donnees geometriques avec approximation isotopique dans un volume de tolerance

Country Status (4)

Country Link
US (1) US20190019331A1 (fr)
EP (1) EP3329465A1 (fr)
FR (2) FR3039685A1 (fr)
WO (1) WO2017021644A1 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2755489T3 (es) * 2015-03-17 2020-04-22 Zynaptiq Gmbh Métodos de extensión de transformadas de frecuencia para resolver características en el dominio espaciotemporal
WO2017040905A1 (fr) * 2015-09-03 2017-03-09 Stc.Unm Pré-calcul accéléré de modèles déformables réduits
US10902625B1 (en) 2018-01-23 2021-01-26 Apple Inc. Planar surface detection
US10580209B2 (en) * 2018-03-06 2020-03-03 Qualcomm Incorporated Removal of degenerated sub-primitives in tessellation
US10657675B2 (en) * 2018-03-06 2020-05-19 Google Llc Techniques for improved progressive mesh compression
US20190370408A1 (en) * 2018-05-31 2019-12-05 Microsoft Technology Licensing, Llc Dataflow execution graph modification using intermediate graph
WO2020122882A1 (fr) * 2018-12-11 2020-06-18 Hewlett-Packard Development Company, L.P. Détermination de sommets de grilles triangulaires pour des représentations d'objet tridimensionnelles
US11995854B2 (en) * 2018-12-19 2024-05-28 Nvidia Corporation Mesh reconstruction using data-driven priors
EP3996051A1 (fr) * 2020-11-04 2022-05-11 Dassault Systèmes Reconstruction 3d d'une structure d'une scène réelle avec une surface ouverte
CN116843742B (zh) * 2023-03-13 2024-02-02 武汉理工大学 一种针对装载黑色煤车辆的点云配准后堆料体积的计算方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275233B1 (en) * 1996-11-01 2001-08-14 International Business Machines Corporation Surface simplification preserving a solid volume

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275233B1 (en) * 1996-11-01 2001-08-14 International Business Machines Corporation Surface simplification preserving a solid volume

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BOTSCH M ET AL: "GPU-based tolerance volumes for mesh processing", COMPUTER GRAPHICS AND APPLICATIONS, 2004. PG 2004. PROCEEDINGS. 12TH P ACIFIC CONFERENCE ON SEOUL, KOREA 6-8 OCT. 2004, PISCATAWAY, NJ, USA,IEEE, 6 October 2004 (2004-10-06), pages 237 - 243, XP010735045, ISBN: 978-0-7695-2234-0, DOI: 10.1109/PCCGA.2004.1348354 *
GUEZIEC A: "Surface simplification with variable tolerance", MRCAS. PROCEEDINGS OF INTERNATIONAL SYMPOSIUM ON MEDICAL ROBOTICS AND COMPUTER ASSISTED SURGERY, XX, XX, 4 November 1995 (1995-11-04), pages 132 - 139, XP002114356 *
JEAN-DANIEL BOISSONNAT ET AL: "Isotopic Implicit Surface Meshing", DISCRETE & COMPUTATIONAL GEOMETRY, SPRINGER-VERLAG, NE, vol. 39, no. 1-3, 13 September 2007 (2007-09-13), pages 138 - 157, XP019590936, ISSN: 1432-0444 *

Also Published As

Publication number Publication date
US20190019331A1 (en) 2019-01-17
EP3329465A1 (fr) 2018-06-06
FR3039686B1 (fr) 2017-08-04
FR3039685A1 (fr) 2017-02-03
WO2017021644A1 (fr) 2017-02-09

Similar Documents

Publication Publication Date Title
EP3329465A1 (fr) Traitement de donnees geometriques, avec approximation isotopique dans un volume de tolerance
Fahim et al. Single-View 3D reconstruction: A Survey of deep learning methods
Fabio From point cloud to surface: the modeling and visualization problem
Borodin et al. Progressive gap closing for meshrepairing
US20190362029A1 (en) Systems and methods for lightweight precise 3d visual format
Wang Bilateral recovering of sharp edges on feature-insensitive sampled meshes
WO2001008263A2 (fr) Procede et appareil pour produire des elements atomiques de representation graphique par squelettisation pour des applications de visualisation interactive
WO2018104183A1 (fr) Procede de construction d&#39;une maquette numerique 3d a partir d&#39;un plan 2d
Marinov et al. A robust two‐step procedure for quad‐dominant remeshing
Thayyil et al. Local Delaunay-based high fidelity surface reconstruction from 3D point sets
Emunds et al. IFCNet: A benchmark dataset for IFC entity classification
WO2022208024A1 (fr) Procede de generation de maillage hexaedrique
Hamdi‐Cherif et al. Super‐Resolution of Point Set Surfaces Using Local Similarities
Minto et al. Online access and sharing of reality-based 3D models
Liu et al. Generation of concise 3D building model from dense meshes by extracting and completing planar primitives
Sarkar et al. 3d shape processing by convolutional denoising autoencoders on local patches
US11257290B2 (en) Decimating a three-dimensional mesh via successive self-parameterization
Argudo et al. Biharmonic fields and mesh completion
Olsen et al. Hinged, pseudo-grid triangulation method for long, near-linear cliff analyses
EP4281938A1 (fr) Procede de realisation d&#39;un modele numerique 3d d&#39;element(s) d&#39;aeronef pour la production d&#39;images en realite augmentee
Zeng et al. A novel geometry image to accurately represent a surface by preserving mesh topology
Li et al. An improved decimation of triangle meshes based on curvature
Boubekeur et al. Rapid visualization of large point-based surfaces
Azernikov et al. A new volume warping method for surface reconstruction
Bukenberger et al. Hierarchical quad meshing of 3D scanned surfaces

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170203

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

ST Notification of lapse

Effective date: 20230405