النقاط الرئيسية
- كان جهاز PlayStation 1 يفتقر إلى FLOPs بسبب عدم وجود وحدة FPU.
- لم يؤدي عدم وجود Z-buffer إلى حدوث أخطاء صغيرة ومضلعات مرئية.
- تسبب تعيين الملمس الأفيني في حدوث تشوه؛ وكانت المقايضات في PS1 هي السرعة والتكلفة مقابل التعقيد.
قد تقول إنني متحيز، لكن جهاز PlayStation الأصلي لا يزال هو جهاز التحكم المفضل لدي على الإطلاق. ورغم أن الألعاب قد تبدو خشنة بعض الشيء الآن، إلا أنها لا تزال جيدة كما كانت دائمًا. ومع ذلك، حتى في ذلك الوقت، كانت رسومات PS1 تتسم بهذا التذبذب المميز الذي لم تجده في المنافسين، فما الذي يحدث؟
كل شيء يتعلق بالنقاط العائمة
غالبًا ما يتم قياس أداء وحدة معالجة الرسومات الحديثة (بشكل مثير للجدل) بوحدات FLOP أو عمليات النقطة العائمة. هذه ببساطة عملية رياضية تتضمن أرقامًا ذات فاصلة عائمة، والتي بدورها عبارة عن أرقام صحيحة ببساطة مع فاصلة عشرية. كان معالج الرسومات في PlayStation يحتوي على صفر وحدات FLOP، لأنه كان يفتقر إلى وحدة FPU أو وحدة النقطة العائمة. بدلاً من ذلك، يستخدم أعدادًا صحيحة ذات فاصلة ثابتة لحساب مواضع الرؤوس.
“الرأس” هو نقطة التقاء خطين أو أكثر. لذا في المضلع، والذي يكون عادةً (ولكن ليس دائمًا) مثلثًا في الرسومات ثلاثية الأبعاد، توجد ثلاث رؤوس. يتكون النموذج ثلاثي الأبعاد من مضلعات متعددة، ومع تحرك هذا الكائن على الشاشة، يجب حساب مواضع الرؤوس في الفضاء ثلاثي الأبعاد.
نظرًا لأنه لا يمكنك استخدام سوى الأعداد الصحيحة، فسيتم ببساطة تخطي أي موضع لرأس ليس عددًا صحيحًا. لذا سترى أن المضلعات “تتحرك” بين المواضع بأنواع معينة من الحركة. على سبيل المثال، ستبدو الشخصية التي تقف ساكنة ولديها حركة خاملة دقيقة وكأنها ترتجف قليلاً.
لم يتم العثور على Z-Buffer
بصرف النظر عن عدم وجود وحدة FPU، كان جهاز PlayStation يفتقر أيضًا إلى مخزن Z-buffer للأجهزة. ربما تتذكر إحداثيات XYZ من المدرسة، حيث يمكنك وصف أي نقطة داخل مساحة ثلاثية الأبعاد باستخدام ثلاثة أرقام. كان جهاز PlayStation يفتقر إلى مخزن Z-buffer للأجهزة لتخزين قيم العمق أو المحور Z، مرتبة حسب مدى بعد شيء ما عن “الكاميرا”.
وهذا يعني أن مطوري الألعاب اضطروا إلى إنشاء حل تخزين مؤقت Z خاص بهم، وبما أنه لم يتم ذلك في الأجهزة، فقد كان عليهم أن يكونوا اقتصاديين في خوارزميات الفرز العميق الخاصة بهم. وقد أدى هذا إلى موقف شائع في ألعاب PS1 حيث تم ارتكاب أخطاء فرز صغيرة وظهور واختفاء المضلعات التي كان ينبغي إخفاؤها عن الأنظار.
إن تعيين الملمس الأفيني ليس بهذه الدقة بعد كل شيء
تعيين الملمس هو عملية إضافة الملمس (وهي في الأساس صور رقمية) إلى إطار سلكي متعدد الأضلاع. إنه في الأساس “الجلد” لكائن ثلاثي الأبعاد. يستخدم PS1 طريقة تُعرف باسم تعيين الملمس “الأفيني”، والتي تستخدم الرياضيات البسيطة لتحديد الإحداثيات على المضلع حيث يجب رسم الملمس. لا يأخذ تعيين الملمس الأفيني إحداثيات Z في الاعتبار، وبالتالي سيبدو الإسقاط المنظوري غير صحيح للكائنات ثلاثية الأبعاد. تذكر أن PS1 ليس لديه مخزن مؤقت Z!
تحتوي وحدات التحكم مثل Nintendo 64 على Z-buffer، وتستخدم أيضًا طريقة تُعرف باسم mipmapping، حيث يتم تبديل إصدارات متعددة من نسيج ما اعتمادًا على المسافة بينك وبين الكائن، مما يحسن بشكل أكبر من وضوح واستقرار القوام أثناء الحركة. في PS1، يؤدي افتقاره إلى هذه التقنيات إلى ما يُعرف باسم تشويه النسيج الأفيني.
سريع، رخيص، أو معقد: اختر اثنين
لقد وجد مطورون مختلفون طرقًا للتغلب على هذه القيود، لذا فإن بعض ألعاب PS1 تعاني من هذه المشكلات بدرجات متفاوتة. ومع ذلك، فإن محاولة معالجة هذه المشكلات في البرامج تعني دائمًا تقريبًا استهلاك طاقة المعالجة التي كان من الممكن أن تذهب إلى شيء آخر. وعلى الرغم من هذه التخفيضات، كانت أجهزة PS1 سريعة قبل كل شيء. كان بإمكانها ضخ المضلعات بشكل أسرع من أي شيء آخر في ذلك الوقت.
كما يساعد في ذلك أن شاشات CRT تخفي معظم هذه المشكلات بشكل جيد، وهذا ما كان من المفترض أن يكون الجهاز مصممًا من أجله. تؤثر شاشات العرض المسطحة الحديثة سلبًا على طريقة عرض ألعاب PS1، مما يجعل الرسومات الآن أكثر بشاعة مما كانت عليه في ذلك الوقت!
خلاصة القول هي أن الجهاز كان من الممكن أن يحتوي على تلك الأجهزة الإضافية، لكن ذلك كان ليرفع التكلفة بشكل كبير، دون أي فائدة واضحة لشركة Sony أو لاعبيها في ذلك الوقت. لقد اختارت الشركة “السرعة والتكلفة المنخفضة”، تاركة التعقيد على الباب. وقد أثبت التاريخ أن هذا كان القرار الصحيح.
يمكن للمحاكيات تصحيح هذه المشكلة (ولكن هل ينبغي لك أن تفعل ذلك؟)
إذا كنت تلعب ألعاب PS1 باستخدام أحد المحاكيات العديدة المتاحة اليوم، فعادة ما يكون لديك خيار “إصلاح” معظم هذه المشكلات. يمكننا حقن قيم الفاصلة العائمة في اللعبة بطريقة سحرية، وتنظيف تعيين الملمس حتى تتألق الألعاب. ومع ذلك، هل يجب عليك فعل ذلك؟ هناك حجة مفادها أن هذه الخصائص جزء لا يتجزأ من تجربة PS1، ومثلها كمثل الأشخاص الذين لا يريدون تنعيم وحدات البكسل في ألعابهم ذات 8 أو 16 بت، نادرًا ما أرغب في إزالة الاهتزاز من ألعاب PS1 المفضلة لدي.
للحصول على شرح ممتاز من مطور ألعاب حقيقي ومبرمج محاكاة، أوصي بشدة بالبحث المتعمق الذي يقدمه Modern Vintage Gamer تشويه الرسوميات في PS1.