الهندسة الرياضية

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

تستند أجزاء من هذه المقالة إلى عمل ساهمت به شركة Arm Limited ومحمية بموجب حقوق الطبع والنشر.

تعريف الهندسة

الهندسة، أو شبكة المضلّع، هي مجموعة من الرؤوس والحواف والوجوه التي تشكل شكل كائن ثلاثي الأبعاد. وقد تكون هذه العناصر عبارة عن سيارة أو سلاح أو بيئة أو شخصية أو أي نوع من الأصول المرئية في أي لعبة.

الشكل 1. رؤوس المكعّب وحوافه ومثلثاته.

تتكون الهندسة من الأجزاء التالية:

  • Vertices: اسم الجمع للرأس. تحدد هذه النقاط هيكل الكائن في مساحة ثلاثية الأبعاد.

  • الحافة: رأسان متصلان بخط مستقيم.

  • المثلث: عند ربط ثلاثة رؤوس مترابطة بثلاث حواف، يتم إنشاء مثلث. يشار إلى هذا أحيانًا باسم المضلع أو الوجه. في البرامج ثلاثية الأبعاد مثل 3ds Max أو أيارا أو Blender، تعمل عادةً مع الألعاب الرباعية. الرباعيات هي مضلّع بأربعة جوانب ويسهل تعديلها والعمل عليها. عند العرض، يتم عرض هذه المضلّعات على الشاشة على شكل مثلثات.

راجع الأقسام التالية لمعرفة المزيد من المعلومات عن الهندسة:

استخدام المثلثات والمضلّعات

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

تقليل عدد المثلّثات

في حال تضمين عدد كبير جدًا من المثلّثات، سيتأثر أداء اللعبة.

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

توضح الصورة التالية أنه يمكنك الحفاظ على الجودة باستخدام عدد أقل من المثلّثات:

يحتوي الكائن على اليسار على 584 مثلثًا، بينما يحتوي الكائن على اليمين على 704.

الشكل 2. مقارنة كائنين بأعداد مثلثات مختلفة تبدو متشابهة في الوضع المظلل. في الكائن على اليسار، تمت إزالة الحواف التي لا تساهم في الصورة الظلية.

على منصات الهواتف المحمولة، يبلغ الحد الأقصى الشائع لعدد الرؤوس للشبكة الفردية 65535. لضمان الحصول على أقصى قدر من التوافق، يجب عدم تجاوز هذا الرقم.

ويعود السبب في هذا الحدّ إلى أنّ جميع وحدات معالجة الرسومات تضمن فقط توافق فهارس 16 بت التي يمكن أن تمثّل نطاقًا يتراوح بين 0 و65,535 رأسًا. تدعم معظم، وليس كل وحدات معالجة الرسومات الحديثة، فهارس 32 بت، والتي تمثل النطاق من 0 إلى 4,294,967,295 قمة. وفي حال تجاوز النطاق المسموح به عند استخدام فهارس 16 بت، قد ينتج عن ذلك هندسة مفقودة أو معروضة بشكل غير صحيح.

اعرض اللعبة واختبرها دائمًا على أي أجهزة تنوي إصدارها عليها بدلاً من شاشة الكمبيوتر الشخصي. فبعض الطُرز ذات التفاصيل العالية قد لا يتم عرضها بشكل صحيح أو قد لا تكون مرئية على جهاز جوّال.

ننصحك باستخدام عدد أكبر من المثلّثات على الكائنات في المقدّمة وعدد أقل من المثلثات على كائنات الخلفية. ويُعدّ ذلك أكثر فائدة للألعاب التي تتضمّن منظورًا ثابتًا للكاميرا (POV). يوضح المثال التالي الاستخدام المناسب للتفاصيل حول كائنات مختلفة.

يتم إنشاء التفاصيل في العناصر التي تعمل في المقدّمة باستخدام المثلّثات. يتم دمج تفاصيل الخلفية في أسطح مستوية.

الشكل 3. يوضح هذا المثال درجة عالية من التفاصيل حول الكائنات في المقدِّمة مقارنةً بكائنات الخلفية.

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

