GDC 2024: ردیابی مسیر، ارتقاء و فن آوری از بین بردن CPU؟
ReSpec این هفته کمی متفاوت است. من یک هفته را در سانفرانسیسکوی آفتابی در کنفرانس توسعه دهندگان بازی (GDC) گذراندم و از جلسه ای به جلسه دیگر دویدم و سعی کردم لحظه ای برای نوشتن چند کلمه پیدا کنم.
به جای یک ستون معمولی، ما فکر کردیم نمونهای از ورودیهای خبرنامه ReSpec را که به تازگی منتشر شده است را پست کنیم که آنچه را که در GDC این هفته دیدم پوشش میدهد. اگر می خواهید همان خبرنامه هر هفته به صندوق ورودی شما تحویل داده شود، همین حالا ثبت نام کنید و از محتوای انحصاری بهره ببرید.
ردیابی مسیر دروغ است
شاید “دروغ” کلمه ای قوی تر از آن باشد که بتوان از آن استفاده کرد، اما ردیابی مسیر در اجرای آن در بازی ها بسیار پیچیده است. در هر دو جلسه در جلسات ردیابی مسیر شرکت کردم Cyberpunk 2077 و آلن ویک ۲ در GDC، هر دو یک موضوع مشترک برای استفاده از ردیابی مسیر در یک بازی طراحی شده برای اجرا در زمان واقعی، با نرخ فریم قابل پخش، توصیف کردند. و ReSTIR Direct Illumination نام دارد.
به تفکیک هفتگی فناوری بازیهای رایانه شخصی بپردازید
اول، نحوه کار ردیابی مسیر: یک پیکسل را می گیریم و یک خط را از آن دور از دوربین ترسیم می کنیم. با چیزی برخورد می کند و به بیرون پرتاب می شود. و ادامه مییابد و دور صحنه میچرخد تا زمانی که در اتر ناپدید شود یا به منبع نور ختم شود. توسعه دهندگان این مسیرها را می خواهند که به منبع نور ختم می شوند، به ویژه برای محاسبات سایه.
مشکل در هر نوع زمینه بلادرنگ این است که این فرآیند بسیار گران است. محاسبه همه آن پرتوها و همه آن پرش ها، با وجود اینکه فقط مقدار کمی از آنها استفاده خواهد شد، منابع زیادی را می طلبد. به همین دلیل است که ردیابی مسیر برای مدت طولانی یک تکنیک آفلاین بوده است – شما باید مسیرهای ممکن را محاسبه کرده و میانگین آنها را محاسبه کنید.
این مورد برای آلن ویک ۲ و Cyberpunk 2077. برای نورهای مستقیم، ReSTIR با وزن دادن به منابع نور در یک صحنه و نمونه برداری تنها از تعدادی از آنها کار می کند. سپس این نمونه ها به صورت زمانی (بین فریم ها) و به صورت مکانی (با پیکسل های مجاور) به اشتراک گذاشته می شوند. در مورد بازی مانند آلن ویک ۲برخی از چراغها وزن بیشتری دارند، مانند چراغهای آبی و قرمز «سینمایی» که در ایستگاه قطار میبینید.
نتیجه تصویری است که بسیار سریعتر جمعآوری میشود، حداقل به اندازهای سریع که بتوانید یک بازی را با نرخ فریم معقول با ارتقاء مقیاس و تولید فریم سالم انجام دهید.
نکته جالبی است و امیدواریم در میان توسعه دهندگان تایتان رایج تر شود آلن ویک ۲ و Cyberpunk 2077 کار خود را به اشتراک می گذارند
مایکروسافت بر روی مقیاس بندی تمرکز کرده است
در GDC، مایکروسافت در نهایت بیشتر در مورد DirectSR صحبت کرد و حتی توانست توسعه دهندگان AMD و Nvidia را به نشستن روی یک پنل دعوت کند. حتی با هم! DirectSR راهی برای پایان دادن به جنگهای مقیاسپذیری آنطور که در ابتدا فکر میکردیم نیست، اما چارچوبی یکپارچه برای توسعهدهندگان فراهم میکند تا چندین ویژگی مقیاسپذیری را به بازیهای خود اضافه کنند.
بخش بزرگی از آن ورودی است. هنگام تعامل با DirectSR، مجموعه ای استاندارد از ورودی ها وجود دارد که توسعه دهندگان به رابط برنامه نویسی برنامه (API) ارائه می دهند. سپس میتواند این ورودیها را به مقیاسکنندههای داخلی مانند FSR 2 AMD یا انواعی که به سختافزار خاصی نیاز دارند مانند DLSS Nvidia ارسال کند.
این هیچ تفاوتی با چارچوب Streamline خود انویدیا ندارد، که برای دستیابی به چیزی مشابه قبل از تصمیم AMD برای عدم بازی با توپ ساخته شده بود. به نظر می رسید که مایکروسافت به عنوان یک شخص ثالث بی طرف در این نبرد، کسی است که می تواند همه را دور هم جمع کند.
هنوز مطمئن نیستید که این واقعاً در بازی ها چگونه به نظر می رسد. DirectSR هنوز حتی برای توسعه دهندگان در دسترس نیست. این امکان وجود دارد که هیچ چیز برای کاربران نهایی تغییر نکند و همچنان شاهد چندین گزینه بزرگنمایی در منوهای گرافیکی باشیم. شاید مایکروسافت ویندوز را بهروزرسانی کند تا بسته به سختافزاری که در اختیار دارید، گزینه مقیاسبندی جهانی را در خود جای دهد. واضح نیست، اما DirectSR همچنان باید اجرای هر نوع تغییر مقیاس در بازی های خود را در DLSS، FSR و XeSS اینتل برای توسعه دهندگان آسان تر کند.
یک نکته مثبت که در ابتدا ظاهر نشد این بود که این سیستم چگونه با به روز رسانی ها کار می کند. انویدیا، AMD و اینتل دائماً نسخههای جدیدی از فناوری مقیاسبندی خود را منتشر میکنند که بهبود جزئی در کیفیت تصویر ایجاد میکند یا نحوه عملکرد مقیاسگذاری را کمی تغییر میدهد. با DirectSR، توسعه دهندگان مجبور نیستند همه این به روز رسانی ها را به بازی های خود اضافه کنند – آنها فقط در API کار می کنند.
این همه برای من انگشتان دست است. ارتقاء مقیاس یک موضوع اصلی اختلاف است، به خصوص برای نسخه های بزرگ مانند استارفیلد و شر مسری 4 که در هنگام راه اندازی فقط از یک ارتقاء دهنده پشتیبانی می کرد. تنها عیب تولید فریم است. به نظر نمی رسد که در حال حاضر در کارت DirectSR وجود داشته باشد، بنابراین هنوز هم برای برندهای گرافیکی بزرگ پیشرفت های زیادی وجود خواهد داشت.
مرگ بر CPU شما؟ نه دقیقا
یکی از هیجان انگیزترین اعلامیه های GDC در سال جاری، نمودارهای کاری بود. من هفته گذشته در خبرنامه در مورد این موضوع صحبت کردم، اما در طول DirectX State of Union مایکروسافت نگاهی دقیق به Work Graphs کردم. ایده پشت آنها این است که با اجازه دادن به GPU خود برای مدیریت کار خود، فشار روی CPU را کاهش دهید.
مکالمه کمی ظرافت بیشتری دارد. این به GPU شما قدرت بیشتری میدهد تا تصمیم بگیرد چه کاری انجام دهید، مشابه زمانی که شیدرهای قابل برنامهریزی برای اولین بار به کارتهای گرافیک معرفی شدند. یک گراف کارگر از گرهها تشکیل شده است، و این گرهها میتوانند گرههای اضافی را برای GPU شما ایجاد کنند تا به جای انتظار برای کار از CPU، روی آنها کار کند. مایکروسافت آن را به عنوان یک شیدر محاسباتی توصیف کرد که می تواند شیدر محاسباتی دیگری را اجرا کند.
مزیت آشکاری که یکی از گیمرهای PC به سرعت متوجه شد استفاده از GPU بود. مایکروسافت توضیح داد که سیستم فعلی به یک نقطه همگام سازی جهانی بین GPU و CPU نیاز دارد. این اغلب به این معنی است که GPU که یک دستگاه بسیار موازی است، برای مدت زمان کوتاهی بیکار است در حالی که منتظر همگام سازی است.
چیزی که انتظارش را نداشتم این بود که چگونه بر حافظه تاثیر می گذارد. در برنامه نویسی فعلی در DirectX 12، مایکروسافت توضیح داد که شما از دستور ExecuteIndirect استفاده خواهید کرد که به شما نیاز دارد چندین بافر را نگه دارید. با Work Graphs، شما نیازی به نگه داشتن این بافرها ندارید زیرا GPU می تواند کار خود را شروع کند و به تولید کار برای خود ادامه دهد.
رابرت مارتین از AMD نشان میدهد که این صحنهای که به 3.3 گیگابایت حافظه نیاز دارد چقدر بزرگ است. با Work Graphs، استفاده از حافظه تنها 113 مگابایت بود و با بهبود عملکرد کمی همراه بود. همانطور که در ارائه توضیح داده شد، “ردپای حافظه با اندازه GPU مقیاس می شود، نه حجم کار.”
گرافیک کار برای کاربران نهایی نامرئی است، اما در واقع مرز بعدی برای برنامه نویسی گرافیکی است، و همانطور که AMD، Nvidia و مایکروسافت گفته اند، این چیزی است که توسعه دهندگان سال هاست روی آن کار کرده اند. استفاده از حافظه کمتر و عملکرد بهتر به نظر من خوب است. فقط باید منتظر بمانیم تا Work Graphs در بازی های واقعی ظاهر شود.
توصیه های سردبیران