Wat is het PLY-bestandsformaat?
.ply is een 3D-afbeeldingsbestandsindeling. De .ply (Polygon File Format of Stanford Triangle Format) standaard werd begin jaren 90 ontwikkeld aan de Stanford University door Greg Turk. Het werd gecreëerd als een middel om eenvoudige 3D-gegevens op te slaan die zijn verzameld met een 3D-scanapparaat.
Een .ply-bestand slaat objecten op als een lijst van hoekpunten en platte polygonen waarvoor de volgende eigenschappen kunnen worden gedefinieerd:
- Kleur en transparantie,
- Beschrijving van oppervlaktenormalen,
- Ruimtelijke coördinaten.
Er zijn twee versies van het .ply-formaat. De tekstversie bevat informatie die alle objecten in een 3D-afbeelding beschrijft in een voor mensen leesbaar formaat. De binaire versie slaat dezelfde gegevens op in ruwe binaire codering (little-endian of big-endian), wat resulteert in kleinere bestanden en snellere laadtijden. In beide versies begint de header altijd met het ASCII-toverwoord ply en eindigt met end_header.
Veelvoorkomende 3D-geometrieformaten zijn .OBJ, .STL (populair bij 3D-printen) en .GLB voor glTF-scènes.
Beveiliging & veiligheid
RISICO: LOWPLY bevat passieve 3D-gegevens - hoekpunten, vlakken en eigenschappen, geen uitvoerbare code - dus het openen ervan is veilig. De enige praktische waarschuwingen zijn niet-malware gerelateerd: scan-PLY's kunnen erg groot zijn (tientallen miljoenen punten) en traag openen, en een misvormd of enorm bestand kan een viewer zwaar belasten. Download tools (MeshLab, Blender, CloudCompare) van hun officiële sites om gebundelde adware van „gratis 3D-viewer” imitatiepagina's te vermijden.
Formaatdetails
in een notendop- 3MF/Bambu/Prusa project sub-bestand (ongebruikelijk) - Sommige 3D-pipelines slaan punt/mesh-dumps op met een .ply-naam; nog steeds hetzelfde Polygon-formaat, alleen geproduceerd door scanners of slicers.
- Harvard Graphics / Stanford GraphBase data (verouderd, zeldzaam) - Een handvol oude programma's gebruikte .ply voor niet-gerelateerde grafiek- of diagramgegevens; effectief verouderd en niet wat moderne gebruikers tegenkomen.
Programma's die PLY-bestanden openen
Technische details
diepe specificaties| Coderingsvarianten | ASCII-tekst (`format ascii 1.0`), little-endian binair (`format binary_little_endian 1.0`), of big-endian binair (`format binary_big_endian 1.0`) |
| Bestandsmagie / handtekening | Elk `.ply`-bestand begint met de ASCII-tekenreeks `ply` op een eigen regel, ongeacht of de body tekst of binair is |
| Header-structuur | Altijd platte ASCII-tekst, aanwezig in zowel ASCII- als binaire bestanden; element- en eigenschapsdefinities verschijnen tussen `ply` en de afsluitende `end_header`-regel |
| MIME-type | `model/ply` |
| Primaire elementen | Hoekpunten (`vertex`) and polygoonvlakken (`face`); randen en willekeurige aangepaste elementen worden ook ondersteund |
| Eigenschappensysteem | Elk element bevat willekeurig benoemde scalaire of lijst-eigenschappen, bijv. `x`, `y`, `z`, `nx`, `ny`, `nz`, `red`, `green`, `blue`, `alpha` |
| Ondersteunde scalaire types | `char`, `uchar`, `short`, `ushort`, `int`, `uint`, `float`, `double` |
| Binaire endianness | Zowel little-endian als big-endian worden ondersteund; de `format` header-regel specificeert welke in gebruik is |
| Binaire compactheid | De binaire variant verpakt ruwe scalaire waarden zonder compressielaag, doorgaans 3-4x kleiner en sneller te verwerken dan de ASCII-variant |
| Kleurondersteuning | RGBA per hoekpunt of per vlak opgeslagen als benoemde `red`, `green`, `blue`, `alpha` eigenschappen (meestal `uchar`, 0-255) |
| Oppervlaktenormalen | Normalen per hoekpunt of per vlak opgeslagen als `float`-eigenschappen genaamd `nx`, `ny`, `nz` |
| Puntenwolkgegevens | Een bestand met alleen hoekpunten en geen lijst met vlakken is een geldig `.ply` - veelgebruikt voor het opslaan van ruwe 3D-scanpuntenwolken |
| Uitbreidbaarheid | Aangepaste benoemde eigenschappen kunnen aan elk element worden toegevoegd; compatibele lezers slaan onbekende eigenschappen over, wat voorwaartse compatibiliteit garandeert |
| Codering van vlak-index | Vertex-indices van vlakken gebruiken een `list uchar int` type - een byte-telling gevolgd door dat aantal integer vertex-indices |
| Uitgebracht | early-mid 1990s (Stanford University) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | paulbourke.net |
PLY conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PLY-bestanden.