يوضح المثال التالي نموذجين من عروض توضيحية مختلفة. يحتوي العرض التوضيحي للواقع الافتراضي للدائرة على شخصية روبوت واحدة فقط. نظرًا لوجود كائن واحد فقط، فإن نموذج الروبوت يحتوي على عدد أعلى من المثلثات. أما النموذج الآخر، فهو في عرض توضيحي لـ Armies. يتضمن هذا العرض التوضيحي مئات الجنود في كل إطار، لذلك يكون لكل جندي عدد أقل من المثلثات.

الشكل 4. مقارنة عدد المثلثات لحالات استخدام مختلفة. على اليسار، يحتوي روبوت CircuitVR على 11,000 مثلث. على اليمين، يحتوي جندي الجيوش على مثلث 360.

مثال على استخدام المثلث

الشكل التالي هو مثال على عدد المثلثات المستخدمة في العرض التوضيحي التكنولوجي للجيوش.

في العرض التوضيحي لـ Armies، وهو عرض توضيحي تقني للأجهزة المحمولة 64 بت تم إنشاؤه في Unity، تكون الكاميرا ثابتة مع العديد من الشخصيات المتحركة. في المجموع، يعرض كل إطار حوالي 210000 مثلث. يتيح هذا العدد المثلثي تشغيل الإصدار التجريبي بثبات بمعدل 30 إطارًا في الثانية تقريبًا (FPS).

الشكل 5. مثال لعرض العرض التوضيحي التقني لـ Armies يوضِّح عدد المثلثات المستخدمة.

الأشياء الأكبر في المشهد، وهي أبراج المدافع، هي ما يقرب من 3000 مثلث لأنها تشغل جزءًا كبيرًا من الشاشة.

تستخدم الأحرف ما يقرب من 360 مثلثًا لكل منها. نظرًا لوجود الكثير منها ولا يمكن رؤيتها إلا من مسافة بعيدة، فهي لا تستخدم العديد من المثلّثات. من وجهة نظر الكاميرا، تبدو مناسبة.

الشكل 6. منظر لجنود من مثلث منخفض في العرض التوضيحي التقني لجيوش الجيوش.

استخدام المثلّثات في المناطق المهمة

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

بدلاً من التفاصيل الدقيقة، ركز على الأشكال الكبيرة التي تساهم في الصورة الظلية. الصورة التالية هي مثال على التركيز على الصورة الظلية:

الشكل 7. والخط الأحمر حول الروبوت يمثل صورة ظلية له.

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

ويجب حذف جزء من الكائن بعناية، فقد يحد ذلك من إعادة استخدام الكائن. على سبيل المثال، إذا حذفت الجزء السفلي من شبكة الجدول، فسيلاحظ المستخدم القسم المحذوف إذا تم وضع الجدول مقلبًا.

ولا أنشِئ نموذجًا للتفاصيل الصغيرة من خلال شبكات مثلثة عالية الكثافة. استخدم الزخارف والخرائط العادية للحصول على تفاصيل دقيقة. يوضح المثال التالي الشبكة نفسها مع خريطة عادية وبدونها.

الشكل 8. مقارنة نموذج مع تطبيق خريطة عادية أو بدونها.

إزالة المثلّثات الصغيرة

المثلثات الصغيرة هي مثلثات صغيرة جدًا لا تساهم في العناصر المرئية النهائية للمشهد.

تحتوي جميع الأجسام الثلاثية الأبعاد ذات العدد المضلّع العالي على مشاكل مثلثات صغيرة عند نقلها بعيدًا عن الكاميرا. لا يوجد تعريف موحّد في المجال للمثلثات الدقيقة، ولكن المثلثات الدقيقة تُفهم عادةً على أنها مثلثات أصغر من 1 إلى 10 بكسل في الصورة النهائية. المثلثات الدقيقة سيئة لأن وحدة معالجة الرسومات تحتاج إلى القيام بكل عمليات المعالجة على كل هذه المثلثات على الرغم من أنها لا تساهم في الصورة النهائية.

تنتج المثلثات الدقيقة عن شيئين:

  • التفاصيل الصغيرة جدًا والتي تتكون من العديد من المثلّثات.
  • عناصر أبعد من الكاميرا مع العديد من المثلّثات.

الشكل 9. تأثير المسافة على المثلّثات الدقيقة

