Call of Duty Warzone Mobile از Vulkan برای گرافیک بهتر استفاده می کند

اسکرین شات لوگوی عنوان بازی از Call of Duty Warzone Mobile.

Call of Duty: Warzone Mobile یک بازی اکشن اول شخص در فرنچایز محبوب Call of Duty است. تحقق موبایل بازی بسیار محبوب کنسول و رایانه شخصی از APIهای سطح پایین موبایل برای ارائه یک تجربه بازیکن عالی بهره می برد.

از منظر فنی، هدف پیاده‌سازی موبایل پشتیبانی از طیف گسترده‌ای از دستگاه‌های تلفن همراه اندرویدی است و در عین حال پیاده‌سازی را تا حد امکان به نسخه کنسول نزدیک نگه می‌دارد و اطمینان حاصل می‌کند که خط لوله گرافیکی و زنجیره ابزار با کنسول‌های فعلی و عناوین رایانه‌های شخصی سازگار هستند. محتوا

موتور Call of Duty همگام‌سازی، تخصیص حافظه و زمان‌بندی را برای مدیریت ارسال ارائه با استفاده از سیستمی به نام رندرگر نمودار وظیفه اجرا می‌کند، که کار اجرا شده بر روی GPU را تعیین می‌کند و منابع مورد نیاز را مشخص می‌کند. به طور خاص، سیستم یک نمودار رندر با وظایف، منابع و وابستگی‌ها تعریف شده در یک اسکریپت سطح بالا است که در زمان بارگذاری پردازش می‌شود تا ترتیب بهینه کار را برای اجرا در GPU ایجاد کند و منابع مورد استفاده در زمان ارسال فریم را فراهم کند. .

Vulkan ، یک API گرافیکی سه بعدی متقابل پلتفرم مدرن، به عنوان رابط رندر پشتیبان برای رندرگر نمودار وظیفه در اندروید انتخاب شد.

شکل 1. پس زمینه تفصیلی با گرافیک روی هم قرار گرفته است.

مزایای Vulkan API

برای حفظ سبک بصری متمایز Call of Duty و پشتیبانی بهتر از پیشرفت مشترک بین Call of Duty: Warzone Mobile و کنسول‌ها و همتایان PC آن، این بازی از یک API رندر مشابه با اجرای کنسول‌ها و رایانه‌های شخصی موجود استفاده می‌کند. در اندروید، Vulkan اکتیویژن را قادر می‌سازد تا بر روی ابزارها، خطوط لوله و سایه‌بان‌های موجود خود بسازد و از محتوای ایجاد شده توسط هنرمندان پشتیبانی کند، بدون اینکه نیازی به بازنگری کل پشته نرم‌افزار باشد.

تلاش برای دستیابی به این هدف با یک رندر کاملاً متفاوت بسیار گران خواهد بود و تلاش برای پشتیبانی از APIهای گرافیکی نسل قدیمی برای خط لوله Call of Duty تأثیر زیادی بر مجموعه ویژگی ها خواهد داشت. اکتیویژن تشخیص داد که Vulkan مناسب‌ترین انتخاب برای ارائه ویژگی‌های کامل به اندروید و در عین حال به حداقل رساندن تأثیر بر هزینه کلی توسعه است. Vulkan پشتیبانی قابل توجهی را در میان سازندگان دستگاه های اندرویدی به دست آورده است و API را به گزینه خوبی برای توسعه آینده نیز تبدیل کرده است.

دستگاه‌هایی که فاقد سخت‌افزار یا درایورهای دارای قابلیت Vulkan هستند، معمولا قدیمی‌تر هستند و به اندازه کافی برای اجرای بازی قدرتمند نیستند. بنابراین علاوه بر اینکه Vulkan یک مناسب فنی برای موتور و خط لوله محتوا است، پشتیبانی Vulkan به عنوان یک نیاز سخت افزاری به عنوان یک فیلتر عملکرد عمل می کند.

سازگاری با API پلتفرم موجود

Vulkan از نظر مفهومی شبیه به APIهای موجود برای Call of Duty: Warzone است، با مدیریت صریح منابع، نامگذاری حافظه، خط لوله محاسباتی مشابه و دسترسی به منابع بی‌پایان. شباهت‌ها به Activision اجازه می‌دهد تا رندر را از نظر ساختاری با کنسول و رندر رایانه شخصی سازگار نگه دارد، و تنها به تغییرات Backend برای رابط با Vulkan نیاز دارد.

پشتیبانی از سایه‌زن‌های مبتنی بر HLSL با مجموعه ویژگی‌های کامل با استفاده از کامپایل DXC به SPIR-V به اندروید اجازه می‌دهد تا در خطوط لوله ساخت فعلی Activision ادغام شود. این فرآیند خالی از چالش نیست، اما هنوز از بازنویسی و هزینه‌های اضافی برای نگهداری نسخه‌ها یا زبان‌های متعدد سودمندتر است.

