حدود التصيير ثلاثي الأبعاد في جودو

من موسوعة حسوب
< Godot
مراجعة 14:20، 25 نوفمبر 2023 بواسطة Naser-dakhel (نقاش | مساهمات) (إضافة الصفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

حدود حجم الملمس

قد لا يكون الملمس texture الأكبر من 8192×8192 مدعوم على أجهزة الكمبيوتر المكتبية والمحمولة القديمة. بإمكانك التحقق من قيود وحدة معالجة الرسومات لديك على موقع GPUinfo.org.

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

بإمكانك تعيين خيار استيراد معالجة Process > حد الحجم Size Limit إلى قيمة أكبر من 0 للحد من حجم ملمس معين قد يكون كبير جدًا بحيث لا يمكن تصييره. سيؤدي هذا إلى تقليل أبعاد الملمس عند الاستيراد (الحفاظ على نسبة العرض إلى الارتفاع) دون التأثير على الملف المصدر.

نطاقات اللون

سيتم عرض محرّك جودو ثلاثي الأبعاد داخليًا بتقنية HDR عند استخدام طرق التصيير Forward+‎ أو Forward Mobile. ومع ذلك، سيتم تعيين تخطيط نغمة إخراج التصيير إلى نطاق ديناميكي منخفض بحيث يمكن عرضه على الشاشة. يمكن أن يؤدي ذلك إلى ظهور نطاقات مرئية، خاصة عند استخدام مواد لا تحتوي على ملمس. تكون دقة الألوان قليلة أيضًا عند استخدام طريقة العرض Forward Mobile مقارنةً بطريقة Forward+‎ لأسباب متعلقة بالأداء.

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

هناك طريقتان رئيسيتان لتخفيف مدى النطاقات:

  • فعّل إلغاء النطاقات Use Debanding في إعدادات المشروع المتقدمة في حالة استخدام طرق التصيير Forward+‎ أو Forward Mobile. يطبق هذا تظليلًا لفصل الشاشة بملء الشاشة كتأثير ما بعد المعالجة وهو أقل حملًا.
  • يمكنك إضافة بعض الضوضاء إلى الملمس بدلًا من ذلك. وهذا فعال بشكل أساسي في الأبعاد الثنائية، لتأثيرات التظليل على سبيل المثال. في الوضع ثلاثي الأبعاد، يمكنك أيضًا استخدام تظليل debanding مخصص ليتم تطبيقه على الملمس الخاص بك. تعمل هذه التقنية حتى إذا تم عرض مشروعك بدقة ألوان منخفضة، مما يعني أنها ستعمل عند استخدام طريقتي عرض الأجهزة المحمولة والتوافق.
مقارنة نطاقات الألوان (زيادة التباين لمزيد من الرؤية)


انظر أيضًا: راجع النطاقات في الألعاب للحصول على مزيد من التفاصيل حول النطاقات وطرق العمل حولها.

دقة المخزن المؤقت للعمق

تعتمد محركات التصيير على مخزن مؤقت للعمق depth buffer (يسمى أيضًا Z-buffer) لفرز الكائنات في مساحة ثلاثية الأبعاد. يتمتع هذا المخزن المؤقت بدقة محدودة: 24 بت على الأنظمة الأساسية لسطح المكتب، وأحيانًا 16 بت على الأنظمة الأساسية المحمولة (لأسباب تتعلق بالأداء). سيحدث قتال Z إذا انتهى كائنين مختلفين بنفس قيمة المخزن المؤقت. سوف يتجسد هذا على شكل وميض للخلف وللأمام أثناء تحرك الكاميرا أو تدويرها.

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

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

قد تتمكن أيضًا من تحريك كائنات Z-fighting بعيدًا عن بعضها البعض دون أن يكون الفرق مرئيًا للاعب اعتمادًا على المشهد وظروف المشاهدة.

مقارنة Z-fighting (قبل وبعد تعديل المشهد عن طريق إزاحة Label3D بعيدًا عن الأرضية)

ترتيب الشفافية

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

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

  • اجعل المواد شفافة فقط إذا كنت في حاجة إليها بالفعل. إذا كانت المادة تحتوي فقط على جزء صغير شفاف، فكر في تقسيمها إلى مادة منفصلة. سيسمح هذا للجزء المعتم بإلقاء الظلال وسيؤدي أيضًا إلى تحسين الأداء.
  • إذا كان الملمس الخاص بك يحتوي في الغالب على مناطق معتمة وشفافة تمامًا، فيمكنك استخدام اختبار ألفا بدلاً من مزج ألفا. يعد وضع الشفافية هذا أسرع في العرض ولا يعاني من مشكلات الشفافية. اضبط الشفافية Transperancy > الشفافية Transperancy إلى Alpha Scissor في StandardMaterial3D، واضبط الشفافية > Alpha Scissor Threshold وفقًا لذلك إذا لزم الأمر. لاحظ أن MSAA لن يقوم بتحسين الحواف لحواف المادة ما لم يتم تمكين الحواف ألفا في خصائص المادة. ومع ذلك، فإن FXAA وTAA وsupersampling سيكونون قادرين على تحسين الحواف لحواف الملمس بغض النظر عما إذا كان الحواف ألفا ممكّنة على المادة أم لا.
  • إن مقص ألفا لن يكون مناسبًا إذا كنت بحاجة إلى عرض مناطق شبه شفافة من الملمس. بدلاً من ذلك، يمكن أن يعمل أحيانًا تعيين خاصية Transparency > Transparency الخاصة بالعقدة StandardMaterial3D على Depth Pre-Pass (على حساب الأداء). يمكنك أيضًا تجربة وضع Alpha Hash.
  • إذا كنت تريد أن تتلاشى المادة مع المسافة، فاستخدم وضع تلاشي المسافة Pixel Dither الخاص بالعقدة StandardMaterial3D أو تلاشي الكائن Object Dither بدلاً من PixelAlpha. وهذا سيجعل المادة معتمة، مما يؤدي أيضًا إلى تسريع عملية التصيير.
مقارنة ترتيب الشفافية (المواد المخلوطة ألفا على اليسار، والمواد المقصية ألفا على اليمين)

تنعيم تشويش متعدد العينات

انظر أيضًا: تم شرح تنعيم التشويش بشكل تفصيلي على صفحة تنعيم التشويش ثلاثي الأبعاد.

يأخذ تنعيم التشويش متعدد العينات (MSAA) عينات تغطية متعددة عند حواف المضلعات عند عرض الكائنات. ولا يؤدي ذلك إلى زيادة عدد عينات الألوان المستخدمة لعرض المشهد. وإليك ما يعنيه هذا في الممارسة العملية:

  • سيتم تنعيم حواف الشبكات بشكل جيد (وكذلك المعاينة الفائقة).
  • لن يتم تنعيم المواد الشفافة التي تستخدم اختبار ألفا (شفافية 1 بت).
  • لن يتم تقليل التشوشات اللامعة ("البريق" الذي يظهر على الأسطح العاكسة).

هناك عدة طرق للتغلب على هذا القيد اعتمادًا على ميزانية الأداء الخاصة بك:

  • افتح إعدادات المشروع ومكّن التصيير Rendering > الجودة Quality > مرشحات مساحة الشاشة Screen Space Filters > محدد خشونة مساحة الشاشة Screen Space Roughness Limiter لجعل تنعيم التشويش أقل وضوحًا. يتميز هذا الفلتر بتكلفة معتدلة على الأداء، لذا يجب تمكينه فقط إذا كنت في حاجة إليه بالفعل.
  • تمكين تنعيم التشويش التقريبي السريع Fast Approximate Antialiasing اختصارًا FXAA بالإضافة إلى (أو بدلاً من) MSAA. نظرًا لأن FXAA عبارة عن طريقة لمنع تشويش مساحة الشاشة، فإنها ستعمل على تنعيم أي شيء. وكجانب سلبي، فإن FXAA أيضًا تجعل المشهد يبدو أكثر ضبابية، خاصة عند الدقة الأقل من 1440 بكسل. تفتقر FXAA أيضًا إلى المعلومات الزمنية، مما يعني أن تأثيرها على تنعيم التشويش المرآوي specular aliasing محدود.
  • تمكين تنعيم التشويش المؤقت (TAA) بالإضافة إلى (أو بدلاً من) MSAA. نظرًا لأن TAA عبارة عن طريقة لمنع تشويش مساحة الشاشة، فإنها ستعمل على تلطيف أي شيء. وكجانب سلبي، فإن TAA أيضًا يجعل المشهد يبدو أكثر ضبابية، خاصة عند الدقة الأقل من 1440 بكسل. يوفر TAA جودة فائقة مقارنة بـ FXAA ويمكنه مكافحة تنعيم التشويش المرآوي بشكل فعال. ومع ذلك، فإن TAA لديها تكلفة أداء أكبر مقارنة بـ FXAA، ويمكن لـ TAA تقديم عناصر شبحية بحركة سريعة.

اعرض المشهد بدقة أعلى عن طريق زيادة إعداد حجم 3D > حجم Scale أعلى من 1.0. تسمى هذه التقنية الحواف الفائقة (SSAA) وهي بطيئة جدًا. يوصى عمومًا باستخدامه فقط للتصيير دون الاتصال بالإنترنت.

مصادر