PLY
PLY — формат комп'ютерних файлів для опису геометрії, відомий також як Polygon File Format і Stanford Triangle Format. Він був розроблений, головним чином, для зберігання тривимірних даних отриманих з 3D-сканерів. Формат підтримує відносно простий опис об'єкта як списку номінально плоских полігонів. PLY може зберігати безліч властивостей об'єкта, а саме: колір і прозорість, нормалі до поверхні, текстурні координати і т. д. Формат дозволяє мати різні властивості передньої і задньої грані полігону. Існує 2 версії формату файлу PLY: ASCII і у вигляді бінарного файлу.
Розширення файлу: |
. |
---|---|
MIME-тип: |
text/plain |
Магічне число: | PLY |
Розробник: | Грег Тюрк, Стенфордський університет |
Рік випуску: | 1994[1] |
Тип формату: | Формат 3D-моделі |
Опис формату
Файли складаються з заголовка, в якому визначаються елементи полігональних сіток і їх типи, і наступного за ним списку самих елементів. Елементи — це зазвичай вершини і грані, але в опис можуть додаватись інші сутності, такі як ребра або смуги трикутників (англ. triangle strips). Заголовок і для ASCII, і для бінарного файлу є ASCII текстом. Тільки числові дані, які стоять після заголовка, різняться між версіями. Заголовок завжди починається з «магічного числа», рядка, що містить слово
ply
що ідентифікує PLY формат файлу. Другий рядок вказує, який варіант PLY формату використовується:
format ascii 1.0 format binary_little_endian 1.0 format binary_big_endian 1.0
На даний момент 1.0 — єдина версія формату, яка використовується. Коментарі можуть бути розміщені в заголовку з використанням слова comment
на початку рядка. Весь рядок після цього слова при імпорті буде проігнорований:
comment This is a comment!
Ключове слово element
вводить опис того, який конкретний елемент даних зберігається у файлі, а також кількість цих елементів. У прикладі нижче описано, що файл містить 12 вершин, кожна з яких представлена у вигляді трьох чисел з рухомою комою:
element vertex 12 property float x property float y property float z
Рядки, що починаються зі слова property
, вказують тип інформації про вершини. Існує 2 варіанти типів, що залежать від джерела ply файлу. Тип може бути одним з char uchar short ushort int uint float double або одним з int8 uint8 int16 uint16 int32 uint32 float32 float64. Грані об'єкта можуть бути описані в такий спосіб:
element face 10 property list uchar int vertex_indices
Слово list
показує, що дані представлені у вигляді списку значень, перше з яких — це кількість елементів списку (представлене типом uchar в даному випадку), а кожне входження списку має тип int. Для звичайного property list … представлення полігонів перше число для цього елемента — це число вершин полігону, і числа, які залишилися, — це індекси в попередньому списку вершин. В кінці заголовка розташовується рядок, що позначає його кінець:
end_header
ASCII або бінарний формат
В ASCII версії формату кожна вершина і грань описується одним рядком чисел, розділених пробілами. У бінарної версії формату дані упаковуються один біля одного в порядку байтів, котрий встановлений у заготовці, і типом, зазначеним в property
.
Історія
Формат PLY був розроблений в середині 90-х Грегом Тюрком і іншими співробітниками Stanford graphics lab під керівництвом Марка Левоя (англ. Marc Levoy). Задум формату був натхненний форматом Wavefront .obj, але формат Obj не володіє розширюваністю довільними властивостями і групами даних, для чого були введені ключові слова property
і element
, узагальнюючі нотацію вершин, граней, асоційованих даних і т. д.
Див. також
- obj — формат файлу для опису 3D геометрії з розширенням «.obj»
- Mathematica — технічна обчислювальна система, яка може працювати з файлами PLY.
Примітки
- Greg Turk. The PLY Polygon File Format. Архів оригіналу за 2 травня 2017. Процитовано 16 травня 2017.
Посилання
- PLY — Polygon File Format
- Деякі інструменти для роботи з файлами PLY (код на C)
- rply — Бібліотека програмного забезпечення Ansi C для читання і запису файлів PLY (ліцензія MIT)
- libply — Бібліотека програм C++ для читання і запису файлів PLY (ліцензія GNU)
- Інше бібліотечне програмне забезпечення C++ для читання і запису файлів Ply (ліцензія GPL 3.0)
- Репозиторій 3D-моделей, що зберігаються в форматі PLY