Что такое формат файла PLY?
.ply - это формат файлов 3D-изображений. Стандарт .ply (Polygon File Format или Stanford Triangle Format) был разработан в Стэнфордском университете Грегом Тёрком в начале 1990-х годов. Он был создан как средство хранения простых 3D-данных, собранных с помощью устройств 3D-сканирования.
Файл .ply хранит объекты в виде списка вершин и плоских многоугольников, для которых могут быть определены следующие свойства:
- Цвет и прозрачность,
- Описание нормалей поверхности,
- Пространственные координаты.
Существует две версии формата .ply. Текстовая версия содержит информацию, описывающую все объекты в 3D-изображении в человекочитаемом формате. Бинарная версия хранит те же данные в необработанной двоичной кодировке (little-endian или big-endian), что обеспечивает меньший размер файлов и более быструю загрузку. В обеих версиях заголовок всегда начинается с магического слова ASCII ply и заканчивается end_header.
Общие форматы 3D-геометрии включают .OBJ, .STL (популярен в 3D-печати) и .GLB для сцен glTF.
Безопасность и защита
РИСК: LOWPLY - это пассивные 3D-данные (вершины, грани и свойства), а не исполняемый код, поэтому открывать их безопасно. Единственные практические предостережения не связаны с вредоносным ПО: сканы PLY могут быть очень большими (десятки миллионов точек) и медленно открываться, а некорректный или огромный файл может перегрузить просмотрщик. Загружайте инструменты (MeshLab, Blender, CloudCompare) с их официальных сайтов, чтобы избежать рекламного ПО со страниц-подделок «бесплатных 3D-просмотрщиков».
Детали формата
в двух словах- Подфайл проекта 3MF/Bambu/Prusa (редко) - Некоторые 3D-конвейеры сохраняют дампы точек/сеток с расширением .ply; это все тот же формат Polygon, просто созданный сканерами или слайсерами.
- Данные Harvard Graphics / Stanford GraphBase (устаревшее, редко) - Небольшое количество старых программ использовали .ply для несвязанных данных диаграмм или графиков; фактически устарело и не встречается современным пользователям.
Программы, открывающие файлы PLY
Технические подробности
глубокая спецификация| Варианты кодировки | Текст ASCII (`format ascii 1.0`), бинарный little-endian (`format binary_little_endian 1.0`) или бинарный big-endian (`format binary_big_endian 1.0`) |
| Магические байты / сигнатура | Каждый файл `.ply` начинается со строки ASCII `ply` на отдельной строке, независимо от того, является ли тело текстовым или бинарным |
| Структура заголовка | Всегда обычный текст ASCII, присутствует как в текстовых, так и в бинарных файлах; определения элементов и свойств находятся между `ply` и закрывающей строкой `end_header` |
| MIME-тип | `model/ply` |
| Основные элементы | Вершины (`vertex`) и грани многоугольников (`face`); также поддерживаются ребра и произвольные пользовательские элементы |
| Система свойств | Каждый элемент несет произвольно именованные скалярные свойства или свойства-списки, например `x`, `y`, `z`, `nx`, `ny`, `nz`, `red`, `green`, `blue`, `alpha` |
| Поддерживаемые скалярные типы | `char`, `uchar`, `short`, `ushort`, `int`, `uint`, `float`, `double` |
| Порядок байтов (endianness) | Поддерживаются как little-endian, так и big-endian; строка заголовка `format` указывает, какой из них используется |
| Компактность бинарных данных | Бинарный вариант упаковывает необработанные скалярные значения без слоя сжатия, обычно он в 3-4 раза меньше и быстрее парсится, чем вариант ASCII |
| Поддержка цвета | RGBA для каждой вершины или грани, хранящиеся как именованные свойства `red`, `green`, `blue`, `alpha` (обычно `uchar`, 0-255) |
| Нормали поверхности | Нормали для каждой вершины или грани, хранящиеся как свойства `float` с именами `nx`, `ny`, `nz` |
| Данные облака точек | Файл, содержащий только вершины без списка граней, является валидным `.ply` - широко используется для хранения сырых облаков точек 3D-сканирования |
| Расширяемость | Пользовательские именованные свойства могут быть добавлены к любому элементу; совместимые ридеры пропускают неизвестные свойства, обеспечивая прямую совместимость |
| Кодирование индексов граней | Индексы вершин граней используют тип `list uchar int` - количество байтов, за которым следует соответствующее количество целочисленных индексов вершин |
| Выпущен | early-mid 1990s (Stanford University) |
| Открыть стандартное | Да · без роялти |
| Спецификация | paulbourke.net |
Конвертации PLY
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах PLY.