ما هو ملف GLTF؟
glTF (GL Transmission Format) هو تنسيق ملف ثلاثي الأبعاد يخزن معلومات النموذج ثلاثي الأبعاد بتنسيق JSON. يقلل استخدام JSON من حجم الأصول ثلاثية الأبعاد ومعالجة وقت التشغيل اللازمة لتفريغ واستخدام تلك الأصول. تم اعتماده من أجل النقل والتحميل الفعال للمشاهد والنماذج ثلاثية الأبعاد بواسطة التطبيقات. تم تطوير glTF بواسطة مجموعة عمل التنسيقات ثلاثية الأبعاد لمجموعة Khronos Group ، كما تم وصفه أيضًا بـ JPEG من قبل المبدعين.
يحدد تنسيق ملف GLTF تنسيقًا مشتركًا وقابل للتوسيع للنشر لأدوات وخدمات المحتوى ثلاثي الأبعاد الذي يبسط سير عمل التأليف ويتيح الاستخدام القابل للتشغيل البيني للمحتوى في جميع أنحاء الصناعة. كان الهدف من إنشاء تنسيق ملف glTF هو تحديد تنسيق نشر مشترك وقابل للتوسيع لأدوات وخدمات المحتوى ثلاثي الأبعاد التي يجب أن تبسط سير عمل التأليف وتمكين الاستخدام المتبادل للمحتوى عبر الصناعة. يقلل من معالجة وقت التشغيل من خلال التطبيقات التي تستخدم WebGL وواجهات برمجة التطبيقات الأخرى.
تاريخ موجز لملف GLTF
تم الإعلان عن المواصفات الأولى لتنسيق ملف glTF 1.0 في أكتوبر 2015. وقد جاء ذلك كسلسلة من الجهود التي بدأت في مارس 2012 بواسطة Khronos. كان الهدف من هذه الجهود هو تقييم الفرص حول جر WebGL. ونتيجة لذلك ، تم تقديم العرض التوضيحي الأول لتنسيق glTF ، استنادًا إلى تنسيق JSON ، في اجتماع WebGl في عام 2012. وقد تم اعتماد التنسيق من قبل العديد من الشركات من وقت لآخر بما في ذلك Cesium و 3D Tiles و Oculus و Microsoft و Archilogic وغيرها.
تم نشر glTF 2.0 في 5 يونيو 2017 في مؤتمر Web3D 2017. هناك قائمة طويلة من الشركات التي اعتمدت تنسيق ملف glTF بعد ذلك.
تنسيق ملف GLTF
تتوفر مواصفات تنسيق الملف لـ glTF 2.0 عبر الإنترنت كمرجع ويجب الرجوع إليها في أي تنفيذ متعلق بالقراءة / الكتابة لدعم تنسيق ملف glTF.
يعرّف glTF الأصول كملفات JSON مع دعم البيانات الخارجية. يمثل نماذج ثلاثية الأبعاد بمساعدة:
- وصف كامل للمشهد مضمن في ملف .glTF بتنسيق JSON يتضمن معلومات حول التسلسل الهرمي للعقدة والمواد والكاميرات بالإضافة إلى معلومات واصف الشبكات والرسوم المتحركة والتركيبات الأخرى
- الملفات الثنائية (.bin) التي تحتوي على بيانات الهندسة والرسوم المتحركة ، وغيرها من البيانات المستندة إلى المخزن المؤقت
- ملفات الصور (.jpg ، .png) للزخارف
يتم تخزين أي أصول خارجية مثل الصور في ملفات خارجية تتم الإشارة إليها عبر URI. يتم تخزين URIs جنبًا إلى جنب مع حاوية GLB أو يتم تضمينها مباشرةً في JSON باستخدام عناوين URL للبيانات. يجب أن يحدد كل ملف glTF صالح نسخته.
تم تصميم glTF لتحقيق حجم ملف صغير وتحميل سريع وتمثيل كامل للمشهد ثلاثي الأبعاد وقابلية التوسع. أهداف التصميم الفريدة هذه هي الأسباب الرئيسية لشعبية تنسيق ملف glTF في المجال ثلاثي الأبعاد. فيما يلي أنواع Mime التي يدعمها تنسيق ملف glTF لأنواع الملفات المختلفة:
- تستخدم ملفات .gltf النموذج / gltf + json
- تستخدم ملفات .bin application / octet-stream
- تستخدم ملفات Texture الصورة الرسمية / * النوع بناءً على تنسيق الصورة المحدد. للتوافق مع متصفحات الويب الحديثة ، يتم دعم تنسيقات الصور التالية: image / jpeg ، image / png.
ترميز JSON
يفرض glTF القيود الإضافية التالية على تنسيق ملف JSON
لتبسيط التنفيذ من جانب العميل ، يوجد لدى glTF قيود إضافية على تنسيق JSON والتشفير.
- يجب أن يستخدم JSON ترميز UTF-8 بدون BOM.
- تستخدم جميع السلاسل المحددة في هذه المواصفات (أسماء الخصائص ، التعدادات) مجموعة أحرف ASCII فقط ويجب كتابتها كنص عادي ، على سبيل المثال ، “المخزن المؤقت” بدلاً من "" \ u0062 \ u0075 \ u0066 \ u0066 \ u0065 \ u0072 “`.
- يجب أن تكون الأسماء (المفاتيح) في كائنات JSON فريدة ، أي لا يُسمح بالمفاتيح المكررة.
عناوين URL
تتم الإشارة إلى المخازن المؤقتة وموارد الصور عبر محددات مواقع المعلومات (URIs). يجب أن يدعم العملاء نوعي URI التاليين.
** معرّفات URI للبيانات: ** مُعرِّفات URI للبيانات مُحدَّدة بواسطة RFC 2397 وتستخدمها glTF لتضمين الموارد في JSON.
** مسارات URI النسبية: ** أو مسار noscheme كما هو محدد بواسطة RFC 3986 ، القسم 4.2 - بدون مخطط أو سلطة أو معلمات. يجب أن تكون الأحرف المحجوزة مشفرة بالنسبة المئوية ، وفقًا لـ RFC 3986 ، القسم 2.2.