امسال در GDC 2015 اتفاقات مهمی در عرصه‌ی واسط‌های برنامه‌نویسی افتاد، ای‌ام‌دی مسیر جدید Mantle را تبیین کرد و Khronos از نسخه‌ی بعدی OpenGL که نامش Vulcan است خبر داد. در ادامه جزئیات بیشتر در مورد Vulcan را مرور می‌کنم.

نامی جدید برای روشی جدید: Vulcan

کرونوس نام نسخه‌ی بعدی OpenGL را که شایع شده بود glNext است، Vulcan گذاشته که نامی کاملاً متفاوت است. وولکِن از نظر دسترسی به سخت‌افزار را مثل منتل و دایرکت ایکس ۱۲ است و یک واسط برنامه‌نویسی سطح پایین محسوب می‌شود و این چیزی است که توسعه‌دهندگان و سازندگان بازی از زمان OpenGL 3 می‌خواستند.

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

تغییر نامی که رخ داده به این علت است که OpenGL جدید روش دسترسی به سخت‌‎افزار را متحول می‌کند و از طرفی استفاده از آن به مهارت بیشتری نیاز دارد.

واسط برنامه‌نویسی Vulcan همان glNext یا جدیدترین نسخه‌ی OpenGL است.

واسط برنامه‌نویسی Vulcan همان glNext یا جدیدترین نسخه‌ی OpenGL است.

از تغییر نام که بگذریم وولکن تقریباً همان glNext سابق است، همان هدف را دنبال می‌کند و در حقیقت کرونوس واقعاً یک واسط برنامه‌نویسی سطح پایین و متن‌باز برای پلتفرم‌های مختلف عرضه کرده است. مزیت اصلی وولکن این است که هزینه‌ی اضافی فراخوانی ترسیم (Draw Call) را کاهش می‌دهد، ثبت دستورات به صورت مالتی‌ترد را بهینه می‌کند و کامپایل کردن شیدرها با استفاده از شیدرهای میانی بهینه می‌شود.

درایور کم‌رنگ می‌شود و اپلیکیشن دسترسی مستقیم به GPU دارد.

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

تفاوت اساسی دسترسی به سخت‌افزار در OpenGL و Vulcan

تفاوت اساسی دسترسی به سخت‌افزار در OpenGL و Vulcan

کاربرد گسترده‌ی OpenGL و کرونوس در صنعت بازی و گرافیک

این روزها کاربرد API متن‌باز کرونوس بسیار گسترده است و تقریباً اگر کنسول‌های بازی و بازی‌های کامپیوتری که با APIهای دایرکت ایکس و منتل و همچنین Metal اپل تهیه شده‌اند را کنار بگذاریم، همه جا OpenGL مورد استفاده قرار می‌گیرد.

انشعاب موبایلی OpenGL به OpenGL ES شهرت دارد اما این بار خبری از Vulcan ساده برای دستگاه‌هایی مثل گوشی و تبلت نیست! همه‌ی ابزارها از یک واسط برنامه‌نویسی بهره می‌برند و در تمام پردازنده‌های گرافیکی جدید، پشتیبانی سخت‌افزار از مشخصه‌های وولکن می‌بایست وجود داشته باشد.

وولکن فعلاً در مرحله‌ی شکل‌گیری و تکامل است.

در حال حاضر مشخصات نهایی واسط برنامه‌نویسی وولکن اعلام نشده است اما کرونوس مسیر خوبی برای توسعه‌ی آن انتخاب کرده و به جای اعلام مشخصات قطعی، روی مسایلی مثل توسعه‌ی وولکن، آزمایشات، لایه‌های دیباگ و رفع مشکل که اجازه‌ی بررسی مشکلات هنگام رندر گرافیک را به توسعه‌دهندگان می‌دهد، متمرکز شده است. این‌ها دقیقاً همان مواردی هستند که در چند سال اخیر در OpenGL وجود نداشته اما اخیراً کرونوس در ایجاد APIهای جدیدی مثل WebCL به آن پرداخته است.

بنابراین می‌توان گفت که وولکن واقعاً متن‌بازتر از OpenGL است و توسعه‌ی آن با استقبال گرم کرونوس تسریع و تقویت می‌شود.

وولکن برای برای دستاپ و وسایل همراه یکی است.

کرونوس می‌گوید وولکن با هر سخت‌افزاری که از OpenGL ES 3.1 به بعد پشتیبانی کند، سازگار است. بنابراین تمام پردازنده‌های گرافیکی و کارت گرافیک‌های مدرن امروزی از وولکن پشتیبانی می‌کنند. البته سازندگان پلتفرم‌های مختلف باید ران‌تایم (محیط زمان اجرا) وولکن را توسعه داده و فعال کنند و این موضوعی متفاوت از پشتیبانی سخت‌افزار است. مورد جالب این است که وولکن به پشتیبانی از تسلیشن (مفروش‌سازی) و شیدرهای هندسی که در نسخه‌ی ۳٫۱ OpenGL ES وجود ندارند هم نیازی ندارد. سازندگان بازی می‌توانند از این قابلیت‌ها استفاده کنند اما استاندارد وولکن در گروی وجود این دو مورد نیست.

