مكتبة Assimp : دورة OpenGL لغة c++


مكتبة Assimp هي احدى النماذج التي يتم الاعتماد عليها كثيرًا في بناء النماذج. بالتالي نلاحظ أن جميع الدروس السابقة كانت تتناول رسم النماذج بعيدًا عن مكتبة Assimp.[1] لكن ماذا لو أننا نريد استدعاء نماذج أخرى أكثر تعقيدًا في بيئة الرسم.[1]لقد وفرت لنا برامج الرسم مجموعة كبيرة من الأدوات التي من خلالها سوف يتم استدعاء أي نموذج إلى بيئة الرسم عبر مكتبة Assimp.[1] بالتالي تتضمن هذه البرامج اصطلاح 3D modeling tools. على سبيل المثال يعتبر برنامج Blender و 3D Max و Maya واحدا منها. تمكنك هذه البرامج من رسم واستدعاء أكثر مكونات الرسم تعقيدا في فضاء 3D مع الحفاظ على معادلات الإضاءة والتمثيل كما هي.[1]



مكتبة Assimp



تقوم مكتبة Assimp بدور عمليات الإستدعاء التي تم رسمها مسبقًا في برامج الرسم المعقدة مثل Blender.[1] بالتالي يمكنك استدعاء كل نموذج عن طريق توليد الإحداثيات والإتصال بها من جديد في المشروع.[1] تحتوي مكتبة OpenGL على عوامل مشتركة مع هذه البرامج لأنها مكتبة قياسية. ما يعني أنها مدمجة في غالبية برامج الرسم. وقد وفرت لنا مكتبة Assimp استدعاء جميع عناصر Vertex و texture  إن وجدت.[1]

بالتالي توفر لك أحدث البرامج امكانية التصدير بصيغة obj حيث أنها تحتوي على بيانات النموذج الأساسية مثل الألوان والإحداثيات وقابلية استقبال إضاءة diffuse و specular.[1] بينما توفر لك تقنية Collada من شركة sony صيغة ملفات قد تشمل بيانات أكثر تعقيدًا عند عمليات الاستدعاء. على سبيل المثال , تعد الحركة ومحركات Animation واحدة منها.[1]

 


مكتبة استدعاء النماذج



يمكن اعتبار مكتبة Assimp أداة قوية في استدعاء جميع صيغ ملفات الرسم. تمتثل إلى اصطلاح Open Asset Import Library.[1] بالتالي فهي قادرة على استدعاء عشرات بل مئات نماذج الرسم ذات الصيغ المختلفة. تختصر هذه المكتبة الكثير من أكواد الرسم static والتي تمثل الإحداثيات وخصائص الإضاءة. ما يعني أنك أمام كبسولة برمجية سوف تأخذ عن كاهلك الكثير من المهام.[1]

يحتوي النموذج على عقدة node وتتكون كل عقدة من بيانات الرسم والإحداثيات بالإضافة إلى مجموعة من children التي تتولى بعض المهام.[1]

مكتبة Assimp
صورة من كتاب offline learn OpenGL created by Joey de Vries يظهر فيها مراحل استدعاء مكتبة Assimp.

تمثل الصورة السابقة إحدى مراحل الرسم وأول مرحلة هي Scene التي تحتوي على materials و meshes الخاصة بالكائن بالإضافة إلى احتوائها على عنوان العقدة.[1] بينما تتكون مرحلة Root node من عقد children للنموذج. يتم من خلالها ضبط نقاط الإحداثيات للمشهد.[1]

مرحلة Mesh تتكون من جميع بيانات النموذج بما فيها بيانات الإستدعاء و vertex و normal vectors بالإضافة إلى تنسيقات texture. على سبيل المثال فإن أول ما يمكن العمل فيه هو تحميل النموذج في مرحلة scene object. بالتالي استرجاع كائنات  Mesh المطابقة له.[1]

 


تحميل مكتبة Assimp



يمكنك الحصول على حزمة Assimp من خلال رابط التحميل الموجود أسفل المراجع. وفي حال واجهتك مسائل خلال تضمين المكتبة ننصحك بالرجوع للدروس الأولى في هذه الدورة لمشاهدة عمليات الربط الصحيحة.[1]

تتطلب مكتبة Assimp أيضا الإستعانة بملف assimp.dll.[1]

 

 

المراجع
  1. [1]^ كتاب ـــــــ offline learn OpenGL created by Joey de Vries.
  2. [2]^ Collada format.
  3. [3] ^ رابط مصادر Assimp.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *