تبادل محركات الألعاب المفتوحة
يُعدّ OpenGEX ( مُبادلة مُحركات الألعاب المفتوحة ) تنسيقًا يُسهّل نقل بيانات المشاهد المُعقدة بين تطبيقات الرسومات ثلاثية الأبعاد ، بما في ذلك مُحركات الألعاب وتطبيقات النمذجة ثلاثية الأبعاد، بغض النظر عن التطبيق المُستخدم. ويستخدم OpenGEX لغة وصف البيانات المفتوحة (DATA Language) لتخزين البيانات، وهي طريقة لتخزين البيانات بشكلٍ عشوائي مع الحفاظ على سهولة قراءتها. وقد تم تسجيل تنسيق ملف OpenGEX لدى هيئة الأرقام المُخصصة للإنترنت (IANA) كنوع وسائط. [ 1 ]model/vnd.opengex
يتم تعريف تنسيق OpenGEX بواسطة مواصفات Open Game Engine Exchange [ 2 ] المتوفرة على الموقع الرسمي opengex.org .
تتوفر إضافات التصدير التي تكتب بتنسيق OpenGEX لبرنامجي Autodesk Maya و 3D Studio Max ، مع وجود إضافة غير رسمية متاحة لبرنامج Blender .
شكل
يتكون ملف OpenGEX، في أبسط مستوياته، من تسلسل هرمي للعُقد، ومجموعة من الكائنات، ومجموعة من المواد، ومعلومات إضافية حول الوحدات العالمية واتجاه المحاور. تحتوي هياكل العُقد والكائنات والمواد المختلفة على جميع التفاصيل، مثل البيانات الهندسية ومسارات الرسوم المتحركة، ضمن تسلسل هرمي لأنواع إضافية من الهياكل التي يُحددها OpenGEX. يمكن أن تظهر أنواع البيانات التالية في ملف OpenGEX:
- تنظيم المشهد الهرمي (أشجار العقد).
- تحويلات العقد والكائنات (مصفوفات 4×4، والتحويلات، والدورانات، والمقاييس).
- كائنات هندسية، وكائنات ضوئية، وكائنات كاميرا.
- شبكات تتكون من مصفوفات سمات الرؤوس ومصفوفات الفهرسة لمستويات متعددة من التفاصيل.
- الشبكات المغلفة (الهيكل العظمي، تحويلات ربط الوضع، بيانات ترجيح تأثير العظام).
- أهداف تحويل متعددة للشبكات وأوزان تحويل متحركة.
- الرسوم المتحركة باستخدام الإطارات الرئيسية مع منحنيات الرسوم المتحركة الخطية، ومنحنيات بيزير، ومنحنيات TCB.
- ألوان وقوام المواد (الانتشار، الانعكاس، العادي، الانبعاث، التعتيم، الشفافية).
مثال
يُعرض أدناه مثال بسيط لملف OpenGEX كامل يصف مكعبًا أخضر. يبدأ الملف بمجموعة من Metricالبنى التي تُحدد وحدات القياس والاتجاه العام للأعلى. يلي ذلك GeometryNodeبنية واحدة تُحدد اسم المكعب وتحويله. تُخزن البيانات الهندسية للمكعب في GeometryObjectالبنية التي يُشير إليها عقدة الهندسة. تحتوي بنية كائن الهندسة على شبكة واحدة من المثلثات الأولية ، تتضمن مواقع كل رأس، والمتجهات العمودية، وإحداثيات النسيج . أخيرًا، Materialتحتوي البنية في نهاية الملف على لون الانعكاس الأخضر المنتشر.
المقياس (المفتاح = "المسافة") {عدد عشري {0.01}} Metric (key = "up") {string {"z"}} GeometryNode $node1 { الاسم {سلسلة {"مكعب"}} ObjectRef {ref {$geometry1}} MaterialRef {ref {$material1}} تحويل { float[12] { {1.0, 0.0, 0.0, 0.0، 1.0، 0.0، 0.0، 0.0، 1.0، 50.0، 50.0، 0.0} } } } GeometryObject $geometry1 // مكعب { شبكة (بدائي = "مثلثات") { VertexArray (attrib = "position") { float[3] // 24 { {-50.0, -50.0, 0.0}, {-50.0, 50.0, 0.0}, {50.0, 50.0, 0.0}, {50.0, -50.0, 0.0}, {-50.0, -50.0, 100.0}, {50.0, -50.0, 100.0}, {50.0, 50.0, 100.0}, {-50.0, 50.0, 100.0}, {-50.0, -50.0, 0.0}, {50.0, -50.0, 0.0}, {50.0, -50.0, 100.0}, {-50.0, -50.0, 100.0}, {50.0, -50.0, 0.0}, {50.0, 50.0, 0.0}, {50.0, 50.0, 100.0}, {50.0, -50.0, 100.0}, {50.0, 50.0, 0.0}, {-50.0, 50.0, 0.0}, {-50.0, 50.0, 100.0}, {50.0, 50.0, 100.0}, {-50.0, 50.0, 0.0}, {-50.0, -50.0, 0.0}, {-50.0, -50.0, 100.0}, {-50.0, 50.0, 100.0} } } VertexArray (attrib = "normal") { float[3] // 24 { {0.0, 0.0, -1.0}, {0.0, 0.0, -1.0}, {0.0, 0.0, -1.0}, {0.0, 0.0, -1.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}, {0.0, -1.0, 0.0}, {0.0, -1.0, 0.0}, {0.0, -1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0} } } VertexArray (attrib = "texcoord") { float[2] // 24 { {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0} } } مصفوفة الفهرسة { uint32[3] // 12 { {0, 1, 2}, {2, 3, 0}, {4, 5, 6}, {6, 7, 4}, {8, 9, 10}, {10، 11، 8}، {12، 13، 14}، {14، 15، 12}، {16، 17، 18}، {18، 19، 16}، {20، 21، 22}، {22، 23، 20} } } } } المادة $material1 { الاسم {سلسلة {"أخضر"}} اللون (الخاصية = "الانتشار") {float[3] {{0, 1, 0}}} } تاريخ
تم تمويل تطوير صيغة OpenGEX من خلال حملة تمويل جماعي [ 3 ] انتهت في 8 مايو 2013. بالتزامن مع تصميم الصيغة، تم إنشاء لغة وصف البيانات المفتوحة (OPD) كلغة أساسية عامة بُنيت عليها OpenGEX. وقد تم تطبيق دعم صيغة OpenGEX في البداية في محرك C4 الإصدار 3.5.
انظر أيضاً
- glTF - تنسيق ملف من مجموعة Khronos للمشاهد والنماذج ثلاثية الأبعاد.
مراجع
- ↑ "أنواع الوسائط، النموذج" IANA .
- ↑ لينجيل، إريك (2021). مواصفات تبادل محركات الألعاب المفتوحة، الإصدار 3.0 . شركة تيراثون للبرمجيات. رقم ISBN 978-0-9858117-8-5.
- ↑ "تنسيق تبادل نماذج ثلاثية الأبعاد مفتوحة المصدر وبرامج تصدير للبرامج الشائعة" .
روابط خارجية
- تنسيقات ملفات الرسومات ثلاثية الأبعاد
- برنامج رسومات ثلاثية الأبعاد
- معايير الرسومات
- التنسيقات المفتوحة
