الرئيسيةبحث

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

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

فهرس

سبب التسمية

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

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

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

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

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

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

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

أنظمة المحركات الرئيسية

يوجد حالياً نظامين رئيسين في معالجة ورسم المشاهد الثلاثية الأبعاد [4]:

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

طرق التوزيع والاستخدام

يمكن طرح المحرك للاستخدام بعدة أشكال. القائمة التالية تلخص الخيارات المتاحة:

أمثلة

فيما يلي مثالين مختلفين يوضحان الفرق بين الوظائف التي يقوم بها محرك ثلاثي الأبعاد للإنتاج الفلمي وآخر موجه للرسم الفوري.

مينتال راي

يعتمد طريقة التوزيع والاستخدام الثالثة (أدوات تنفيذية بسيطة مع واجهة برمجية). الواجهة البرمجية لمينتال راي مرنة بشكل يتيح للمبرمجين تنفيذ طيف واسع من طلبات المعلومات عن العالم المحيط بالنقطة التي يتم رسمها. مع إمكانية مفتوحة لدفع معلومات إضافية في المشهد يمكن استقبالها لاحقاً أثناء الرسم والتصرف بناءً على فحواها. يتم توزيع مينتال راي أيضاً بحسب الطريقة الرابعة من طرق التوزيع أعلاه، وهذا ما نراه في برامج مثل سوفت إيماج إكس إس آي ومايا ومؤخراً ثري دي ستوديو ماكس.

جيم برايو

يعتمد طريقة التوزيع والاستخدام الثانية. يقدم أدوات لاختبار المظللات الفورية داخل برنامج ثري دي ستوديو ماكس ومايا، ومكتبات زمن تشغيل واسعة كالحسابات الرياضية وتحويل الموارد. يستهدف عدد من أنظمة التشغيل المختلفة.

ملاحظات ومصادر

  1. ^ تم تعميم مصطلح 'محرك ثلاثي الأبعاد' في هذه المقالة على أي وحدة برمجية تقوم بقسم ما من مهام الرسم ثلاثي الأبعاد. حتى الآن لا يوجد اتفاق نهائي على تعريف المحرك ثلاثي الأبعاد.
  2. ^ شرح مبسط لأجزاء خط تجهيز الرسوميات ثلاثية الأبعاد في الحاسوب.
  3. ^ موقع يحتوي على مجموعة بريمجات لتهيئة المعلومات للمحرك ثلاثي الأبعاد: http://netview.inframez.com.
  4. ^ Sergei Savchenko: 3D Graphics Programming: Games and Beyond, Sams Publishing, ISBN 0672319292

وصلات خارجية

- موقع ديف ماستر: قاعدة بيانات لبعض المحركات ثلاثية الأبعاد.

فروع المعلوماتية

الحقول الأساسية للمعلوماتية

تحرير
معلوماتية نظرية تحسيب | خوارزميات | نظرية المعلومات | نظرية الأتمتة | نظرية المخططات | نظرية التعقيد | تعمية | لغات شكلية | استمثال | بناء المترجمات البرمجية | نظرية أنظمة التشغيل | نظرية قواعد البيانات | نظرية التعمية | طريقة شكلية | تحسيب طبيعي
معلوماتية عملية أنظمة تشغيل | حوسبة | رسوميات الحاسب | قواعد بيانات | بنى بيانات | برمجة
معلوماتية تقنية تكنولوجيا المعلومات | شبكات الحاسب | عتاد الحاسب | أمن الحاسب | اختراق الحاسب
معلوماتية تطبيقية أنظمة معلومات | معلوماتية حيوية | معلوماتية جيولوجية | كيمياء حاسوبية | فيزياء حاسوبية | معلوماتية اقتصادية | وسائط متعددة
ذكاء اصطناعي تعلم آلي | معلوماتية عصبونية | طرق التصنيف | لغويات حاسوبية
برمجيات لغات البرمجة | برمجيات حرة | برمجيات تجارية
أنظمة التشغيل دوس | ويندوز | يونكس | لينكس | ماك أو إس | نتوير | تاريخ أنظمة تشغيل الحاسوب
عتاد الحاسب وحدة المعالجة المركزية | ذاكرة الحاسب | القرص الصلب | اللوحة الأم