في الشكل 9، لا يحتوي الروبوت الأمامي على مثلثات صغيرة. يفعل روبوت الخلفية ذلك لأن حجم كل مثلث من 1 إلى 10 بكسل فقط.

الشكل 10. مقارنة بين المثلثات الدقيقة في نماذج تفصيلية للغاية. معظم المثلّثات في المنطقة المميزة صغيرة جدًا بحيث لا يمكن رؤيتها على شاشات الهاتف.

استخدِم مستوى تفصيل العناصر (LOD) لأشياء بعيدة عن الكاميرا. حيث يقلل هذا من تعقيد كائن ويجعله أكثر بساطة. والنتيجة هي كائن أقل كثافة مع المثلّثات.

لا تصمم التفاصيل باستخدام العديد من المثلّثات. استخدم الزخارف والخرائط العادية لهذا النوع من التفاصيل الدقيقة. يمكنك دمج الرؤوس وتفاصيل المثلثات التي تكون صغيرة جدًا ولا تساهم في الصورة النهائية.

من المهم تقليل عدد المثلثات الدقيقة لأنّها قد تؤثر في معدّل نقل البيانات للذاكرة. ينتج عن المزيد من المثلّثات إرسال مزيد من البيانات إلى وحدة معالجة الرسومات. على الجهاز المحمول، يمكن أن يؤثر هذا على عمر البطارية. يمكن أن يؤدي استهلاك الطاقة المتزايد إلى تقييد الحرارة، مما يحد من الأداء الأقصى لوحدة معالجة الرسومات.

تجنب المثلّثات الطويلة والرقيقة

وهي عبارة عن مثلثات، عند عرضها في الصورة النهائية، تكون أصغر من 10 بكسل في بُعد واحد وتمتد بعيدًا عبر الشاشة. المثلثات الطويلة والرقيقة تكون أكثر تكلفة بشكل عام في المعالجة من المثلثات الأخرى.

في الصورة التالية، تحتوي الحواف الموجودة على العمود على مثلث طويل ورفيع عند عرضه من مسافة بعيدة. لا مشكلة في هذه الحواف إذا تمت رؤيتها عن قرب.

الشكل 11. الميل في العمود مثلث طويل ورفيع.

نوصي بإزالة المثلّثات الطويلة الرقيقة من جميع الكائنات إن أمكن.

بالنسبة إلى الأجسام اللامعة، قد تتسبب المثلثات الطويلة والرفاهية في وميض من الضوء أثناء تحرك الكاميرا. يمكن أن تساعد دالة LOD في إزالة المثلّثات الطويلة والرقيقة عندما يكون أحد العناصر بعيدًا عن الكاميرا.

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

مستوى التفصيل

يشير مستوى التفاصيل (LOD) إلى تقنية تقلل من التعقيد لأن الكائنات أصبحت أكثر بعدًا عن العارض. يتضمن الشكل الأكثر شيوعًا لـ LOD إصدارات متعددة من الشبكة، مع عدد أقل من الرؤوس بشكل تدريجي. لا يقلل LOD عدد الرؤوس التي ستتم معالجتها فحسب، بل يتجنب أيضًا مشكلة المثلّثات الصغيرة. كما أنه يبدو أفضل بالنسبة للأشياء الموضوعة في مكان أبعد في المشهد.

ننصحك باستخدام LOD كلما أمكن ذلك. ركز على صورة ظلية الكائن. ومن الأفضل التركيز على المناطق المسطحة لاستهداف انخفاض الرأس. توضح الصورة التالية استخدام LOD، ويتم تطبيقه على نموذج الروبوت.

على اليسار، يوجد الروبوت الذي يضم أكبر عدد من التفاصيل مع أكبر عدد من المثلّثات. أما إلى اليمين، فيبعيد الروبوت أكثر قليلاً بالتفاصيل ويستخدم عدد أقل من المثلّثات.

الشكل 12. مقارنة بين عدد الرؤوس المستخدمة كتغييرات في دالة LOD.

في الشكل 12، من الصعب رؤية الفرق بين نفس الكائن الذي يتكون من 200 مثلث أو 2000 مثلث على مسافة. يضيف الكائن الذي يحتوي على المزيد من المثلثات تكلفة موارد عالية ولكنه لا يحسن المظهر عند رؤيته عن بُعد.

الشكل 13. مقارنة بين النماذج البعيدة ذات أعداد المثلّثات المختلفة.

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

لا ننصح باستخدام LOD في أي لعبة تكون فيها الكاميرا أو العناصر ثابتة. وتتمثل أكبر فائدة لـ LOD في الأجسام التي تتحرك نحو الكاميرا وبعيدًا عنها. لا تتحرك الكائنات الثابتة، لذا لا فائدة من LOD.

الشكل 14. مشهد بكاميرا ثابتة من العرض التوضيحي التقني لـ Armies، ولا يستخدم LOD.

نِسَب الكثافة في الزيادة (LOD)

استخدم نسبة متسقة عند تقليل عدد المثلثات لـ LOD. ننصحك بتقليل المثلثات بنسبة 50% لكل مستوى.

لا تستخدِم LOD على العناصر البسيطة. لا تستفيد الكائنات التي لديها عدد مثلث منخفض بالفعل من LOD. يوضح المثال التالي من العرض التوضيحي التقني لـ Armies كيف تبدو اللعبة باستخدام صورة ثابتة وأجسام مثلثية منخفضة.

الشكل 15. مقارنة بين النماذج مع انخفاض مقياس LOD.

تأكَّد من تغيّر مستويات LOD على المسافات المناسبة من الكاميرا. أسند تحليلك إلى كيفية استخدامها في اللعبة.

الشكل 16. مقارنة لمظهر نموذج LOD 3 عن قرب وبين المسافة المقصودة.

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

تجدر الإشارة إلى أنّ مقدار كبير من عناصر LOD يستنزف موارد وحدة المعالجة المركزية. تحتاج وحدة المعالجة المركزية إلى المزيد من طاقة المعالجة لتقرر أي نوع بيانات سيتم عرضه. تكلف LOD أيضًا الذاكرة، مما يزيد من حجم الملف واستخدام VRAM. كما يستغرق الأمر وقتًا إضافيًا لإنشاء نماذج LOD والتحقق منها.

هناك طريقتان لإنشاء شبكات LOD: يدويًا وتلقائيًا.

  • ويمكنك إنشاء شبكات LOD يدويًا باستخدام أي برنامج ثلاثي الأبعاد.
    • لإجراء ذلك، عليك إزالة حلقات الحافة أو تقليل عدد الرؤوس في العنصر الثلاثي الأبعاد.
    • يمنح ذلك الفنان أكبر قدر من التحكم في المنتج النهائي، ولكنه قد يستغرق وقتًا أطول.
  • ويمكن إنشاء شبكات LOD تلقائيًا.
    • يمكنك استخدام أداة تعديل داخل حزمة ثلاثية الأبعاد مثل ProOptimizer ضمن 3ds Max أو إنشاء شبكات LOD Meshes.
    • يمكنك استخدام برامج إنشاء LOD مثل Simplygon أو InstaLOD.
    • تتضمّن بعض محرّكات الألعاب ميزة إنشاء LOD تلقائيًا والتي تتيح لك إنشاء شبكات LOD واستخدامها.

أفضل الممارسات

هناك أساليب إضافية لتقليل الموارد المطلوبة للعبتك والتي تحافظ أيضًا على الدقة الرسومية.

مجموعات تجانس أو قيم عادية رأسية مخصَّصة

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

مثال على مجموعة تجانس. على اليسار، تم تطبيق مجموعة تجانس للروبوت.

الشكل 17. مقارنة نموذج مع مجموعة تجانس وبدونها.

في حالة تنفيذ مجموعة تجانس على تصميم ثلاثي الأبعاد، يجب تصديرها من البرنامج الثلاثي الأبعاد واستيرادها إلى المحرك.

طوبولوجيا الشبكة المتداخلة

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

الشكل 18. المخطط والإطار الشبكي والنسخة النهائية لصخرة من العرض التوضيحي التقني لجيوش الجيوش.

المبالغة في الشكل

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

على سبيل المثال، يمكنك إنشاء الشخصيات بأيدي أكبر حتى يسهل رؤيتها.

الشكل 19. مثال يعرض نسبًا مُبالَغ فيها لتحقيق مستوى رؤية أفضل.