جبکہ میٹل گیمز کے لیے ایپل کی تیز گرافکس رینڈرنگ ٹیکنالوجی ہے، میٹل ایف ایکس اسے ایپل سلیکون پر چمکانے کے لیے بہتری لاتا ہے۔ یہ ہے MetalFX کیسے کام کرتا ہے۔
2014 میں Apple نے اپنی نئی گرافکس اور گیمز رینڈرنگ ٹیکنالوجی متعارف کرائی جسے Metal کہا جاتا ہے۔
میٹل ایک رینڈرنگ API ہے جو ایپل ہارڈویئر کے لیے تیز رفتار کارکردگی فراہم کرتا ہے۔ Apple Silicon GPUs کی آمد کے ساتھ، میٹل کو اور بھی بڑی کارکردگی کو فروغ ملتا ہے۔
کمپیوٹر گیمز گرافکس رینڈرنگ میں ایک مسئلہ یہ ہے کہ کثیرالاضلاع کی بڑی تعداد کو کیسے کھینچا جائے ہائی ریزولوشن سطح کے شیڈرز اور اثرات کے ساتھ ماڈلز تیزی سے۔ جیسا کہ فریم ریٹ اور گیم سین کی پیچیدگی میں اضافہ ہوا ہے، اس مسئلے نے گرافکس رینڈرنگ پائپ لائنز میں رکاوٹیں پیدا کر دی ہیں۔
میٹل API ایک Apple C++ API ہے جس کی اپنی شیڈنگ لینگویج ہے، جیسا کہ آپ توقع کریں گے، Metal Shading Language (MSL)۔ Metal API کا موازنہ Windows پر DirectX 12، یا تھرڈ پارٹی گرافکس رینڈرنگ لائبریری ولکن سے کیا گیا ہے۔
میٹل API کے Swift اور Objective-C ورژن بھی ہیں۔
تاہم، چونکہ میٹل ایپل سے ہے اور ایپل ہارڈویئر کے لیے ڈیزائن کیا گیا ہے، یہ ان آلات پر کسی بھی دستیاب رینڈرنگ ٹیکنالوجی کی بہترین گرافکس رینڈرنگ کارکردگی فراہم کرتا ہے۔
جب بھی آپ iOS یا tvOS ڈیوائس پر ایپل آرکیڈ گیم شروع کرتے ہیں تو آپ میٹل رینڈرنگ کا ایک نمونہ دیکھ سکتے ہیں-مختصر Apple Arcade لوگو باؤنس اینیمیشن جو میٹل کا استعمال کرتے ہوئے ایپل آرکیڈ گیم کے رینڈر ہونے سے پہلے چلتا ہے۔.
بہت سے گیمز گرافکس رینڈرنگ کو تیز کرنے کے لیے GPU ہارڈویئر ایکسلریشن اور پری کمپیوٹڈ شیڈرز کا استعمال کرتے ہیں۔ میٹل میں، گرافکس کمانڈز کو پہلے سے انکوڈ کیا جاتا ہے اور پھر رینڈرنگ کے لیے GPUs کو جمع کرایا جاتا ہے۔
پری کمپیوٹڈ رینڈر اسٹیٹس GPU کو پہلے سے بتاتی ہیں کہ زیادہ سے زیادہ کارکردگی کے لیے رینڈرنگ پائپ لائن کو کس طرح ترتیب دیا جائے۔
رینڈرنگ شیڈرز، یا پہلے سے کمپیوٹنگ پروگرام جو روشنی، اندھیرے اور رنگ کو کنٹرول کرتے ہیں، 3D سین ریڈنگ کے دوران حقیقت پسندی اور خصوصی اثرات فراہم کرنے کے لیے استعمال کیے جاتے ہیں۔ MSL بیان کرتا ہے کہ دھاتی شیڈر کیسے کام کرتے ہیں۔
شیڈرز کو پہلی بار تجارتی سافٹ ویئر میں 1988 میں Pixar کے RenderMan سافٹ ویئر کے ساتھ متعارف کرایا گیا تھا، جس کی میک پر کئی دہائیوں پرانی تاریخ ہے۔
زیادہ تر جدید GPU رینڈرنگ پائپ لائنز میں، 3D ڈیٹا اور شیڈنگ لینگویج پروگرام دونوں GPU کو پروسیسنگ کے لیے بھیجے جاتے ہیں، جو پھر ایک ملٹی سٹیپ پروسیس یا پائپ لائن کا انتظام کرتا ہے جس کے ذریعے ایک منظر میں ہر فریم بنایا جاتا ہے۔
رینڈرنگ کے مراحل میں موٹے طور پر جیومیٹری کی تبدیلیاں، ماڈلز کو مثلث اور کواڈز میں توڑنا، فریگمنٹ شیڈرز کا اطلاق، گہرائی کی جانچ اور امتزاج، اور مخدوش سطحوں اور اشیاء کا اخراج شامل ہے۔ آخری مرحلے میں ان سب کو دیکھنے کے لیے حتمی فریم بفر میں شامل کرنا شامل ہے۔
یہ سب کچھ جدید GPU ہارڈ ویئر پر فی سیکنڈ درجنوں بار ہوتا ہے۔
میٹل میں پرفارمنس شیڈرز بھی شامل ہیں-ایسے پروگرام جو GPU لوڈ کو کم کرتے ہوئے رینڈرنگ کو تیز کرتے ہیں۔ پرفارمنس شیڈرز میں امیج فلٹرنگ، نیورل نیٹ ورک، ایڈوانس میتھ، اور رے ٹریسنگ شامل ہیں۔
شعاعوں کا سراغ لگانا 3D ماڈل آبجیکٹ کی سطحوں، ساخت اور روشنی کے ذرائع سے انعکاس کو کافی حد تک بہتر بناتا ہے۔
2020 میں Apple نے اعلان کیا کہ اس نے میٹل کو Apple Silicon CPUs اور GPUs میں پورٹ کیا ہے تاکہ زیادہ تیز کارکردگی فراہم کی جا سکے۔ WWDC 2022 میں، Apple نے MetalFX نامی میٹل میں ایک نیا فیچر متعارف کرایا۔
MetalFX رینڈرڈ آبجیکٹ کے کناروں کو دوبارہ گنتی اور ہموار کرنے کے لیے کچھ فریموں کو دوبارہ کمپیوٹنگ اور اینٹی ایلائزنگ کے ذریعے تیز اور زیادہ درست منظر پیش کرنے کی اجازت دیتا ہے۔
MetalFX کا خفیہ ہتھیار ایک ٹیکنالوجی ہے جسے اپ اسکیلنگ کہتے ہیں۔
خیال کسی چیز کو رینڈر کرنا ہے یا کم ریزولیوشن پر منظر، جو مجموعی طور پر فریم بفر کو تیزی سے پیش کرتا ہے۔ پھر، یہ منظر کو بڑا کرکے ظاہر ہونے سے پہلے ایک اضافی قدم کا اضافہ کرتا ہے۔
زیادہ تر منظر کو چھوٹے طول و عرض میں پیش کرنے سے، مناظر کو تیز تر اور زیادہ تفصیل اور پیچیدگی کے ساتھ پیش کیا جا سکتا ہے۔ زیادہ تر معاملات میں، عام طور پر منظر کی اشیاء کو چھوٹے پیمانے پر رینڈر کرنا اور پھر فائنل فریم کی مجموعی ریزولوشن کو بہتر بنانے کے مقابلے میں پورے منظر کو بڑے حتمی جہت پر پیش کرنا زیادہ تیز ہوتا ہے۔
اپ اسکیلنگ کا استعمال کرتے ہوئے، MetalFX تیزی سے منظر پیش کرنے اور آبجیکٹ کی مزید تفصیل اور نفاست دونوں فراہم کر سکتا ہے۔
MetalFX اپ اسکیلنگ کی ایک مثال۔ دائیں طرف کا فریم زیادہ تیز نظر آتا ہے۔
MetalFX اپ اسکیلنگ کی دو الگ اقسام کا استعمال کرتا ہے: اسپیشل اپ اسکیلنگ اور عارضی اینٹی ایلیزنگ اپ اسکیلنگ۔
مقامی اپ اسکیلنگ میں، دو میٹل کلاسز-MTLFXSpatialScalerDescriptor اور MTLFXSpatialScaler-بنائے جاتے ہیں۔ ڈسکرپٹر آبجیکٹ مقامی اسکیلر آبجیکٹ کی تفصیلات بیان کرتا ہے، اور MTLFXSpatialScaler آبجیکٹ اصل انکوڈنگ (اپنے انکوڈ طریقہ کے ذریعے) کرتا ہے۔
جب انکوڈ کو کال کیا جاتا ہے تو، MTLFXSpatialScaler آبجیکٹ تخلیق کرتا ہے اور رینڈرنگ کے لیے MTLCommandBuffer آبجیکٹ کو رینڈر کمانڈ بھیجتا ہے۔ یہ عمل ایک منظر کے ہر فریم کے لیے دہرایا جاتا ہے۔
MetalFX اسپیشل اپ اسکیلنگ منظر کی تفصیل کو تقریباً دوگنا تک فراہم کر سکتی ہے جس میں کارکردگی کا کوئی نقصان نہیں ہوتا ہے۔
MTLFXSpatialScaler آبجیکٹ بنانا کمپیوٹیشنل طور پر مہنگا ہے اور یہ صرف اس وقت کیا جانا چاہیے جب کوئی ایپلیکیشن شروع ہو یا ڈسپلے ریزولوشن تبدیل کرے۔
ٹیمپورل اینٹی ایلائزنگ اپ اسکیلنگ میں، پچھلے فریم کا ڈیٹا موجودہ فریم کو بڑھانے کے لیے بطور ان پٹ استعمال کیا جاتا ہے۔
سپر سیمپلنگ اور وقتی نمونے لینے کی وہ تکنیکیں ہیں جو اپ اسکیلنگ حاصل کرنے کے لیے فریموں سے انفرادی پکسل ڈیٹا استعمال کرتی ہیں۔ متعدد فریموں کے ہر پکسل اور پکسلز دونوں سے ڈیٹا کا نمونہ لیا جاتا ہے۔
ٹیمپورل اینٹی ایلائزنگ قدرے زیادہ کمپیوٹ کرنے والی ہے اور اسے کام کرنے کے لیے اضافی رنگ، گہرائی، اور موشن ڈیٹا کی ضرورت ہوتی ہے۔
ایپل کی WWDC پریزنٹیشن سے اینٹی ایلیزنگ اپ اسکیلنگ کی ایک اور مثال یہ ہے:
1080p، بائیں-اور 4K کو دائیں جانب اینٹی ایلیزنگ اپ اسکیلنگ کے ساتھ اپ اسکیل کیا گیا ہے۔
زیادہ تر MetalFX اپ اسکیلنگ پروسیسنگ رینڈرنگ کے بعد ہونی چاہیے لیکن کسی حتمی پوسٹ پروسیسنگ سے پہلے۔ فریموں پر کیا جاتا ہے۔
MetalFX اینٹی ایلیزنگ اپ اسکیلنگ کا ایک استعمال 1080p فریمز کی ریزولوشن کو بڑھانا ہے تاکہ وہ 4K ریزولوشن تک پہنچ جائیں۔
جس طرح مقامی اپ اسکیلنگ کے ساتھ، MetalFX اینٹی ایلیزنگ اپ اسکیلنگ کے لیے دو کلاسز فراہم کرتا ہے: MTLFXTemporalScalerDescriptor اور MTLFXTemporalScaler۔
مکمل MetalFX دستاویزات Apple کی ڈویلپر ویب سائٹ پر دستیاب ہے۔ Apple نے WWDC’22 میں MetalFX سیشن کی ویڈیو بھی منعقد کی جس کا عنوان تھا”Boost performance with MetalFX Upscaling”جس میں MetalFX کے استعمال کو تفصیل سے بیان کیا گیا ہے، بشمول نمونہ کوڈ۔
کئی AAA گیم ٹائٹل بشمول No Man’s Sky پہلے سے ہی Apple ڈیوائسز پر MetalFX استعمال کرتے ہیں۔
MetalFX جدید GPU ہارڈویئر پر سین ریزولوشن اور گیم کی کارکردگی دونوں کو بڑھانے کے لیے جدید گرافکس کمپیوٹ تکنیک کا وعدہ کرتا ہے۔ امکان ہے کہ نئی میٹل ٹیکنالوجی ایپل ڈیوائسز پر گیمنگ میں انقلاب لائے گی۔