Brevet FR3021444A1 — publié le 20151127

Procédé de personnalisation d'un objet personnalisable pour un système client / serveur ; support d'enregistrement d'informations et système client / serveur associés La présente invention concerne les procédés de de personnalisation d'un objet graphique pour une architecture informatique client / serveur. La phase de conception virtuelle d'un objet. 3D devant être fabriqué par une machine numérique adaptée, nécessite l'utilisation de logiciels professionnels, à la fois coûteux et complexes à mettre en oeuvre. L'exécution d'un tel logiciel nécessite des ressources informatiques importantes en termes de capacité de calcul et d'affichage. Mais surtout, un tel logiciel professionnel de CAO (« conception assistée par ordinateur») est complexe et nécessite souvent que l'utilisateur ait des connaissances solides en mécanique par exemple. L'utilisation d'un tel logiciel requiert donc un long apprentissage. De ce fait, l'utilisation d'un tel logiciel de CAO est réservée à des opérateurs professionnels. En conséquence, la conception virtuelle d'un objet 3D n'est pas accessible au grand public. La présente invention a pour but de pallier le problème précité. À cet effet, l'invention a pour objet un procédé de personnalisation d'un objet personnalisable en vue de sa fabrication, pour un système client I serveur comportant un terminal client et un terminal serveur, le procédé comportant les étapes consistant successivement à : - fournir au terminal client une représentation basse résolution d'un objet, propre à être affichée dans un environnement graphique 3D d'une interface d'affichage du terminal client ; - sélectionner une partie de l'objet affiché dans environnement graphique 3D, en tant que sous-objet sélectionné ; - fournir, par le terminal serveur, une représentation haute résolution dudit sous-objet sélectionné, propre à être affichée dans l'environnement graphique 3D de l'interface d'affichage du terminal client, à la place de la représentation basse résolution du sous-objet sélectionné ; - modifier, dans l'environnement graphique 3D, un sous-maillage haute résolution associé à la représentation haute résolution du sous-objet sélectionné ; - transmettre au serveur le sous-maillage haute résolution modifié du sous-objet sélectionné ; - mettre à jour, sur le serveur, une instance haute résolution de l'objet en utilisant le sous-maillage haute résolution modifié ; - réduire automatiquement, par le serveur, une résolution du sous-maillage haute résolution modifié pour obtenir un sous-maillage basse résolution modifié du sous-objet sélectionné ; - générer, par le serveur, une représentation basse résolution modifiée du sous-objet sélectionné à partir du sous-maillage haute résolution modifié et du sous-maillage basse résolution modifié du sous-objet sélectionné ; et, - transmettre, au terminal client, la représentation basse résolution modifiée du sous-objet sélectionné, pour mettre à jour la représentation basse résolution de l'objet affiché dans l'environnement graphique 3D de l'interface d'affichage. L'invention permet à un utilisateur, disposant d'un terminal client, par exemple du type ordinateur personnel, de concevoir un objet à fabriquer en partant d'un modèle virtuel de cet objet personnalisable, élaboré par un logiciel professionnel. Ce modèle est préalablement subdivisé en sous-objets. Chaque sous-objet est associé à la fois à un maillage haute résolution et à un maillage basse résolution. Les maillages basse résolutions des sous-objets sont suffisants pour qu'un environnement graphique 3D exécuté sur le terminal client offre un rendu 3D satisfaisant de l'objet. Dans l'environnement graphique, l'utilisateur ne peut sélectionner pour modification qu'un sous- objet à la fois. Lors de la sélection d'un sous-objet, l'environnement graphique 3D télécharge auprès d'un terminal serveur le sous-maillage haute résolution de ce sous-objet. Le client apporte les modifications sur ce sous-maillage haute résolution. Une fois que l'utilisateur a validé les modifications sur le sous-maillage haute résolution, le sous-maillage haute résolution modifié est transmis au terminal serveur, où il fait l'objet d'un traitement automatique pour générer un sous-maillage basse résolution modifié, propre à être transmis en retour au terminal client pour afficher le sous-objet modifié dans l'environnement graphique 3D. Le terminal serveur effectue une synthèse des sous-maillages haute-résolution modifiés et non modifiés, de manière à générer un fichier adapté à la machine utilisée pour fabriquer l'objet final personnalisé. Ainsi, côté terminal client, les ressources nécessaires à l'affichage sont réduites puisqu'il s'agit d'afficher l'essentiel de l'objet en basse résolution, et les ressources nécessaires au traitement des données sont également réduites puisqu'une modification de l'objet ne porte que sur une fraction de celui-ci, qui présente une résolution élevée uniquement au moment où cette fraction est sélectionnée pour modification. A chaque instant, les flux de données entre le terminal serveur et le terminal client se limitent à des fichiers de taille réduite, ou tout au moins adaptée pour n'utiliser qu'une fraction de la bande passante de la liaison de communication entre le terminal serveur et le terminal client. Suivant d'autres aspects avantageux de l'invention, le procédé comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : l'étape consistant à fournir une représentation basse résolution d'un objet, comporte les étapes consistant à : - fournir un maillage haute résolution d'un objet personnalisable ; - subdiviser en une pluralité de sous-maillages haute résolution complémentaires le maillage haute résolution de l'objet personnalisable, chaque sous-maillage haute résolution étant associé à un sous-objet de l'objet personnalisable ; - réduire automatiquement une résolution de chaque sous-maillage haute résolution, de manière à obtenir un sous-maillage basse résolution correspondant ; - stocker, sur le serveur (14), pour chaque sous-objet, le sous-maillage haute résolution et le sous-maillage basse résolution correspondant ; - transférer vers le terminal client (16) les sous-maillages basse résolution des différents sous-objets constituant l'objet personnalisable, pour l'affichage de l'objet personnalisable dans l'environnement graphique 3D de l'interface d'affichage du terminal client (16). le procédé comporte, suite à l'étape consistant à réduire automatiquement une résolution de chaque sous-maillage haute résolution, de manière à obtenir un sous-maillage basse résolution correspondant, une étape de calcul d'une carte de normales pour chaque sous-objet à partir du sous-maillage haute résolution et du sous-maillage basse résolution correspondant dudit sous-objet, la carte des normales d'un sous-objet étant transférée vers le terminal client pour l'affichage de l'objet personnalisable dans l'environnement graphique 3D de l'interface d'affichage du terminal client. le procédé comporte, après avoir subdivisé en une pluralité de sous- maillages haute résolution complémentaires le maillage haute résolution de l'objet personnalisable, chaque sous-maillage haute résolution étant associé à un sous-objet de l'objet, une étape consistant à assigner à chaque sous-objet un attribut « modifiable » ou « non modifiable », les sous-objets « non modifiables » ne pouvant être modifié dans l'environnement graphique 3D de l'interface d'affichage du terminal client. l'étape consistant à subdiviser en une pluralité de sous-maillages haute résolution complémentaires le maillage haute résolution de l'objet personnalisable comporte une étape de délimitation automatique de contours dans le maillage haute résolution de l'objet personnalisable, chaque contour délimitant une zone (Z-i) du maillage haute résolution correspondant à un sous-objet. dans lequel le ou chaque étape de réduction de la résolution d'un sous- maillage haute résolution met en oeuvre un algorithme de décimation incrémentale par contraction d'arêtes avec contraintes sur le sous-maillage haute résolution qui lui est appliqué en entrée. dans lequel le ou chaque étape de réduction de la résolution d'un sous- maillage haute résolution permet de générer un sous-maillage basse résolution présentant n fois moins de facettes et/ou d'arête et/ou de sommets, n étant supérieur à 3, de préférence à 5, de préférence encore à 10. - dans lequel, lors d'une validation finale des modifications apportées à l'objet affiché dans l'environnement graphique 3D de l'interface d'affichage du terminal client, le terminal serveur génère un fichier final correspondant à la fusion des sous-maillages haute résolution courants constituant l'instance haute résolution de l'objet sur le terminal serveur, le fichier final permettant de piloter un outil de fabrication de l'objet personnalisé. le procédé comporte une étape consistant à fournir à un terminal client un environnement graphique 3D propre à être affiché dans une interface d'affichage du terminal client. L'invention a également pour objet un support d'enregistrement d'informations, caractérisé en ce qu'il comporte des instructions pour l'exécution des étapes réalisées par un terminal client d'un procédé conforme au procédé précédent lorsque les instructions sont exécutées par un calculateur électronique. L'invention a également pour objet un système client / serveur caractérisé en ce que le système comporte au moins un terminal client et un terminal serveur programmés pour exécuter ensemble un procédé conforme au procédé précédent. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif et faite en se référant aux dessins annexés sur lesquels : - la figure 1 est une représentation schématique du système client / serveur de mise en oeuvre du procédé selon l'invention ; - la figure 2 est une représentation schématique sous forme de blocs du procédé selon l'invention ; et, - la figure 3 est une représentation d'un objet affiché sur l'écran d'un terminal client du système de la figure 1 lors de l'exécution du procédé de la figure 2. Le système client /serveur pour la mise en oeuvre du procédé selon l'invention, représenté schématiquement à la figure 1, permet à un client, au travers d'une interface d'affichage tel qu'un écran, de personnaliser un objet personnalisable, en vue de sa fabrication. Le système client / serveur 10 conduit à la génération d'au moins un fichiers final FF comportant les données décrivant l'objet final personnalisé et permettant la fabrication de ce dernier au moyen d'un outil de production prédéterminé parmi tout type d'outils de production, en particulier les outils mettant en oeuvre un procédé de fabrication additive (tels qu'une imprimante 3D) ou mettant en oeuvre un procédé de fabrication classique (tels qu'une fraiseuse numérique). Le système 10 présente une architecture informatique répartie. La couche matérielle du système comporte un premier terminal, un terminal serveur et un second terminal. Le premier terminal, ou terminal opérateur 12, est un ordinateur permettant à un premier utilisateur, ou opérateur, d'effectuer des tâches de « back office » de préparation des fichiers de données. Le terminal serveur, ou serveur 14, permet de mettre les fichiers de données préparés sur le terminal opérateur 12 à la disposition d'un second utilisateur, ou client, utilisant le second terminal, ou terminal client 16. Le terminal client 16 est un ordinateur utilisé par le client. Il s'agit par exemple d'un ordinateur personnel, d'une tablette à écran tactile, d'un « smartphone » ou l'équivalent. Le serveur 14 est relié au terminal opérateur par un réseau local 13. Le terminal client 16 est connecté au serveur 14 via un réseau 17, de préférence le réseau Internet. Dans le mode de réalisation représenté sur la figure 1, le serveur 14 est relié directement à une imprimante 3D 18 qu'il commande. En variante, le serveur 14 génère, à partir du fichier final FF, un fichier de fabrication de l'objet personnalisé, qui est transmis, d'une manière ou d'une autre, à un calculateur de fabrication pilotant l'outil de production choisi pour réaliser l'objet personnalisé. Le serveur 14 est associé à une base de données 15. La couche logicielle du système 10 comporte une première application 22, mise en oeuvre par le terminal opérateur 12, une application serveur 24, mises en oeuvre par le serveur 14, et une seconde application 26, mise en oeuvre par le terminal client 16. Lors de l'exécution des différentes composantes de la couche logicielle du système 10 par les ordinateurs du système 10, les étapes suivantes du procédé de personnalisation 100 selon l'invention sont réalisées. Dans une première série d'étapes, réalisées sur le terminal opérateur 12, différents fichiers de données sont préparés. Dans une étape 110, un module d'importation de la première application 22 est exécuté pour importer un fichier initial FI sur le terminal opérateur 12. Ce fichier initial FI correspond à un modèle (« template » en anglais) virtuel en trois dimensions (3D) d'un objet personnalisable, c'est-à-dire pouvant être personnalisé. L'objet personnalisable est indiqué de manière générale par référence Obj sur la figure 1. En variante, plusieurs fichiers initiaux sont importés, qui ensemble permettent de décrire un modèle virtuel 3D d'une scène, une scène étant composée d'une pluralité d'objets placés dans un paysage. De préférence, le fichier initial FI est au format «.stl ». Selon ce format, la géométrie d'un objet est décrite par un maillage haute résolution, dénommé maillage HR dans ce qui suit. Comme illustré sur la figure 3, un maillage comporte une pluralité de facettes polygonales. Par exemple, ces facettes prennent la forme de triangles ou de carrés. Chaque facette comporte des sommets et des arêtes. Les sommets et les arêtes peuvent être partagés entre plusieurs facettes voisines. En variante, le fichier initial FI est au format «.obj ». Dans ce format, la géométrie d'un objet est décrite à la fois par un maillage HR et par une texture propre à être appliquée sur la surface définie par le maillage HR pour obtenir, dans un environnement de visualisation 3D adapté, une représentation graphique réaliste de l'objet. Le fichier initial FI est par exemple obtenu en sortie d'un logiciel de CAO professionnel. L'homme du métier connait de nombreux logiciels de ce type permettant de générer un fichier comportant un maillage HR. Un maillage haute révolution est un maillage comportant plus de 20 000 facettes, de préférence plus de 30 000 facettes, par exemple 50 000 facettes. La notion de haute résolution est relative à la notion de basse résolution, qui sera introduite ci-dessous en détail. Elle est également relative à la précision caractéristique de l'outil de production choisi pour réaliser l'objet final personnalisé. Il faut en effet que le maillage possède une résolution suffisamment élevée pour permettre d'atteindre la précision caractéristique de l'outil employé. Il n'est pas nécessaire que la résolution du maillage haute résolution aille au-delà de la précision caractéristique de l'outil employé. Le maillage du ou de chaque fichier initial FI importé à l'étape 110 est un maillage considéré comme ayant une résolution élevée, c'est-à-dire est un maillage HR. Dans une seconde étape 120, un module de vérification de la première application 22 est exécuté pour vérifier la qualité et l'homogénéité du maillage HR défini par le fichier initial FI. Le module de vérification est propre à réparer automatiquement certains défauts mineurs du maillage HR, tels que par exemple modifier l'orientation des normales des facettes de manière à définir sans ambiguïté l'intérieur et l'extérieur de l'objet, supprimer les intersections entre facettes, etc. Un maillage HR validé est généré en sortie du module de vérification. Un maillage HR comportant des défauts majeurs, qui ne peuvent être réparés par le module de vérification, est rejeté. Un rapport de contrôle est alors affiché sur un écran du terminal opérateur 12. Un tel défaut majeur est par exemple un trou dans le maillage HR définissant la surface externe de l'objet et qui serait trop important pour pouvoir être interpolé de manière univoque à partir des facettes formant le pourtour du trou. Puis, à l'étape 130, un module de pavage de la première application est exécuté, pour définir automatiquement des zones Z-i dans le maillage HR validé. Le module de pavage segmente la surface définie par le maillage HR validé, en surfaces élémentaires ou zones Z-i. Le module de pavage met en oeuvre un algorithme fondé sur la variation de courbure. Les arêtes vives et les sommets vifs de l'objet sont détectés dans le maillage HR validé. Ensuite, la courbure principale d'une région de la surface du maillage HR validé, située au voisinage de chaque sommet vif ou arête vive, est déterminée. Puis, les régions sont classées en fonction de la valeur de la courbure principale ainsi estimée. Dans une étape dite de croissance, les régions ayant sensiblement la même valeur de la courbure principale et qui possèdent des facettes adjacentes sont associées de manière à former une zone. Les zones sont éventuellement fusionnée les unes avec les autres afin de limiter le nombre total de zones à la surface de l'objet. Enfin, une étape finale de rectification des contours C-i des zones Z-i permet de vérifier et de corriger les éventuelles discontinuités du contour de chaque zone. A l'issue de cette étape, les contours bruts CB-i des zones Z-i, définies automatiquement, suivent des arêtes et passent par des sommets du maillage HR validé. Ces contours bruts CB-i sont définis par une courbe éditable. Puis, à l'étape 140, un module d'édition de contour de la première application 22 est exécuté pour générer des contours lissés, CL-i, comme cela est illustré sur la figure 3. Dans un mode de mise en oeuvre automatique de cette étape, un algorithme est utilisé, tels qu'un algorithme de détermination du chemin le plus court, effectuant une projection d'un contour brut CB-i sur la surface du maillage HR de manière à obtenir un contour lissé CL-i qui n'est plus contraint de suivre les arêtes et de passer par les sommets du maillage HR, mais peut traverser la surface d'une facette. Le contour lissé CL-i d'une zone Z-i reste cependant contraint sur la surface du maillage HR. Dans un mode de mise en oeuvre manuel de cette étape ou en complément d'une mise en oeuvre automatique, au moyen d'un environnement graphique de la première application 22, propre à être affiché sur un écran du terminal opérateur 12, l'opérateur édite, modifie et valide les contours bruts CB-i ou lissé CL-i des zones Z-i déterminées automatiquement à l'étape 130 ou à l'étape 140. Plus précisément, l'opérateur sélectionne un ou plusieurs point(s) du contour et leur applique une transformation afin de supprimer un contour, d'ajouter un contour ou encore de déplacer un contour, par exemple pour qu'il ne suive plus les arêtes et les sommets du maillage HR validé. A l'issue de l'étape 140, l'ensemble du maillage HR validé est subdivisé en zones Z-i délimitées par des contours lissés CL-i. L'étape 150 correspond à l'exécution d'un module de validation et d'étiquetage de zone Z-i, de la première application. L'opération de validation d'une zone permet d'abord, lorsque le contour lissé CL-i de la zone Z-i s'écarte des arêtes existantes du maillage HR validé, de créer de nouveaux sommets le long du contour lissé L-i et d'ajouter des facettes au maillage HR validé, qui correspondent à ces nouveaux sommets. A l'issue de cette étape, le contour lissé CL-i passe sensiblement par des arêtes et des sommets d'un maillage HR augmenté. Cette opération est un remaillage adaptatif localisé au voisinage du contour lissé CL-i délimitant la zone Z-i. L'opération de validation d'une zone Z-i permet ensuite de découper le maillage HR augmenté de manière à générer, pour chaque zone validée, un sous-maillage HR, HR-i. Un sous-maillage HR HR-i permet de définir un sous-objet SSObj_i dans l'objet personnalisable Obj défini par le fichier initial FI. A l'issue de l'étape 150, l'objet est entièrement subdivisé en sous-objets, c'est-à-dire que la réunion des N sous-maillages HR HR-i est égale au maillage HR augmenté. Un fois une zone Z-i validée, elle est étiquetée. Pour cela, le module permet à l'opérateur d'affecter un attribut de personnalisation du sous-objet SSObj_i correspondant. Ainsi, pour chaque sous-objet SSObj i de l'objet personnalisable Obj, l'opérateur indique si ce sous-objet est modifiable ou non modifiable. De nombreuses variantes de réalisation sont envisageables dans lesquelles des attributs de personnalisation plus fins sont définis pour chaque sous-objet, ces attributs permettant de contraindre les modifications possibles d'un sous-maillage HR d'un sous- objet modifiable. Il peut par exemple s'agir d'une contraindre sur les fonctions de modifications pouvant être appliquées sur le sous-maillage HR, telles que : l'ajout ou la suppression de sommets, d'arêtes ou de facettes, ou encore le déplacement de sommets ; l'utilisation des outils de l'environnement graphique 3D permettant au client de mettre en oeuvre ces fonctions, telles que des outils de dessin ou de sculpture permettant d'appliquer une transformation d'échelle locale au sous-maillage HR (transformation d'échelle dont le centre correspond au centre de l'outil et dont la portée correspond à la finesse de l'outil), etc. A l'étape suivante, 160, un module de définition de volumes de contrainte est exécuté pour associer à chaque sous-maillage HR HR-i un ou plusieurs volume(s) enveloppe. Deux types de volumes de contrainte sont avantageusement définis. Un premier volume de contrainte définit un volume autour du sous-maillage HR d'un sous-objet modifiable, correspondant aux limites de personnalisation par déformation ou modification du sous-maillage HR correspondant. Un tel volume V1-3 est représenté schématiquement sur la figure 3 pour le sous-objet « anse », Z-3, de l'objet « tasse ». Un deuxième volume de contrainte est généré automatiquement pour chaque sous-maillage HR, que le sous-objet correspondant soit modifiable ou non-modifiable, indiquant une liste de sommets du sous-maillage HR ne pouvant pas être modifiés lors de l'opération de génération d'un maillage basse résolution, comme cela sera décrit ci-dessous en détail. Chaque volume de contrainte est défini par un maillage dans un fichier au format «.stl ». Puis à l'étape 170, l'exécution d'un module d'importation de la première application 22 permet d'importer sur le serveur 14 les différents fichiers de données correspondant au maillage HR augmenté, aux sous-maillages HR et aux volumes de contraintes. Les fichiers de données de l'objet et des sous-objets sont au format « .obj ». Si le fichier initial FI comporte une texture, cette information est reprise dans chaque fichier importé, notamment en association avec les sous-maillages HR. En revanche, si le fichier initial FI ne comporte pas de texture, une texture par défaut est définie, celle-ci pouvant éventuellement être modifiée par l'opérateur lors de l'étape 150 de validation / étiquetage d'une zone. Les fichiers de données des volumes de contrainte sont au format «.stl ». A l'étape 180, un module XML de la première application 22 est exécuté pour générer un fichier XML de description. Le fichier XML généré dépend de l'objet personnalisé Obj. Il associe le maillage HR augmenté de l'objet ; l'ensemble des sous- objets SSObj_i définis dans l'objet ; et pour chacun de ces sous-objets, le sous-maillage HR augmenté HR-i correspondant, les volumes de contrainte et les attributs de personnalisation associés. Le fichier XML contient en fait des liens vers les fichiers « .obj » ou « .stl » déposés sur le serveur 14 à l'étape 170. A l'étape 190, le fichier XML généré est déposé sur le serveur 14 en utilisant le module d'importation. A l'étape 200, un module de configuration de l'environnement graphique, appartenant à l'application opérateur 22, est exécuté de manière à permettre à l'opérateur de configurer un environnement graphique 3D qui sera affiché sur une interface du terminal client 16 de manière à permettre la manipulation d'objets par le client. L'étape 200 permet à l'opérateur de personnaliser l'environnement graphique 3D. Une fois cette étape réalisée, un fichier ENV de définition de l'environnement graphique 3D est stocké dans la base de données 15 du serveur 14. Lorsqu'un nouveau fichier XML est déposé sur le serveur 14, l'application serveur 24 est exécutée pour réaliser les étapes suivantes du procédé. Dans une étape 210, un module d'analyse de l'application serveur 24 est exécuté pour analyser (parser) le fichier XML et créer des entités correspondantes dans la base de données 15. A chaque fois que le module d'analyse crée une entité correspondant à un sous- objet SSObj i, il place le sous-maillage HR augmenté, HR 1, correspondant dans la base de données 15 et appelle ensuite un module de réduction de résolution. Ainsi, à l'étape 220, le module de réduction de résolution de l'application 24 est exécuté pour générer un sous-maillage basse résolution, maillage BR dans ce qui suit, pour chaque sous-maillage HR, qu'il soit modifiable ou non modifiable, indiqué dans le fichier XML. Le sous-maillage BR correspondant, BR_i est stocké dans la base de données 15. Par basse résolution, on entend un maillage qui comporte un nombre de facettes polygonales inférieur à 20 000, de préférence 15 000 par exemple 10 000. Plus précisément, la notion de basse résolution est en fait relative à la notion de haute résolution. Ainsi, la résolution d'un maillage BR obtenu à partir d'un maillage HR dépend de la résolution de ce maillage HR. De préférence, le rapport du nombre de facettes du maillage HR sur le nombre de facettes du maillage BR correspondant est supérieur à un nombre n, qui vaut au moins 3, de préférence au moins 5, de préférence 10. Ce nombre n constitue avantageusement un paramètre de configuration du module de réduction de résolution de l'application serveur 24. Il est à noter que la basse résolution doit permettre l'affichage de l'objet ou d'un sous-objet dans l'environnement graphique 3D affiché sur l'interface du terminal client 16, de manière graphiquement satisfaisante. Le module de réduction de résolution ne peut donc réduire le nombre de sommets d'un maillage haute résolution (ou, ce qui est équivalent, d'arêtes ou de facette de celui-ci) au-delà par exemple d'une erreur maximale autorisée. Par « erreur », on entend l'écart entre la surface d'une facette du maillage BR résultant de la fusion d'un ensemble de facettes du maillage HR par rapport à la surface cumulée des facettes de cet ensemble de facettes. Cette erreur maximale autorisée est avantageusement un paramètre de configuration du module de réduction de la résolution. Le module de réduction de résolution fusionne d'abord l'ensemble des sous-maillages HR HR_i des sous-objets SSObj i non-modifiables, pour obtenir un unique sous-maillage HR des sous-objets non-modifiables. Puis, pour générer automatiquement un sous-maillage BR BR_i à partir d'un sous-maillage HR HR_i, le module de réduction de résolution applique un algorithme de décimation incrémentale par contraction d'arêtes avec contraintes sur le sous-maillage HR HR_i qui lui est appliqué en entrée. Le module de réduction de résolution calcule une erreur résultant de la contraction de chaque paire de sommets voisins, sommets qui n'appartiennent pas au second volume de contrainte, qui identifie les sommets fixes du sous-maillage HR HR_i lors de cette étape de réduction de résolution. Puis, le module classe les paires de sommets en fonction de la valeur de l'erreur calculée, en ne retenant que les paires pour lesquelles cette erreur est inférieure à l'erreur maximale autorisée. Le module fusionne ensuite chaque sommet avec le sommet voisin, qui, parmi les sommets voisins, forme avec le sommet considéré la paire de sommets présentant la valeur de l'erreur la plus faible, lorsqu'une telle paire existe. Après avoir passé en revue tous les sommets du sous-maillage HR pour obtenir un premier sous-maillage basse résolution, le module de réduction de résolution réitère les opérations de fusion précédentes sur le premier sous-maillage basse résolution. Par itérations successives, le module réduit la résolution du sous-maillage jusqu'à ce qu'un critère de réduction de la résolution prédéfini soit satisfait. Ce critère peut être par exemple un nombre d'itérations des opérations de fusion, ou lorsqu'il n'existe plus de paires de sommets dont l'erreur est inférieure à l'erreur maximale autorisée, ou que le sous-maillage présente un nombre de sommets inférieur à un nombre seuil ou inférieur au nombre de sommets du sous-maillage HR initial divisé par l'entier n défini ci-dessus, ou d'autres critères équivalents. A l'issue des opérations de fusion, un sous-maillage BR BR_i est obtenu en sortie du module de réduction de la résolution. Dans la base de données 15, le sous-maillage BR BR_i de sortie est associé au sous-maillage HR HR_i. Dans une étape 230, le module d'analyse appelle un module de carte de normales de l'application serveur 24. L'exécution du module de carte de normales permet de générer une carte de normales Map i (« normal mapping » en anglais) pour chaque paire sous-maillage HR HR_i / sous-maillage BR BR_i. Une telle carte est connue de l'homme du métier. Elle est ici utilisée comme un moyen de simuler le relief du sous-maillage HR HR i, en conservant l'information d'angle de vue et d'éclairage, lors de l'affichage du maillage BR BR_i correspondant sur le terminal client 16. L'exécution du module de carte normale sur un sous-maillage HR et le sous- maillage BR correspondant conduit à réaliser un dépliage en deux dimension du sous-maillage BR ; à projeter tous les sommets du sous-maillage HR sur le sous-maillage BR déplié ; pour chaque facette du sous-maillage HR, à calculer une information de niveau de gris à partir de la normale à la facette considérée sur le sous-maillage HR, la direction d'un éclairage du sous-maillage HR et d'une texture du sous-maillage HR ; et à associer cette information de niveau de gris à la portion d'une facette du sous-maillage BR délimitée par les sommets projetés de la facette du sous-maillage HR considérée. Une fois que l'ensemble du fichier XML a été analysé, la base de données 15 comporte pour chaque sous-objet modifiable SSObj i et pour le sous-objet correspondant à la réunion des sous-objets non-modifiables : - Un sous-maillage HR, HR _i ; - Un modèle de visualisation 3D, comportant un sous-maillage BR, BR i, et une carte des normales, Map_i. Le procédé 100 se poursuit du côté client, sur le terminal client 16. Alors que les étapes précédentes correspondent à une phase de configuration, les étapes suivantes correspondent à une phase d"utilisation du procédé de personnalisation 100. Un client souhaitant personnaliser un objet personnalisable en vue de sa fabrication lance l'application client 26 sur le terminal client 16. De préférence, la seconde application est constituée par un navigateur internet propre à se connecter à un site Internet, hébergé sur le serveur 14. De manière générale, ce site fourni à l'application client 26, dans un langage adapté, par exemple HTML5 et Javascript, des instructions relatives à l'affichage de l'environnement graphique 3D de manipulation des objets sur l'interface d'affichage du terminal client (écran), et à l'affichage des sous-objets de l'objet à personnaliser dans cet environnement graphique 3D. Les instructions sont élaborées à partir des fichiers de données présents dans la base de données 15. Avantageusement, le navigateur internet exécute un module de visualisation du type WebGL propre à interpréter les instructions d'affichage. A défaut, un « plug-in » est préalablement téléchargé par le terminal client 16 pour permettre au navigateur internet d'afficher l'environnement graphique 3D et les sous-objets. Dans une variante de réalisation, le terminal client étant du type tablette numérique ou « smartphone », l'application client est constituée par une application téléchargeable, comportant à la fois l'environnement graphique 3D et un catalogue de modèles d'objet personnalisables rassemblant l'ensemble des objets personnalisables définis dans la base de données 15. Dans une étape 310, l'exécution de la seconde application 26 conduit au chargement et à l'affichage sur l'interface du second terminal 16 de l'environnement graphique 3D de manipulation d'objets correspondant au fichier ENV déposé dans la base de données 15. Eventuellement, en se connectant, la seconde application 26 fournit au serveur 14 un profil de l'utilisateur (comportant par exemple des données de login / password) permettant au serveur 14 de reconnaitre le client, et d'extraire de la base de données 15 un fichier de configuration d'environnement ENV spécifique au client. Ce fichier de configuration, transmis au terminal client 16, comporte des données de personnalisation d'un environnement graphique 3D générique. Puis, dans une étape 320, l'exécution de la seconde application 26 conduit au chargement et à l'affichage dans l'environnement graphique 3D d'un catalogue d'objets personnalisables rassemblant l'ensemble des objets personnalisables définis dans la base de données 15. Là encore, ce catalogue peut être spécifique à un client identifié. A l'étape 330, le client sélectionne, dans le catalogue, un modèle d'objet personnalisable. Cette sélection a pour effet de générer une requête à destination du serveur 14, la requête comportant un identifiant de l'objet personnalisable sélectionné Obj. En réponse, le serveur 14 transmet vers le terminal client 16, les différents fichiers de visualisation 3D, BR_i et Map i, des sous-objets SSObj_i définissant le modèle d'objet sélectionné, c'est-à-dire les N-1 fichiers de visualisation 3D des sous-objets SSObj_i modifiables et le fichier de visualisation 3D des sous-objets SSObj_i non-modifiables. L'application client 16 affiche les sous-maillages BR BR_i des sous-objets dans l'environnement graphique 3D en appliquant sur la surface de chacun de ces sous-maillages BR les textures et cartes de normales Map_i associées, de manière à obtenir un rendu réaliste de l'objet personnalisable à personnaliser dans l'environnement graphique 3D. Il est à noter que les différents sous-objets sont affichés les uns par rapport aux autres pour reconstituer l'objet à personnaliser. Simultanément, côté serveur 14, la réception d'une requête de sélection d'un objet personnalisable conduit à la création d'une instance de cet d'objet lObj dans la mémoire du serveur 14. Cette instance utilise les sous-maillages HR HR _i des sous-objets SSObj_i de l'objet personnalisable Obj. A l'étape 340, le client sélectionne un sous-objet de l'objet affiché dans l'environnement graphique 3D dans le but de le modifier. Par exemple le sous-objet SSObj 1. Cette action engendre l'émission d'une requête vers le serveur 14 comportant l'identifiant du sous-objet sélectionné. En réponse, le serveur 14 transmet au terminal client 16 le fichier du sous-maillage HR, HR 1, du sous-objet SSObj_1 sélectionné, ainsi que la texture associée. Ne constituant qu'une fraction du maillage HR de l'objet, ce fichier possède une taille raisonnable et est transmis rapidement vers l'application client. La représentation de l'objet sur le terminal client 16 est mise à jour en substituant au sous-maillage BR BR _1 du sous-objet SSObj_1 sélectionné, le sous-maillage HR HR_1 correspondant venant d'être reçu, et en appliquant la texture venant d'être reçue sur ce sous-maillage HR HR_1. Puis, à l'étape 350, le client utilise différents outils fonctionnels, mis à sa disposition dans l'environnement graphique 3D, pour modifier géométriquement le sous- maillage HR HR_1 du sous-objet SSObj_1 sélectionné. Eventuellement, les outils utilisables par le client dépendent des attributs de personnalisation associés au sous-objet SSObj_1 sélectionné. Le client utilise l'outil choisi pour modifier, sur le terminal client 16, le sous-maillage HR HR_1 comme il le souhaite. Le client décide par exemple de rendre plus plate la face de l'objet « tasse » correspondant à la zone Z-1 sur la figure 3. Des sommets du sous maillage HR HR_1 sont supprimés, d'autres sommets sont ajoutés de manière à construire la surface souhaitée. A l'étape 360, le client valide les modifications qu'il vient de réaliser sur le sous- objet SSObj_1 sélectionné. La validation des modifications d'un sous-maillage HR conduit l'application client 26 à transmettre vers le serveur 14 le sous-maillage HR modifié du sous-objet sélectionné. Ainsi, un sous-maillage HR modifié HR 1* est transmis au serveur 14. Lors de la réception d'un sous-maillage HR modifié, HR 1* , le serveur 14 substitue ce sous-maillage HR modifié HR 1* au sous-maillage HR HR_1 correspondant présent dans l'instance lObj. Le serveur 14 exécute le module de réduction de la résolution sur le sous-maillage HR modifié, HR 1*, de manière à mettre à jour un modèle de visualisation 3D du sous-objet SSObj_1 sélectionné, ce modèle de visualisation 3D comportant notamment un sous-maillage BR modifié BR 1* et une carte des normales modifiée Map 1* pour ce sous-objet. Au cours de cette étape le même module de réduction de résolution de l'application serveur 24 est exécuté que celui utilisé dans la phase de configuration. Le serveur 14 envoie ensuite vers l'application client 26 une mise à jour de l'affichage de l'objet comportant le modèle de visualisation 3D modifié du sous-objet sélectionné. Ainsi, un sous-maillage BR modifié HR 1* est transmis au terminal client 16. Les étapes 340 de sélection d'un sous-objet modifiable, 350 de modification du sous-maillage HR du sous-objet sélectionné et 360 de validation des modifications apportées sont itérées par le client pour obtenir l'objet personnalisé qu'il souhaite fabriqué. Un unique sous-maillage HR étant éditable à chaque instant dans l'environnement graphique 3D, l'édition en vue de la personnalisation d'un nouveau sous-objet n'est possible qu'après le rafraichissement de l'affichage de l'objet suite à la validation des modifications apportée au sous-objet précédent. En variante, le sous-maillage 3D d'un sous-objet est transmis périodiquement au serveur pour mettre à jour l'instance correspondante, sans attendre la validation finale des modifications apportées au sous-objet sélectionné. Seule la génération du modèle de visualisation 3D du sous-objet sélectionné est réalisée suite d'une validation par le client. A l'étape 370, après avoir modifié l'objet personnalisable de manière à le personnaliser, le client accepte l'objet personnalisé obtenu et lance sa fabrication. En cliquant sur une icône dédiée de l'environnement graphique 3D, le client lance une instruction de validation finale et de fabrication de l'objet personnalisé. Ceci a pour effet de générer une requête adaptée vers le serveur 14, qui, lorsqu'il la reçoit, génère un fichier de données. Ce fichier final FF est élaboré à partir de la fusion de l'ensemble des sous-maillages HR courants HR i* de l'instance de l'objet lObj dans la mémoire du serveur 14, fusion qui conduit à un maillage HR de l'objet personnalisé à partir duquel est fabriqué le fichier final FF. Le fichier final FF est sauvegardé dans la base de données 15 en tant qu'objet personnalisé à fabriquer. Puis à l'étape 380, le serveur 14 exécute un module de fabrication propre, à partir du fichier final FF, à générer des instructions pour piloter l'imprimante 3D 18 utilisée pour fabriquer l'objet personnalisé. A l'issue de l'étape 380 d'impression, l'objet personnalisé est réalisé. En variante, dans l'étape 380, le serveur génère, à partir du fichier final FF, un fichier de fabrication, comportant les instructions adaptées pour être exécutées par un calculateur de pilotage de l'outil choisi pour réaliser l'objet personnalisé. Ce fichier de fabrication est transmis directement au calculateur de pilotage, si celui-ci est connecté via un réseau, tel que l'internet, au serveur 14, ou indirectement, si le calculateur de pilotage n'est pas connecté. Le fichier de fabrication peut-être donné au client sur un support de données adapté. Ainsi, le système informatique venant d'être décrit permet à des utilisateurs du grand-public, ne possédant pas forcément de connaissances spécifiques en mécanique et/ou en CAO, de réaliser des pièces fonctionnelles personnalisées en utilisant un ordinateur possédant des ressources limitées. REVENDICATIONS1.- Procédé de personnalisation d'un objet personnalisable (Obj) en vue de sa fabrication, pour un système client / serveur (10) comportant un terminal client (16) et un terminal serveur (14), le procédé comportant les étapes consistant successivement à - fournir au terminal client une représentation basse résolution d'un objet, propre à être affichée dans un environnement graphique 3D d'une interface d'affichage du terminal client ; - sélectionner une partie de l'objet affiché dans environnement graphique 3D, en tant que sous-objet sélectionné ; - fournir, par le terminal serveur, une représentation haute résolution dudit sous-objet sélectionné, propre à être affichée dans l'environnement graphique 3D de l'interface d'affichage du terminal client, à la place de la représentation basse résolution du sous- objet sélectionné ; - modifier, dans l'environnement graphique 3D, un sous-maillage haute résolution associé à la représentation haute résolution du sous-objet sélectionné ; - transmettre au serveur le sous-maillage haute résolution modifié du sous-objet sélectionné ; - mettre à jour, sur le serveur, une instance haute résolution (lObj) de l'objet en utilisant le sous-maillage haute résolution modifié ; - réduire automatiquement, par le serveur, une résolution du sous-maillage haute résolution modifié pour obtenir un sous-maillage basse résolution modifié du sous-objet sélectionné ; - générer, par le serveur, une représentation basse résolution modifiée du sous-objet sélectionné à partir du sous-maillage haute résolution modifié et du sous-maillage basse résolution modifié du sous-objet sélectionné ; et, - transmettre, au terminal client, la représentation basse résolution modifiée du sous-objet sélectionné, pour mettre à jour la représentation basse résolution de l'objet affiché dans l'environnement graphique 3D de l'interface d'affichage. 2.- Procédé selon la revendication 1, dans lequel l'étape consistant à fournir une représentation basse résolution d'un objet, comporte les étapes consistant à : - fournir un maillage haute résolution d'un objet personnalisable (Obj) ;- subdiviser en une pluralité de sous-maillages haute résolution (HR_i) complémentaires le maillage haute résolution de l'objet personnalisable, chaque sous-maillage haute résolution étant associé à un sous-objet (SSObj_i) de l'objet personnalisable ; - réduire automatiquement une résolution de chaque sous-maillage haute résolution, de manière à obtenir un sous-maillage basse résolution (BR_i) correspondant ; - stocker, sur le serveur (14), pour chaque sous-objet, le sous-maillage haute résolution et le sous-maillage basse résolution correspondant ; - transférer vers le terminal client (16) les sous-maillages basse résolution des différents sous-objets constituant l'objet personnalisable, pour l'affichage de l'objet personnalisable dans l'environnement graphique 3D de l'interface d'affichage du terminal client (16). 3.- Procédé selon la revendication 2, comportant, suite à l'étape consistant à réduire automatiquement une résolution de chaque sous-maillage haute résolution (HR i), de manière à obtenir un sous-maillage basse résolution (BR_i) correspondant, une étape de calcul d'une carte de normales (Map i) pour chaque sous-objet (SSObj_i) à partir du sous-maillage haute résolution et du sous-maillage basse résolution correspondant dudit sous-objet, la carte des normales d'un sous-objet étant transférée vers le terminal client pour l'affichage de l'objet personnalisable dans l'environnement graphique 3D de l'interface d'affichage du terminal client (16). 4.- Procédé selon la revendication 2 ou la revendication 3, comportant, après avoir subdivisé en une pluralité de sous-maillages haute résolution complémentaires le maillage haute résolution de l'objet personnalisable (Obj), chaque sous-maillage haute résolution (HR_i) étant associé à un sous-objet de l'objet (SSObj i), une étape consistant à assigner à chaque sous-objet un attribut « modifiable » ou « non modifiable », les sous-objets « non modifiables » ne pouvant être modifié dans l'environnement graphique 3D de l'interface d'affichage du terminal client (16). 5.- Procédé selon l'une quelconque des revendications 2 à 4, dans lequel l'étape consistant à subdiviser en une pluralité de sous-maillages haute résolution complémentaires le maillage haute résolution de l'objet personnalisable (Obj) comporte une étape de délimitation automatique de contours (CL-j) dans le maillage haute résolution de l'objet personnalisable, chaque contour délimitant une zone (Z-i) du maillage haute résolution correspondant à un sous-objet. 6.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le ou chaque étape de réduction de la résolution d'un sous-maillage haute résolution met en oeuvre un algorithme de décimation incrémentale par contraction d'arêtes avec contraintes sur le sous-maillage haute résolution qui lui est appliqué en entrée. 7.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le ou chaque étape de réduction de la résolution d'un sous-maillage haute résolution permet de générer un sous-maillage basse résolution présentant n fois moins de facettes et/ou d'arête et/ou de sommets, n étant supérieur à 3, de préférence à 5, de préférence encore à 10. 8.- Procédé selon l'une quelconque des revendications précédentes, dans lequel, lors d'une validation finale des modifications apportées à l'objet affiché dans l'environnement graphique 3D de l'interface d'affichage du terminal client (16), le terminal serveur (14) génère un fichier final (FF) correspondant à la fusion des sous-maillages haute résolution courants constituant l'instance haute résolution (lObj) de l'objet sur le terminal serveur, le fichier final permettant de piloter un outil de fabrication (18) de l'objet personnalisé. 9.- Procédé selon l'une quelconque des revendications précédentes, comportant une étape consistant à fournir à un terminal client (16) un environnement graphique 3D (ENV) propre à être affiché dans une interface d'affichage du terminal client. 10.- Support d'enregistrement d'informations, caractérisé en ce qu'il comporte des instructions pour l'exécution des étapes réalisées par un terminal client (16) d'un procédé conforme à l'une quelconque des revendications 1 à 9, lorsque les instructions sont exécutées par un calculateur électronique. 11.- Système client / serveur (10), caractérisé en ce que le système comporte au moins un terminal client (16) et un terminal serveur (14) programmés pour exécuter ensemble un procédé conforme à l'une quelconque des revendications 1 à 9.