Cookies de statistiques et de publicité
Nous utilisons des cookies de statistiques et de publicité, tous deux destinés à Google. Si vous refusez, rien ne change visiblement pour vous.Aller à la page de confidentialité
Vous pouvez convertir PLY en OBJ gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.
Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.
Ils sont convertis les uns après les autres et reviennent ensemble dans un ZIP.
PLY en OBJ
PLY est l’endroit où vivent les scans et OBJ est l’endroit où se fait la modélisation. Chaque logiciel de sculpture et d’animation lit l’OBJ sans y penser ; le support PLY va de bon, dans Blender et MeshLab, à absent, dans un bon nombre des outils qu’un pipeline de studio contient réellement. Quand un scan doit être retopologisé, décimé à la main, sculpté dessus ou utilisé comme mesh de base, la première étape est en général un changement de format.
La conversion est petite parce que les deux formats sont proches en ambition. Tous deux décrivent une surface comme une liste de sommets et une liste de polygones par-dessus, tous deux sont en texte, et tous deux sont suffisamment anciens pour que tout le monde les lise. Ce qu’OBJ ajoute, c’est le groupement et une référence de matériau ; ce que PLY ajoute, ce sont des propriétés arbitraires par sommet. Cette conversion porte la géométrie qu’ils partagent.
Un scan de photogrammétrie ou à lumière structurée stocke son apparence en rouge, vert et bleu sur chaque sommet. Il n’y a pas de texture, pas de layout UV et pas de fichier image — la couleur est une propriété de la géométrie, ce qui est toute la raison pour laquelle PLY est devenu le format de scan.
L’OBJ que ce convertisseur écrit contient des lignes v et f et rien d’autre : pas de coordonnées vt, pas de référence mtllib, pas de .mtl associé. Même un fichier de matériau écrit à la main ne pourrait pas porter de couleur par sommet, parce que les matériaux OBJ s’appliquent par groupe de faces. Le flux de travail pratique est de garder les deux fichiers — faire le travail de géométrie depuis l’OBJ, et reprendre la couleur depuis le PLY plus tard en baked les couleurs de sommets en texture dans un outil qui les lit.
Un fichier PLY décrit un élément vertex et un élément face. Il n’y a pas de notion d’objet, de groupe ou de pièce, et aucun nom nulle part dans l’en-tête pour la surface elle-même. Donc le convertisseur produit exactement un groupe o, et puisqu’il n’y a pas de nom à porter, il en écrit un généré : mesh_1.
Dans Blender ou Maya, c’est ce qui apparaît dans l’outliner. Sur un scan unique, c’est sans conséquence ; sur un projet où six scans sont combinés, c’est une vraie gêne, parce que chaque import produit un objet portant le même nom. Renommez à l’import, ou renommez la seule ligne o de l’OBJ dans un éditeur de texte avant d’importer — c’est la deuxième ligne du fichier.
C’est une vraie différence entre cette paire et la plupart des autres ici. Quand un STL ou un OBJ est lu, les sommets coïncidents sont soudés à six décimales, parce que ces formats arrivent couramment avec des doublons. Quand un PLY est lu, son tableau de sommets et ses indices de face sont pris tels qu’ils sont écrits.
C’est le bon comportement pour des données scannées, qui ont déjà été maillées par un logiciel qui a pris des décisions délibérées sur la connectivité. Cela veut dire aussi que la conversion ne peut rien nettoyer : si le scan porte des sommets en double, des sommets non référencés ou des coutures fendues, ils arrivent dans l’OBJ inchangés. Le nombre de sommets dans l’OBJ correspondra au nombre de sommets dans l’en-tête du PLY, ce qui est un moyen rapide de confirmer que le fichier s’est converti comme vous l’attendiez.
Un PLY contenant des sommets et pas de faces est refusé avec un message qui explique pourquoi. Ce fichier est un nuage de points, ce que produit un scanner avant que quoi que ce soit le maille, et transformer des points en une surface est de la reconstruction plutôt qu’une conversion — une opération avec des paramètres, un aperçu et un résultat que quelqu’un doit valider.
Faites-le là où cela a sa place. MeshLab et CloudCompare proposent tous deux la reconstruction de surface par Poisson et par ball-pivoting ; Open3D expose les deux depuis Python ; le logiciel de chaque scanner a une étape de maillage. Convertissez ensuite la sortie maillée. Un convertisseur qui reconstruirait silencieusement une surface vous remettrait une forme que vous n’avez jamais choisie et aucun moyen de savoir qu’il l’a fait.
Les listes de faces PLY peuvent contenir n’importe quel nombre d’indices, et les outils de maillage émettent parfois des quads. Toute face avec plus de trois coins est triangulée en éventail depuis son premier indice avant d’être écrite, ce qui est correct pour des polygones convexes et peut mal se comporter sur des concaves.
Les maillages de scan sont déjà très largement des triangles, donc cela s’applique rarement. Là où cela s’applique, notez que l’OBJ qui sort est en triangles uniquement — l’écriture émet trois indices par ligne f et ne reconstruit jamais de quads. Si votre flux de retopologie veut un mesh de base en quads, c’est quelque chose que vous construisez dans l’application de modélisation, pas quelque chose qu’un scan aurait jamais fourni.
Un PLY binaire stocke une coordonnée float32 en quatre octets. Le même nombre écrit dans un OBJ prend de huit à dix-huit caractères plus des séparateurs, donc un OBJ texte d’un scan dense est plusieurs fois la taille du fichier dont il vient, et un mesh brut de photogrammétrie de plusieurs millions de triangles produit un fichier texte qui fera peiner un éditeur.
Décimer d’abord est presque toujours le bon mouvement, et c’est une meilleure décision prise dans MeshLab contre le PLY que dans votre application de modélisation contre l’OBJ, parce que le quadric edge collapse de MeshLab peut recevoir l’ordre de préserver les bords et la topologie. Arriver à quelques centaines de milliers de triangles avant la conversion rend tout ce qui suit plus rapide et ne perd rien qu’un modélisateur regrettera.
Attendez-vous à une surface à facettes. Aucune ligne vn n’est écrite, donc les normales de face plates sont calculées à l’import ; passez en shade smooth ou appliquez un angle auto-smooth et le scan retrouve son apparence. Attendez-vous aussi à aucun matériau, et attribuez-en un avant toute autre chose pour que le mesh soit visible contre le fond du viewport.
Puis le travail habituel de scan : retirer les îlots parasites que le scanner a ramassés de l’arrière-plan, remplir les trous là où il n’a pas vu, et retopologiser si le mesh doit être animé ou subdivisé. Rien de tout cela n’est un travail de conversion et rien ne devrait être dans un convertisseur — le but de cette étape est de mettre la géométrie dans l’outil où ces opérations sont chacune une commande.
L’OBJ est un fichier dérivé. Il a la forme et aucune des couleurs, aucune des valeurs de confiance ou de qualité par sommet qu’un scanner écrit, et aucune des normales si le PLY en portait. Chacune de ces informations est irrécupérable depuis l’OBJ.
Le schéma qui marche est de traiter le PLY comme le maître et l’OBJ comme une copie de travail : modélisez contre l’OBJ, et revenez au PLY chaque fois que l’apparence ou les métadonnées du scanner sont nécessaires. Les deux fichiers restent sur votre machine dans les deux cas — cette conversion tourne dans le navigateur sans rien téléverser, ce qui vaut la peine d’être su quand le scan est celui d’un objet de client ou d’une personne.
| PLY | OBJ | |
|---|---|---|
| Nom complet | Polygon File Format | Objet Wavefront |
| Extension de fichier | .ply | .obj |
| Type de média | model/ply | model/obj |
| Première publication | 1994 | 1992 |
| Publié par | Stanford University | Wavefront Technologies |
| Licence | Standard ouvert | Standard ouvert |
| Situation actuelle | Actuel | Actuel |
| S’ouvre dans un navigateur | Aucun navigateur | Aucun navigateur |
| Envisagé à la place | STL | GLTF, STL |
MeshLab et Blender lisent aussi bien PLY que OBJ : vous pouvez comparer le résultat à l’original sans second logiciel.
OBJ vient de Wavefront Technologies et date de 1992. Blender, MeshLab et Maya le lisent.
Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier.
Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois.
PLY et OBJ décrivent le contenu de façons radicalement différentes. La conversion est donc une reconstitution et non une copie : fidèle, mais pas identique octet pour octet. La géométrie seule. Les matériaux, les couleurs, les textures et l’animation ne suivent pas, et un modèle placé plusieurs fois revient avec chaque copie figée à sa propre position.
Pas pour la conversion : elle se fait dans le navigateur que vous avez déjà ouvert. Pour ouvrir le résultat, il vous faut ensuite le logiciel avec lequel votre appareil affiche habituellement Wavefront Object.