نقشی که AMD و منتل در توسعه‌ی Vulcan دارند

Vulcan انشعابی از منتل است نه زیرمجموعه‌ی آن.

کرونوس برای سرعت بخشیدن به توسعه‌ی وولکن از AMD کمک گرفته و در حقیقت منتل یکی از پایه‌های شکل‌گیری وولکن است. منتل ای‌ام‌دی در حال حاضر عملکرد و روشی مشابه دایرکت ایکس ۱۲ دارد اما اشکالاتی هم متوجه آن است. وولکن انشعابی از منتل است اما زیرمجموعه‌ی آن نیست چرا که کرونوس بخش‌هایی از منتل مثل HLSL و هر مورد دیگری که موجب اجرا نشدن درست و بهینه‌ی منتل روی سخت‌افزارهای مختلف شده را جایگزین کرده است تا یک واسط برنامه‌نویسی عمومی برای پلتفرم‌های مختلف باشد.

وضعیت فعلی Vulcan و کمپانی‌های مشارکت‌کننده در توسعه و کاربرد آن بسیار خوب است. کرونوس نسخه‌ی مقدماتی وولکن را امسال عرضه می‌کند و در حقیقت کمی نسبت به دایرکت ایکس ۱۲ عقب می‌مامند اما فاصله‌ی زمانی آن قدرها هم زیاد نخواهد بود. به هر حال قرار است وولکن آزمایشات بیشتر و دقیق‌تری را پشت سر بگذارد و سپس مشخصات دقیق آن و سخت‌افزارهای پشتیبانی‌کننده به صورت رسمی اعلام شوند.

زبان‌ها پشتیبانی شده در برنامه‌نویسی به کمک وولکن و اهمیت SPIR-V

وولکن از منظر برنامه‌نویسی شیدرها می‌خواهد از چند زبان مختلف پشتیبانی کند. اولین و اساسی‌ترین روش GSLS است اما کرونوس از مدت‌ها پیش قصد اضافه کردن پشتیبانی از ++C را داشته و البته اضافه کردن پشتیبانی از هر زبان جدیدی برای نوشتن شیدرها، کار مشکلی است چرا که باید قابلیت‌های گرافیکی به زبان‌های موردبحث اضافه شود.

SPIR-V دری به روی سایر زبان‌های برنامه‌نویسی می‌گشاید.

کرونوس چند سالی است که روی زبان محاسباتی متن‌باز یا همان OpenCL کار می‌کند، واسط برنامه‌نویسی متن‌بازی که به کاربران امکان استفاده از پردازنده‌ی گرافیکی در کاربردهای غیر گرافیکی مثل فشرده‌سازی فایل را می‌دهد. کرونوس برای گسترش هر چه بیشتر OpenCL فرانتند (Frontend) خاصی به نام SPIR-V را معرفی کرد که در حقیقت زبان‌های مختلف را پوشش می‌دهد. GLSL اولین انتخاب است اما استفاده از زبان‌هایی مثل ++C هم به کمک این لایه‌ی میانی امکان‌پذیر است.

SPIR این بار به کمک وولکن می‌آید و دیگر محدودیت استفاده از GLSL وجود ندارد.

زبان برنامه‌نویسی در وولکن

زبان برنامه‌نویسی در وولکن

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

SPIR-V و تحولی که در سبک برنامه‌نویسی ایجاد می‌شود.

SPIR-V و تحولی که در سبک برنامه‌نویسی ایجاد می‌شود.

به نظرتان بازی‌های مبتنی بر Vulcan تا چه حد در ارتقای تجربه‌ی گرافیکی با سخت‌افزارهای موجود موفق خواهند بود؟ بازی‌سازان تا چه حد دستشان در پیاده‌سازی خلاقیت‌های خویش باز خواهد بود؟
7 votes, average: 5٫00 out of 57 votes, average: 5٫00 out of 57 votes, average: 5٫00 out of 57 votes, average: 5٫00 out of 57 votes, average: 5٫00 out of 5 (7 نظر، امتیاز: 5٫00 از 5)
برای نظر دادن ابتدا باید ثبت نام کنید.
Loading...
لينک کوتاه:

FacebookTwitterGoogle


بيشتر بخوانيد:

دیدگاه بگذارید

اطلاع از
امین نادری
مهمان

ولکان ، منتل ، دایرکس ۱۲
۳ قطب قدرت هستند که با ترکیب منتل و ولکان انتظار پیشرفتی خارق العاده در صنعت گیم و استفاده بهینه تر از کلیه قطعات سخت افزاری میره

Esmaeel
خواننده

آقای شیری در سایت تعریف کلی از Open GL ندیدم ممنون از راهنماییتون.خواستم بدونم تفاوت کلی دو ورژن Open GL4.4 و ۴٫۵ در چه مواردی هست که در کارتهای گرافیک پشتیبانی میشه؟

wpDiscuz

تبلیغات

تبلیغات

تبلیغات

×