شکل 2. محیط رندر پیچیده.
شکل 3. ارائه محتوای با وفاداری بالا.

ویژگی های Vulkan مورد استفاده در Call of Duty: Warzone Mobile

  • همخوانی منابع و کنترل مانع صریح، نمودار وظیفه رندر را قادر می‌سازد تا به میزان قابل توجهی نیاز حافظه برای اهداف رندر را در مقایسه با تخصیص استاتیک کاهش دهد.
    • انعطاف‌پذیری امکان استفاده یکپارچه از شیوه‌های سازگار با موبایل را در وظایف رندر می‌دهد.
    • Render-passes به‌عنوان ویژگی‌های اصلی به رندر اجازه می‌دهد تا برای معماری‌های رایج GPU موبایل تصمیمات بهینه بگیرد. بیشتر این تصمیمات در سایر پلتفرم‌ها نیز سود می‌آورند.
    • وضوح صحنه پویا به طور پیش فرض توسط نمودار وظیفه پشتیبانی می شود و کنترل عملکرد و مصرف انرژی را امکان پذیر می کند.
  • خط لوله کامل GPU با حذف گسترده مبتنی بر محاسبات، پیچیدگی صحنه را به میزان قابل توجهی افزایش می‌دهد.
    • متعادل کردن دانه بندی حذف برای در نظر گرفتن هدف قرار دادن رندرهای معوق مبتنی بر کاشی .
    • Bottleneck حجم کار محاسباتی پیچیده ای است که بر خلاف شمارش مثلث است.
      • خط لوله GPU با سناریوهای مختلف در ذهن طراحی شده است.
      • گزینه هایی برای تغییر دانه بندی حذف
  • مجموعه‌های توصیفگر بسیار بزرگ امکان رندر کامل بدون اتصال را روی سخت‌افزار سازگار فراهم می‌کنند، که به نوبه خود هزینه ایجاد تماس قرعه‌کشی CPU را با عملکرد، توان و مزایای حرارتی مرتبط کاهش می‌دهد.
  • پیکربندی HW تنظیمات وفاداری را بر اساس مدل‌های دستگاه خاص برای بهترین تجربه کاربری فعال می‌کند.
    • کاربران حالت را پیکربندی می کنند: بهترین عملکرد، بهترین کیفیت یا صرفه جویی در باتری.
  • طراحی مجموعه سایه زن مخصوص دستگاه، مجموعه های مختلفی از سایه زن ها را برای از پیش تنظیم های مختلف GPU (تنظیمات کیفیت و وفاداری) ارائه می دهد. پیکربندی HW به بازی کمک می کند تا بهترین مجموعه سایه زن را برای دستگاه انتخاب کند.
    • به کاهش انفجار ترکیبی شیدرهای بسیار قابل تنظیم با الزامات ایجاد اشیاء خط لوله کمک می کند.
    • شامل مجموعه‌های سایه‌زن غیرقابل اتصال مجدد برای هدف قرار دادن تلفن‌های قدیمی و درایورهایی است که از منابع سایه‌زن زیادی پشتیبانی نمی‌کنند.
  • استفاده هوشمندانه از ثابت های تخصصی برای مقابله با تفاوت های راننده.
    • اکثر اشکالات کامپایلر سایه زن در درایورها با استفاده از ثابت های تخصصی رفع می شوند.
    • در برابر تعداد مجموعه های سایه زن مخصوص دستگاه تعادل ایجاد می کند.
شکل 4. خط لوله GPU کامل با حذف گسترده مبتنی بر محاسبات که صحنه های پیچیده را امکان پذیر می کند.

پروفایل و اشکال زدایی

اکتیویژن در مراحل اولیه توسعه، شکاف های زیادی را در پایداری و عملکرد با ابزارهای پروفایل Vulkan و اشکال زدایی پیدا کرد. از آن زمان تاکنون، پیشرفت‌های ثابتی در پروفایل‌سازهای خاص فروشنده و ابزارهای فروشندگان آگنوستیک مانند RenderDoc وجود داشته است. اکنون توسعه دهندگان می توانند با اطمینان بیشتری مشکلات رندرینگ و فرصت های بهینه سازی را محدود کنند.

وفاداری بالا با Vulkan

Call of Duty: Warzone Mobile روی طیف وسیعی از دستگاه‌های اندرویدی مجهز به Vulkan با استفاده از فناوری رندر مشترک با کنسول و عناوین رایانه شخصی اجرا می‌شود. Vulkan سربار و اصطکاک توسعه را کاهش داد و امکان ارائه محتوای معتبر و با وفاداری Call of Duty و گیم پلی به بازیکنان اندروید را فراهم کرد.