محرك ثلاثي الأبعاد

وحدة برمجية ذات بنية واضحة تهدف إلى تقديم وظائف مخصصة لأداء حسابات فراغية بهدف إظهار رسوميات ثلاثية الأبعاد باستخدام الحاسوب.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

سبب التسمية

محرك ثلاثي الأبعاد هي الترجمة العربية للمصطلح الإنجليزي 3D Engine. لذلك، فإن الكلمة لا علاقة لها بالتحريك Animation بالرغم من أن وظيفة التحريك هي إحدى الوظائف التي يقوم بها المحرك ثلاثي الأبعاد عادةً (انظر في الأسفل). يمكن ربط الاسم مع المحرك الحقيقي (كمحرك السيارة) حيث أنهما يتشابهان من ناحية وجود هيكلية معقدة مخبأة يمكن الاستفادة منها عن طريق واجهة استخدام مبسطة (المقود والدواسات في السيارة مثلاً والإجراءات المتاحة في محرك الـ 3D بالمقابل).


الحاجة لمحرك ثلاثي الأبعاد

تتألف عملية إظهار الرسوميات في الحاسوب من سلسلة طويلة من العمليات المتلاحقة مُشكـِّلة ما يدعى بـ"خط إنتاج" Pipeline. أغلب البرامج التي تقوم بإظهار ثلاثي الأبعاد تحتاج إلى أن تحتوي على التعليمات التي تقوم بتجهيز خط الإنتاج هذا. هذه العمليات لا تختلف في قسم كبير منها بين برنامج وآخر، مما يعني أن كُتـَّـاب هذه البرامج يمنكهم إعادة استخدام المنطق نفسه فيما بينهم وتوفير الوقت. يقوم محرك الـ 3D بتجميع هذه العمليات الشائعة وتنظيمها ضمن بنية موحدة يمكن إعادة استخدامها بسهولة. إضافة إلى ذلك، يمكن لمحرك الـ 3D أن بقدم واجهة تعامل interface مجردة من التفاصيل الخاصة بالنظام التحتي low-level system. هذا المفهوم ازدادت أهميته في الآونة الأخيرة بسبب الحاجة لاستهداف عدة منصات مختلفة platforms (مثلاً نظام تشغيل ويندوز ونظام تشغيل لينكس).

وظائف المحرك ثلاثي الأبعاد

تختلف شمولية وظائف المحرك ثلاثي الأبعاد بحسب أهدافه وضخامته. قد تتركز الوظائف في طبقة بسيطة تيسر فقط عملية تسليم المعلومات (المضلعات الفراغية مثلاً) لجهاز الرسم rendering hardware، وقد تتسع لتغطي كل شيء بدءاً من نقل المعلومات (مضلعات وإكساءات وحركات ...الخ) من البيئة المستخدمة لخلق وتحرير هذه المعلومات (برنامج 3D عادةً) وحتى لحظة إظهار الألوان على جهاز الخرج. فيما يلي قائمة تحاول أن تشمل كل العمليات التي يمكن للمحرك ثلاثي الأبعاد القيام بها ودعمها، مذكورة بترتيب تطبيقها:

أدوات خط الإنتاج

  • تقديم أدوات تحرير تستخدم لتجهيز معلومات خاصة بالمحرك لا يمكن عادة تجهيزها بأدوات أخرى. كمثال، بعض المحركات تقدم أداة خاصة لتجهيز الشيدرز أو المواد materials المستخدمة لرسم الأجسام، ثم حفظ هذه المواد في ملف يمكن للمحرك قراءته واستخراج تفاصيل المواد المطلوبة منه.
  • تقديم بريمجات scripts تساعد على تهيئة المعلومات في بيئة التحرير إلى شكل يلائم طبيعة حسابات المحرك. مثلاً، بريمج يقوم بتحويل الهيكل العظمي rig لشخصية من سلاسل عظام bone chains إلى عقد تحويل بسيطة transformation nodes، حيث أن أغلب المحركات تنفذ حسابات الشجرية على مجموعة من مصفوفات التحويل transformation matrices يمكن التعبير عنها بشكل بصري عن طريق عقد التحويل.
  • تقديم إضافة برمجية plug-in إلى بيئة التحرير تقوم بتحويل المشهد المطلوب (أو جزء منه) إلى صيغة يستطيع المحرك قراءتها والتعامل معها بسرعة وفعالية. كمثال، إضافة وحدة تصدير ملفات MD3 الخاصة بشخصيات كويك 3 Quake3 من شخصيات مبنية في برنامج ثري دي ستوديو ماكس.
  • تقديم أدوات خارجية تقوم بمعالجة البيانات الناتجة من بيئة التحرير لتنظيفها واختصار الغير مطلوب منها، تمهيداً لتجميعها بشكل مختصر يسهل قراءتها من قبل المحرك أو يحسن أداء حساباتها. كمثال، أداة خارجية command-line tool تقوم بالكشف عن المثلثات ذات المساحة الصغيرة جداً وحذفها من قائمة المثلثات التي تشكل الجسم.

مكتبات زمن التشغيل

  • تقديم هيكلية framework يمكن للمستفيدين من المحرك بناء برنامجهم عليها. كمثال، ... (classes)


الكلمات الدالة: