PLY (تنسيق الملف)
PLY هو تنسيق ملفات حاسوبي يُعرف باسم تنسيق ملف المضلع أو تنسيق مثلث ستانفورد . صُمم أساسًا لتخزين البيانات ثلاثية الأبعاد من الماسحات الضوئية ثلاثية الأبعاد. يدعم هذا التنسيق وصفًا بسيطًا نسبيًا لجسم واحد على شكل قائمة من المضلعات المسطحة. يمكن تخزين مجموعة متنوعة من الخصائص، بما في ذلك اللون والشفافية، والمتجهات العمودية للسطح، وإحداثيات النسيج، وقيم موثوقية البيانات. يسمح هذا التنسيق بتحديد خصائص مختلفة للوجه الأمامي والخلفي للمضلع.
يوجد إصداران من تنسيق الملف ، أحدهما بتنسيق ASCII والآخر بتنسيق ثنائي .
تنسيق الملف
يبدأ ملف Ply بالخاصية "header" التي تحدد عناصر الشبكة وأنواعها، متبوعة بقائمة العناصر نفسها. عادةً ما تكون العناصر رؤوسًا ووجوهًا، ولكنها قد تشمل كيانات أخرى مثل الحواف، وعينات من خرائط النطاق، وشرائط المثلثات.
رأس كل من ملفات ASCII والملفات الثنائية هو نص ASCII. يختلف فقط البيانات الرقمية التي تلي الرأس بين النسختين. يبدأ الرأس دائمًا برقم سحري ، وهو سطر يحتوي على:
طبقة
يُحدد هذا السطر الأول أن الملف بصيغة PLY. أما السطر الثاني فيُشير إلى نوع صيغة PLY المستخدمة، ويجب أن يكون أحد الأنواع التالية:
تنسيق ASCII 1.0 تنسيق ثنائي صغير النهاية 1.0 تنسيق ثنائي كبير النهاية 1.0
ستغير الإصدارات المستقبلية من المعيار رقم المراجعة في النهاية - ولكن الإصدار 1.0 هو الإصدار الوحيد المستخدم حاليًا.
يمكن إضافة التعليقات في رأس الصفحة باستخدام الكلمة commentفي بداية السطر. يجب تجاهل كل ما يليها حتى نهاية السطر. مثال:
هذا تعليق!
تُقدّم الكلمة elementالمفتاحية وصفًا لكيفية تخزين بعض عناصر البيانات المحددة وعددها. لذا، في ملف يحتوي على 12 رأسًا، يُمثّل كل منها بثلاثية عشرية (X,Y,Z)، يُتوقع رؤية ما يلي:
رأس العنصر 12 خاصية عائمة x خاصية عائمة y خاصية عائمة z
قد تشير أسطر أخرى propertyإلى تخزين الألوان أو عناصر بيانات أخرى عند كل رأس، وتوضح نوع بيانات تلك المعلومات. فيما يتعلق بنوع البيانات، يوجد نوعان مختلفان حسب مصدر ملف ply. يمكن تحديد النوع باستخدام أحد الخيارين التاليين: `<type>` char uchar short ushort int uint float doubleأو `<type> int8 uint8 int16 uint16 int32 uint32 float32 float64`. بالنسبة لكائن ذي عشرة أوجه مضلعة، قد نرى ما يلي:
وجه العنصر 10 قائمة الخصائص uchar int vertex_index
تختلف تطبيقات PLY اختلافًا كبيرًا في أسماء الخصائص. vertex_indicesيُستخدم `<PLY>` بشكل أكثر شيوعًا من `<PLY>` vertex_index، على سبيل المثال في Blender و VTK . تُدرج المواصفات الموسعة "قائمة أساسية (مطلوبة)"، و"قائمة ثانية (شائعة الاستخدام)"، و"قائمة ثالثة (امتدادات مقترحة)" لأسماء الخصائص. [ 2 ]
تشير هذه الكلمة listإلى أن البيانات عبارة عن قائمة من القيم، أولها عدد العناصر في القائمة (مُمثلة بنوع 'uchar' في هذه الحالة). في هذا المثال، يُمثل كل عنصر في القائمة بنوع 'int'. يجب أن يكون هناك دائمًا السطر التالي في نهاية رأس الجدول:
نهاية_الرأس
تنسيق ASCII أو ثنائي
في النسخة النصية (ASCII) من التنسيق، يُوصف كل رأس ووجه على حدة في سطر منفصل، مع فصل الأرقام بمسافات بيضاء. أما في النسخة الثنائية، فتُجمع البيانات معًا بشكل متقارب وفقًا للقيم endiannessالمحددة في رأس الملف، مع تحديد أنواع البيانات في propertyالسجلات. بالنسبة للتمثيل الشائع property list...للمضلعات، يُمثل الرقم الأول عدد رؤوس المضلع، بينما تُمثل الأرقام المتبقية مؤشرات تلك الرؤوس في قائمة الرؤوس السابقة.
تاريخ
طُوِّر تنسيق PLY في منتصف التسعينيات على يد جريج تورك وآخرين في مختبر الرسومات بجامعة ستانفورد تحت إشراف مارك ليفوي. استُلهم تصميمه من تنسيق Wavefront .obj . إلا أن تنسيق Obj كان يفتقر إلى إمكانية التوسع لإضافة خصائص وتجميعات عشوائية، لذا تم ابتكار الكلمتين propertyالمفتاحيتين elementو لتعميم مفاهيم الرؤوس والوجوه والبيانات المرتبطة بها وغيرها من المجموعات.
ملف مثال
فيما يلي مثال كامل لملف PLY يصف شبكة مكعبة تم تصديرها من برنامج Blender الإصدار 4.0.2:
طبقة تنسيق ASCII 1.0 تم إنشاء هذا التعليق باستخدام برنامج Blender الإصدار 4.0.2 رأس العنصر 14 خاصية عائمة x خاصية عائمة y خاصية عائمة z خاصية عددية nx عقارات عائمة نيويورك عقارات عائمة نيوزيلندا خاصية عائمة s خاصية عائمة t وجه العنصر 6 قائمة الخصائص uchar uint vertex_indices نهاية_الرأس 1 1 1 0.5773503 0.5773503 0.5773503 0.625 0.5 -1 1 1 -0.5773503 0.5773503 0.5773503 0.875 0.5 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.875 0.75 1 -1 1 0.5773503 -0.5773503 0.5773503 0.625 0.75 1 -1 -1 0.5773503 -0.5773503 -0.5773503 0.375 0.75 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.625 1 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.375 1 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.375 0 -1 -1 1 -0.5773503 -0.5773503 0.5773503 0.625 0 -1 1 1 -0.5773503 0.5773503 0.5773503 0.625 0.25 -1 1 -1 -0.5773503 0.5773503 -0.5773503 0.375 0.25 -1 1 -1 -0.5773503 0.5773503 -0.5773503 0.125 0.5 1 1 -1 0.5773503 0.5773503 -0.5773503 0.375 0.5 -1 -1 -1 -0.5773503 -0.5773503 -0.5773503 0.125 0.75 4 0 1 2 3 4 4 3 5 6 4 7 8 9 10 4 11 12 4 13 4 12 0 3 4 4 10 9 0 12
يبدأ الملف برأسية تُعرّف الملف بصيغة ASCII. يحتوي الملف على 14 رأسًا (6 أوجه × 4 رؤوس - تم حفظ 10 رؤوس نتيجة الدمج) و6 أوجه إجمالًا. بعد الرأسية، تُدرج بيانات الرؤوس والأوجه. تتضمن قائمة الرؤوس الموضع (x, y, z)، والمتجهات العمودية (nx, ny, nz)، وإحداثيات النسيج (s, t) لكل رأس من الرؤوس الـ 14. أما قائمة الأوجه، فتتضمن عدد الرؤوس (4) ومؤشرات الرؤوس لكل وجه من الأوجه الرباعية الستة.
انظر أيضاً
- STL (تنسيق ملف) ، وهو تنسيق ملف شائع آخر للطباعة ثلاثية الأبعاد
- تنسيق ملف التصنيع الإضافي
- ملف Wavefront .obj ، وهو تنسيق ملف تعريف هندسة ثلاثية الأبعاد بامتداد .obj
- glTF - تنسيق ملف من مجموعة Khronos للمشاهد والنماذج ثلاثية الأبعاد.
- وصف المشهد العالمي (USD).
برمجيات مفتوحة المصدر
- يركز برنامج CloudCompare على السحب النقطية مع بعض الوظائف الإضافية للشبكات.
- إطار عمل برمجيات GigaMesh : الحسابات العددية على الشبكات في PLY (أو OBJ).
- MeshLab : تطبيق عام لعرض ومعالجة وتحويل الشبكات ثلاثية الأبعاد من وإلى تنسيق ملف PLY.
مراجع
- ↑ جريج تورك. "تنسيق ملف المضلع PLY" . مؤرشف من الأصل بتاريخ 2016-12-04.
- ↑ جريج تورك. "تنسيق ملف المضلع PLY (الموسع)" (PDF) .
روابط خارجية
- وصف تنسيق مكتبة الكونغرس
- PLY - تنسيق ملف متعدد الأضلاع
- بعض الأدوات للعمل مع ملفات PLY (شفرة مصدر C)
- rply - مكتبة برمجية بلغة Ansi C لقراءة وكتابة ملفات PLY (مرخصة بموجب ترخيص MIT)
- libply - مكتبة برمجية بلغة C++ لقراءة وكتابة ملفات PLY (رخصة جنو)
- plyodine - مكتبة C++23 لقراءة وكتابة ملفات PLY (ترخيص BSD)
- مكتبة برمجية أخرى مكتوبة بلغة C++ لقراءة وكتابة ملفات PLY (رخصة GPL 3.0)
- مستودع نماذج ثلاثية الأبعاد مخزنة بصيغة PLY
- تنسيقات ملفات CAD
- تنسيقات ملفات الرسومات ثلاثية الأبعاد
- مقدمات متعلقة بالحاسوب في التسعينيات
- ملفات تنسيق الملفات
- ملفات تخزين الكمبيوتر
