Polygon PLY (.ply)
Stanford תקןPolygon File Format (PLY, המוכר גם בשם Stanford Triangle Format) הוא פורמט תלת-ממדי הניתן להרחבה, שפיתח גרג טורק באוניברסיטת סטנפורד, ומשמש בחלק מתהליכי העבודה של סריקה, פוטוגרמטריה וענני נקודות.
המר PLY ל-OBJ
ממיר חינמי מ-PLY ל-OBJ פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי PLY על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי PLY על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 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 | אחד הפורמטים המשמשים לנתוני Gaussian Splatting | לא נתמך | לא נתמך | לא נתמך |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
התוכנה מדווחת על שגיאה: 'PLY: End of file reached before all elements read'.
גורם שורש: אי-התאמה בין ספירת הרכיבים המוגדרת בכותרת הקובץ (Header) לבין המספר הפיזי של שורות הנתונים הבינאריים.
שחזור: חשבו מחדש את ספירת רכיבי הכותרת באמצעות הכלי PLY Repair Tool של File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מפענחי PLY מנתחים הצהרות כותרת המגדירות את גדלי המאפיינים, כאשר גלישת מספר שלם (Integer Overflow) עלולה לגרום להשחתת ה-Heap (ערימה).
ווקטורי תקיפה ידועים
- גלישת מספר שלם (Integer Overflow) במהלך הקצאת הזיכרון עבור property_count * element_count.
- קריאת יתר של באפר (Buffer over-read) בעת קריאת סוגי מאפיינים בינאריים פגומים (למשל: קריאת float64 לתוך באפר float32).
- מניעת שירות (DoS) באמצעות הקצאת זיכרון מופרזת המופעלת על ידי ספירות רכיבים מזויפות.
שיטות מומלצות להגנה: ודא שמספר הבתים המוצהר של הרכיבים תואם לגודל הקובץ הפיזי לפני הקצאת זיכרון.
היסטוריה ואבני דרך
יתרונות מרכזיים
- ניתן להרחבה במידה רבה: משתמשים יכולים להגדיר מאפיינים מותאמים אישית שרירותיים (צבע לכל קודקוד, רמת אמינות, עקמומיות, טמפרטורה).
- תומך בפורמטים בינאריים קומפקטיים במיוחד ובפורמטי ASCII קריאים לבני אדם, בשתי שיטות סדר הבייטים Big-Endian ו-Little-Endian.
- PLY יכול לשמור קודקודים, פאות ושדות אופציונליים של צבע או נורמל, ולכן כלי סריקה ופוטוגרמטריה משתמשים בו לענני נקודות ולרשתות. ודא שהכלי המקבל קורא את השדות שבקובץ שלך.
מגבלות טכניות וחסרונות
- תמיכה מוגבלת במנועי משחקים תלת-ממדיים צרכניים בהשוואה ל-glTF או FBX ללא שימוש בתוספי ענן נקודות ייעודיים.
- ללא תמיכה מובנית בשלדים, משקלי עצמות או היררכיות אנימציה של דמויות.
- חסרות הגדרות תקניות לחומרי PBR (מסתמך בעיקר על צביעה לכל קודקוד או מרקמי תאורה פשוטים מסוג Diffuse).
עובדות טכניות מעניינות
- כל קובץ PLY תקני חייב להתחיל בארבעת התווים המדויקים 'ply\n' בשורה הראשונה.
- ארנב סטנפורד המפורסם נוצר בשנת 1994 על ידי סריקת ארנב קרמיקה באמצעות סורק לייזר Cyberware 3030, ונשמר במקור בפורמט PLY.
- המאמר על Gaussian Splatting משנת 2023 השתמש בענני נקודות עם הרמוניות ספריות; PLY הוא אחד הפורמטים המשמשים לאחסון נתונים כאלה.
שאלות טכניות נפוצות
למה משמש פורמט PLY כיום?
PLY משמש בהרחבה עבור Gaussian Splatting תלת-ממדי, סריקת לייזר תלת-ממדית, שימור דיגיטלי של ממצאים ארכאולוגיים, פוטוגרמטריה וענני נקודות של LiDAR.
מה ההבדל בין ASCII PLY ל-Binary PLY?
ב-PLY מסוג ASCII ערכי הקודקודים והפאות נשמרים כמספרים קריאים, ואילו ב-PLY בינארי הם נשמרים כבתים. קבצים בינאריים בדרך כלל קומפקטיים יותר; קל יותר לבדוק קובצי ASCII בעורך טקסט.
איך אוכל להמיר קובץ PLY ל-OBJ או STL?
העלה את קובץ ה-PLY שלך ל-File2File.app כדי להמיר אותו למודל OBJ סטנדרטי או לרשת (mesh) STL הניתנת להדפסה בתלת-ממד באופן מיידי בדפדפן האינטרנט שלך.