OpenGL در مقابل DirectX: کدام یک برای توسعه بازی بهتر است؟
API های گرافیکی مانند OpenGL و DirectX به عنوان پل ارتباطی بین نرم افزار و سخت افزار گرافیکی مورد استفاده برای اجرای بازی ها عمل می کنند. این APIها روش های استانداردی را برای نمایش گرافیک های دو بعدی و سه بعدی روی صفحه ارائه می دهند. آنها در چند دهه گذشته برای توسعه بازی اساسی شده اند. موتورهایی مانند یونیتی بین APIهای گرافیکی که استفاده میکنند، یک انتخاب را ارائه میدهند، اما چگونه میخواهید گزینه مناسب را برای بازی خود انتخاب کنید؟ با ما همراه باشید تا OpenGL را با DirectX مقایسه کنیم تا به شما ایده دهیم که کدام یک از این ابزارها برای شما بهترین است.
DirectX در مقابل OpenGL: نمای کلی ویژگی اصلی
در هسته خود DirectX و OpenGL هر دو دارای خط گرافیکی یکسانی هستند و سالهاست که دارند. هر دو API از نقاطی به نام رئوس برای ساختن گرافیک های اولیه پیچیده استفاده می کنند. هر رأس مختصات و سایر اطلاعات مهم خود را ذخیره می کند. اما روشی که هر کتابخانه از رئوس استفاده می کند متفاوت است. آنها ممکن است عملکردهای مشابهی را انجام دهند، اما اگر با آنها کار کنید، تفاوت بین OpenGL و DirectX را متوجه خواهید شد.
DirectX در مقابل OpenGL: دامنه API
قبل از اینکه خیلی بیشتر پیش برویم، توجه به این نکته مهم است که در حالیکه هر دو API گرافیکی هستند، OpenGL و DirectX دامنههای متفاوتی دارند. OpenGL یک API گرافیکی خالص است و این بدان معنی است که با هیچ چیز دیگری به جز گرافیک های دو بعدی و سه بعدی سروکار ندارد. از سوی دیگر، DirectX مجموعه ای از گرافیک، صدا، شبکه و سایر APIهای سخت افزاری است که همه با هم کار می کنند.
در برخی موارد، OpenGL از DirectX برای انجام عملکردهایی استفاده می کند که به تنهایی نمی تواند انجام دهد. بقیه این مقاله نادیده گرفتن این تفاوت بین دو API، با تمرکز بر عناصر گرافیکی هر ابزار خواهد بود.
OpenGL در مقابل DirectX: پلتفرم ها
OpenGL یک API رایگان است که توسط یک شرکت غیرانتفاعی به نام گروه Khronos اداره می شود، در حالیکه DirectX توسط مایکروسافت ساخته شده است. DirectX عمدتاً روی ویندوز و ایکس باکس کار می کند و سایر پلتفرم ها مانند لینوکس به آرامی پشتیبانی می شوند. OpenGL کراس پلتفرم است و آن را برای توسعه بازی در طیف وسیعی از سیستم عامل ها و کنسول های بازی قابل استفاده می کند.
DirectX در مقابل OpenGL: منابع سخت افزاری
DirectX مدیریت سختافزار را به توسعهدهنده واگذار میکند و به شما این امکان را میدهد که منابع را به صورت کارآمد، در صورت نیاز، تخصیص دهید. OpenGL مدیریت سخت افزار را مدیریت می کند، اما این می تواند مزایای خاص خود را داشته باشد، زیرا لازم نیست خودتان نگران مدیریت منابع باشید.
DirectX در مقابل OpenGL: مستندات
دسترسی به مستندات دقیق می تواند توسعه بازی را هنگام کار با API بسیار آسان تر کند. DirectX و OpenGL اسناد بهروز شده و جوامع توسعهدهنده مفید را ارائه میدهند. هر دوی این APIها بهروزرسانیهای سالانه بزرگ را دریافت میکنند تا اطمینان حاصل کنند که بهترین ویژگیهای موجود را ارائه میدهند.
استفاده از OpenGL یا DirectX برای توسعه بازی
توسعه دهندگان با استفاده از OpenGL و DirectX بسیاری از بازی های زیبا و بهینه شده را در بازار مدرن ساخته اند. هنگام انتخاب یک API گرافیکی 2D/3D باید چندین نکته را در نظر بگیرید. برخی از توسعه دهندگان به سادگی به ابزاری که با آن راحت تر هستند تکیه می کنند.
OpenGL یا DirectX: پلتفرم ها
ما قبلاً روی پلتفرمها صحبت کردهایم، اما این موضوع برای توسعهدهندگان بسیار مهم است. اگر می خواهید برای نینتندو سوییچ، پلی استیشن 4 یا لینوکس بازی بسازید، باید با OpenGL یا API دیگری با پشتیبانی از آنها کار کنید. DirectX برای ویندوز و ایکس باکس ساخته شده و سازگاری محدودی با سایر سیستم ها دارد.
OpenGL یا DirectX: سازگاری با موتور
امروزه بیشتر توسعه دهندگان بازی از موتورهایی مانند Unity و Unreal برای ساخت بازی های خود استفاده می کنند. هر دوی این موتورها از OpenGL و DirectX پشتیبانی می کنند، همانطور که دیگر موتورهای توسعه بازی چند پلتفرمی پشتیبانی می کنند.
OpenGL یا DirectX: سهولت استفاده
برخی استدلال می کنند که کار با OpenGL راحت تر از DirectX است. در کنار منابع سخت افزاری، OpenGL فقط گرافیک را مدیریت می کند و طبیعتاً آن را ساده تر می کند. این واقعیت که در پلتفرم های بیشتری کار می کند، انتشار بازی هایی با این نیاز را آسان تر می کند. سهولت استفاده از API گرافیکی به اندازه گذشته برای توسعه دهندگان بازی مهم نیست. با موتورهایی مانند Unity که در پشت صحنه با API های گرافیکی ارتباط برقرار می کنند، تنها با یک کلیک یک دکمه نیاز است تا API مورد استفاده خود را تعویض کنید. بعید است که تفاوتی را در سهولت استفاده از هر API مشاهده کنید، مگر اینکه از ابتدا یک بازی ایجاد کنید.
OpenGL یا DirectX: ویژگی های گرافیکی
بعید است که تفاوت فاحشی در ویژگیهای موجود بین این APIها مشاهده کنید، مگر اینکه یک مورد حاشیهای باشد. هر دو از قابلیتهای کارت گرافیک شما پشتیبانی میکنند و این تنها در صورتی تغییر میکند که پردازندههای گرافیکی در آینده شاهد تغییرات چشمگیر باشند.
OpenGL یا DirectX: عملکرد بازی
بحث های زیادی بین توسعه دهندگان در مورد عملکرد این API ها وجود دارد. تصور اینکه OpenGL یا DirectX تفاوتهای عملکردی قابلتوجهی با هم دارند، سخت است، اگرچه این ادعا که OpenGL روانتر و کارآمدتر است، به صورت آنلاین رایج است. تنها راه برای فهمیدن اینکه کدام یک از این APIها بهترین عملکرد را دارند، آزمایش است. به لطف سازگاری Unity با هر دو API، میتوانیم یک پروژه ایجاد کنیم و یک بازی نمونه را با هر دو API آزمایش کنیم تا یک معیار عملکرد ایجاد کنیم.
این آزمایشها با گرافیکهای دوبعدی و سه بعدی انجام شده تا اطمینان حاصل شود که خطوط متفاوت آنها عامل قابل توجهی نیست. هر تست برای 120 ثانیه گیم پلی معمولی اجرا می شود و فریم در ثانیه برای تعیین عملکرد اندازه گیری می شود. تمام تست ها بر روی یک رایانه انجام شده است.
تست عملکرد سه بعدی: Unity Carting Microgame
Unity Carting Microgame یک الگوی رایگان بوده و شامل همه چیزهایی است که برای ساخت یک بازی مسابقه ای ساده نیاز دارید. همراه با آموزش است، اما ما بیشتر به خود بازی علاقه مندیم. ما کارتینگ Microgame را با OpenGL و DirectX ساختیم تا عملکرد آنها را مقایسه کنیم و نتایج به شرح زیر بود:
نوع | پایین ترین | بالاترین | میانگین |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX در معیار سه بعدی ما از OpenGL بهتر عمل کرد و به نرخ فریم چشمگیر در سراسر جهان دست یافت. نتایج OpenGL هنوز قابل پخش هستند.
تست عملکرد دو بعدی: میکرو بازی Unity Platformer
همانند Carting Microgame، Unity Platformer Microgame رایگان و مملو از ابزارهای یادگیری عالی است. همانطور که انتظار می رفت، بازی دو بعدی در تست های ما عملکرد بهتری نسبت به بازی سه بعدی دارد، اما شما می توانید نتایج را برای خودتان ارزیابی کنید.
نوع | پایین ترین | بالاترین | میانگین |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
همانطور که از نتایج بالا می بینید، DirectX در تست ما به میانگین نرخ فریم بسیار بالاتری دست یافت. در حالی که تفاوت ممکن است چشمگیر به نظر برسد، هر دوی این نتایج بسیار قابل بازی هستند.
OpenGL یا DirectX 11: نتیجه گیری عملکرد
در حالی که بسیاری از کاربران می گویند که OpenGL بهتر از DirectX عمل می کند، API دوم در هر دو معیار ما به نتایج بهتری دست یافت. این به دور از قطعیت نیست، زیرا بسیاری از عوامل در دیکته کردن عملکرد بازی نقش دارند، به خصوص که آنها پیچیده تر می شوند.
سلام میخواستم فرق dairect x+ با OpenGL+ در شبیه ساز گیم لوپ رو بدونم؟ آیا مقاله ای هست؟