Полігональний формат PLY (.ply)

Stanford Стандарт

Формат полігональних файлів (PLY, також відомий як Стенфордський трикутний формат): це розширюваний 3D-формат, розроблений Грегом Тюрком у Стенфордському університеті та широко визнаний як науковий стандарт для 3D лазерного сканування, фотограмметрії та хмар точок LiDAR.

Конвертувати з PLY у OBJ

Безкоштовний конвертер з PLY у OBJ у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли PLY, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (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 (Поточний)OBJSTLXYZ
Колір на вершинуВбудована підтримка 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).
  • Відмова в обслуговуванні через надмірне виділення пам'яті, викликане сфабрикованою кількістю елементів.

Рекомендації щодо захисту: Перед виділенням пам’яті перевіряйте, чи відповідає оголошена кількість байтів елементів фактичному розміру файлу.

Історичне походження та віхи

2023Gaussian Splatting революціонізує фотореалістичний рендеринг у реальному часі, використовуючи бінарний PLY як основний формат файлів.
2000Стенфордський цифровий проєкт Мікеланджело сканує безцінні італійські скульптури та зберігає їх у форматі PLY.
1994Грег Тюрк створює PLY в Лабораторії комп'ютерної графіки Стенфорда задля подолання обмежень OBJ.

Основні переваги

  • Надзвичайно розширюваний: користувачі можуть визначати довільні власні властивості (колір на вершину, достовірність, кривизна, температура).
  • Підтримує надзвичайно компактний двійковий формат і зрозумілий людині формат 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 безпосередньо у веббраузері.