Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions محرك ثلاثي الأبعاد - ويكيبيديا، الموسوعة الحرّة

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

من ويكيبيديا، الموسوعة الحرة

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

فهرست

[تحرير] سبب التسمية

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

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

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

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

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

[تحرير] أدوات خط الإنتاج

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

[تحرير] مكتبات زمن التشغيل

  • تقديم هيكلية framework يمكن للمستفيدين من المحرك بناء برنامجهم عليها. كمثال، نافذة جاهزة للتخريج مع حلقة رسم مجهزة يمكن تعبئتها بالأجسام المطلوب رسمها وترك بقية مهمات التخريج على المحرك.
  • تقديم خدمات إدارة الذاكرة. عدة محركات تقدم نظام لتنظيف الموارد الغير مستخدمة garbage collection يريح المستخدم من أعباء متابعة الموارد التي يقوم باستخدامها في المشهد (كالإكساءات مثلاً).
  • تقديم تسهيلات لكشف الأخطاء ومتابعتها. كالتأكيدات asserts والتقارير ومقاييس الأداء وتكاليف الذاكرة والمعالجة.
  • تقديم مكتبة لأداء الحسابات الرياضية كالمصفوفات والمتجهات وتتبع الأشعة ray tracing. غالباً ما تكون هذه المكتبة محسنة للعمل على أحجام كبيرة من البيانات.
  • تقديم عدة تطوير software development kit يمكن للمستخدمين التعامل معها لاستحداث عمليات إضافية مخصصة تخدم متطلبات معينة. كمثال، عدة مينتال راي الخاصة بتأليف مظللات جديدة.
  • تقديم حسابات لتقسيم المشهد تمهيداً لرسم الأجزاء الظاهرة منه فقط عن طريق استبعاد cull الأجزاء الغير داخلة ضمن كادر المشهد. كمثال، التقسيم الفراغي الثنائي binary space partitioning، ونظام استبعاد يعتمد على الكرات المحيطة للأجسام bounding spheres.
  • تقديم وحدات لأداء مهام التحريك animation المختلفة. كتحريك الشخصيات باستخدام حركات مسبقة التسجيل، أو بنظام حسابات فورية كالحركيات العكسية inverse kinematics والحسابات الفيزيائية. بعض المحركات الحديثة تتضمن إمكانيات دمج عدة حركات من مصادر مختلفة بهدف إنشاء حركات جديدة. يمكن تعميم خدمات التحريك على أية قيمة قابلة للتغير مع الزمن وفقاً لتابع ما. تستعمل طرق الاستقراء الرياضي بكثرة لإيجاد القيم الوسيطة في أية لحظة من زمن المشهد.
  • تنظيم المشهد ضمن بنية معينة تمكن المستخدمين من الوصول لمحتوياته واستنتاج الروابط المختلفة بين عناصر المشهد. عادة يطلق على مثل هذه البنية مخطط المشهد scene graph، وتشمل عناصر المشهد ممثلة بشجرية تظهر علاقات الربط والأب/الابن بين العناصر.
  • تقديم وحدات يمكن التعامل معها من أجل بناء المجسمات ورسمها بالمواصفات المطلوبة. يمكن لهذا البند أن يشمل تلبيس الشخصيات وتحوير المجسمات كعمليات ممكن تنفيذها على المجسمات.
  • مهام أخرى خاصة مطلوبة من قبل مكتبات أخرى يعتمد عليها المحرك. كمثال، فلترة النداءات المتكررة لمكتبة دايركت 3D المستخدمة في الرسم.

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

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

  • من الشاشة إلى العالم screen-to-world: الانطلاق من البكسلات على الشاشة وتتبع الأشعة عودة إلى المشهد التخيلي. هذه الطريقة تعرف بتتبع الأشعة. كل شعاع ينطلق من أحد بكسلات الشاشة ليرتطم بجسم ما في العالم. من نقطة الارتطام هذه يتم بعث أشعة إضافية في العالم تتوجه نحو مصادر الضوء الرئيسية في المشهد. هذه الأشعة قد ترتطم بأجسام أخرى وتنعكس عنها لتتشتت باتجاهات أخرى يتم تتبعها بشكل مستمر حتى حد معين (كعدد ثابت من الارتطامات أو نفاذ طاقة الضوء مثلاً).
  • من العالم إلى الشاشة world-to-screen: الانطلاق من المشهد التخيلي وإسقاطه على سطح الشاشة. وهي الطريقة المعاكسة للطريقة السابقة. حيث يتم إيجاد البكسلات التي سيغطيها كل جسم بشكل مستقل، ويتم حساب ألوان هذه البكسلات عن طريق حسابات مبسطة تتجاهل في كثير من الأحيان الموجودات المحيطة.

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

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

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

  • كود مفتوح: بحيث يمكن للمستفيد أن يعدل الكود كما يشاء، أو أن يستخدم المحرك المبني بالكود الأساسي.
  • مكتبة برمجية مترجمة: أو تسمى بالصندوق الأسود. حيث تقدم هذه المكتبة وظائف برمجية محددة يتعامل معها المستخدم، بينما الحسابات الحقيقية تكون مخبأة وتتم دون أن تحتاج المستخدم أن يقلق نفسه بتفاصيلها.
  • أدوات تنفيذية بسيطة مع واجهة برمجية: يكون المحرك في هذه الحالة ذا خط تنفيذ واضح ومحدد يتم اتباعه دائماً ولا يمكن تعديله جوهرياً. لإعطاء بعض المرونة، تقوم هذه الأدوات بتقديم نقاط وصل plug-in connections يمكن للمستخدم أن يستفيد منها ليدخل حساباته الخاصة ضمن الخط العام عن طريق كتابة بريمج صغير باستخدام عدة تطوير برمجية software development kit يقدمها المحرك.
  • أدوات بواجهة استخدام فقط: تكون واجهة الاستخدام هي الوسيلة لتحديد مواصفات وطرق حساب الأجسام التي سيتم رسمها بالمحرك. ثم يقوم المحرك برسم هذه الأجسام طبقاً للمواصفات وبدون إدخال المستخدم في تفاصيل العمل.

[تحرير] أمثلة

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

[تحرير] مينتال راي

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

[تحرير] دايركت سكيليتون

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

[تحرير] ملاحظات

  1. ^ تم تعميم مصطلح 'محرك ثلاثي الأبعاد' في هذه المقالة على أي وحدة برمجية تقوم بقسم ما من مهام الرسم ثلاثي الأبعاد. حتى الآن لا يوجد اتفاق نهائي على تعريف المحرك ثلاثي الأبعاد.
  2. ^ موقع يحتوي على مجموعة بريمجات لتهيئة المعلومات للمحرك ثلاثي الأبعاد: http://netview.inframez.com.


هذه بذرة مقالة عن الحاسوب أو العاملين في هذا المجال تحتاج للنمو والتحسين؛ فساهم في إثرائها بالمشاركة في تحريرها.
فروع المعلوماتية

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

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


قالب:هندسة برمجيات

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu