Полігональний формат PLY (.ply)
Stanford СтандартФормат полігональних файлів (PLY, також відомий як Стенфордський трикутний формат): це розширюваний 3D-формат, розроблений Грегом Тюрком у Стенфордському університеті та широко визнаний як науковий стандарт для 3D лазерного сканування, фотограмметрії та хмар точок LiDAR.
Конвертувати з PLY у OBJ
Безкоштовний конвертер з PLY у OBJ у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли PLY, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли PLY, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
70 6C 79 0AПОДАННЯ В ASCII: ply\n
Стандартизація: Stanford University Computer Graphics Laboratory Standard
Технічні характеристики
| Архітектура контейнера | Заголовок у форматі ASCII або двійковому форматі визначає розширювані елементи та властивості, за якими йдуть масиви необроблених даних вершин і граней |
| Стиснення | Нестиснені структуровані двійкові дані або текст ASCII |
| Порядок байтів (Endianness) | Задається в заголовку: «format binary_little_endian 1.0», «format binary_big_endian 1.0» або «format ascii 1.0» |
| Колірні простори | Кольори RGB/RGBA для кожної вершини, Скалярні значення достовірності, Нормалі поверхні |
| Канали та структура | Вершини, багатокутні грані, хмари точок, кольори для кожної вершини, нормалі та довільні власні властивості сенсорів |
| Максимальні розміри | Необмежений тривимірний простір координат і кількість вершин |
| Прозорість | Альфа-канал для кожної вершини підтримується через властивість «alpha» |
| Потокове та прогресивне завантаження | Заголовок указує точну кількість елементів, що дає змогу миттєво виділити пам’ять і швидко послідовно зчитувати дані |
Технічна матриця порівняння: PLY проти конкурентів
| Технічний атрибут | PLY (Поточний) | OBJ | STL | XYZ |
|---|---|---|---|---|
| Колір на вершину | Вбудована підтримка RGB/RGBA для кожної вершини | Потребує текстур матеріалу | Відсутній (лише геометрія) | Сирі скаляри координат |
| Розширювані властивості | Довільні власні властивості в заголовку | Фіксований синтаксис тегів | Фіксований синтаксис трикутників | Фіксовані стовпці координат |
| Підтримка хмар точок | Вбудована підтримка високопродуктивних хмар точок | Незграбна (потребує граней з однією вершиною) | Відсутня (потребує замкнутих трикутників) | Вбудована підтримка необроблених координат точок |
| Gaussian Splatting | Стандартний глобальний формат за замовчуванням | Не підтримується | Не підтримується | Не підтримується |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Програма повідомляє: «PLY: End of file reached before all elements read».
Першопричина: Невідповідність між оголошеною кількістю елементів у заголовку та фактичною кількістю рядків двійкових даних.
Відновлення: Перерахуйте кількість елементів у заголовку за допомогою інструменту File2File.app PLY Repair Tool.
Аналіз безпеки та векторів атак на парсери
Декодери PLY розбирають оголошення в заголовку, що визначають розміри властивостей. Переповнення цілого числа може призвести до пошкодження динамічної пам’яті.
Відомі вектори атак
- Переповнення цілих чисел під час виділення пам'яті property_count * element_count.
- Читання за межами буфера під час обробки пошкоджених двійкових типів властивостей (наприклад, читання float64 у буфер float32).
- Відмова в обслуговуванні через надмірне виділення пам'яті, викликане сфабрикованою кількістю елементів.
Рекомендації щодо захисту: Перед виділенням пам’яті перевіряйте, чи відповідає оголошена кількість байтів елементів фактичному розміру файлу.
Історичне походження та віхи
Основні переваги
- Надзвичайно розширюваний: користувачі можуть визначати довільні власні властивості (колір на вершину, достовірність, кривизна, температура).
- Підтримує надзвичайно компактний двійковий формат і зрозумілий людині формат ASCII з порядком байтів від старшого до молодшого та від молодшого до старшого.
- PLY може зберігати вершини, грані та необов’язкові поля кольору або нормалей, тому інструменти сканування й фотограмметрії використовують його для хмар точок і сіток. Переконайтеся, що цільовий засіб читає поля вашого файлу.
Технічні обмеження та недоліки
- Обмежена підтримка в споживчих 3D-ігрових рушіях порівняно з glTF або FBX без спеціалізованих плагінів для хмар точок.
- Немає вбудованої підтримки скелетного ригінгу, ваг кісток або ієрархій анімації персонажів.
- Бракує стандартних визначень матеріалів PBR (покладається переважно на кольори на вершину або прості дифузні текстури).
Цікаві технічні факти
- Кожен дійсний файл PLY має починатися рівно з 4 символів «ply\n» у першому рядку.
- Знаменитого Стенфордського кролика створили у 1994 році, відсканувавши керамічного кролика лазерним сканером Cyberware 3030; спочатку модель зберегли у форматі PLY.
- У статті про Gaussian Splatting за 2023 рік використовували хмари точок зі сферичними гармоніками; PLY: один із форматів для зберігання таких даних.
Поширені технічні запитання
Для чого сьогодні використовується формат PLY?
PLY широко використовується для 3D Gaussian Splatting, 3D лазерного сканування, археологічного цифрового збереження, фотограмметрії та хмар точок LiDAR.
У чому різниця між ASCII та Binary PLY?
ASCII PLY зберігає числа як читабельний текст (зручно налагоджувати невеликі моделі), а Binary PLY: як необроблені байти, завдяки чому файл у 5: 10 разів менший і завантажується значно швидше.
Як конвертувати файл PLY в OBJ або STL?
Завантажте свій файл PLY на File2File.app, щоб миттєво перетворити його на стандартну модель OBJ або придатну для 3D-друку сітку STL безпосередньо у веббраузері.