یه سری نکته میخوام بگم والسلام .....
1- OPEN GL و DX هر دو یک کتابخونه برای زبانهای برنامه نویسی هستن .
2- OPEN GL تو تمام زبانهای برنامه نویسی که قابلیت اجرایی دارن به یه شکل استفاده میشه . یعنی اگر مثلا تو زبان C++ برنامه ای مبتنی بر OPEN GL بنویسید ، میتونید همون برنامه رو با ویژوال هم فراخونی کنید .
3- تو تمام زبانها اگر از OPEN GL برای ساخت و رندر و تنظیمات پیکسل تصاویر استفاده کنیم ، متغیر های ورودی به شکل زیر هست :
مثال: ( تنظیمات پیکسل )
#include <GL\gl.h>
مثال: ( رندر )
HGLRC hRc=NULL;
int m_PixelFormat;
اما DIRECT X :
- DirectX شامل توابع پشتیبانی از گرافیک دو بعدی و سه بعدی، کنترل هزاران وسیله ورودی، توابع مخلوطسازی و نمونهبرداری صدا و موسیقی خروجی، کنترل بازیهای شبکهای و چندکاربری و کنترل قالبهای گوناگون جریان چند رسانهای میباشند.
1- معمولا برای پروژه های دایرکت X از 2 نرم افزار جانبی به اسم Vstudio.net و DirectX SDK برای پردازش و رندر بازیها استفاده میشه . به همین دلیل معمولا برنامه های کاربردی ویندوز با
++C نوشته نمیشه . چون واقعا سخته .
2-
Library های مورد استفاده تو DirectX مجموعه ای از دستور العمل ها و توابع هستند که زیر مجموعه DirectX SDK اند و با فرمت DLL شناخته میشن . این توابع کتابخونه به اسم
DirectX Library شناخته میشن که باید قبل از شروع کار به Visual Studio معرفی بشن .
====================================================
اما یه سری تفاوت هم دارن ......
- از DirectX بیشتر ا بیشتر برای بازیها استفاده میشه و OPEN GL تا قبل از PS4 مخصوص پلتفرم سونی بود .
- بین OPEN GL و DX تفاوت خیلی زیادی از نظر توابع وجود نداره . تفاوت اصلی بین این 2 تا تو نوع برنامه نویسی اونهاست که خیلی ها از جمله ( جان کارمک ) کار با DX رو راحت تر میدونن .
- شرکت انویدیا به صورت سمی از OPEN GL پشتیبانی میکنه و AMD هم اولویت پشتیبانیش DX هست . ( این مورد و میشه تو کارت تایتان یا سری های مختلف کارت های ATI/AMD دید ) .
- مشکل بزرگ DX اینه که همیشه باید با سخت افزار های جدید بیاد و با آپدیت های نرم افزاری کار نمیکنه . یعنی حتما باید بستر سخت افزاری آماده باشه . ( نمونه = نسل جدید XBOX و نسل جدید DX ) . اما OPEN GL برعکسه .
- OpenGL سریع تر از DirectX هست . ( این مورد هنوز در مقابل DX 11.2 تست نشده - مبنای تست هم فکر کنم رندر گیری تو رسم توابع مثلثاتی بوده ) .
- یکی از دوستان میگفت میشه به DX زبان برنامه نویسی هم گفت چون خیلی وسیعه . ( درست میگه ، هر کسی که با DX کار کرده باشه میدونه که میشه با DX یه چیزی شبیه Windows Media Player نوشت !!! اما OpenGL فقط برای گرافیک سه بعدی استفاده میشه ) .
- کامپایل بازیهای ساخته شده با Directx سریعتر از OPEN GL هست .
- مشکل بزرگ GL اینه که اصلا از توابع صوتی پشتیبانی نیمکنه ( برای بکارگیری صوت باید از کتابخانههای کمکی همچون fmod یا OpenAL استفاده کنیم).
اما DX ها نسخه جدید اونقدر قدرتمند شدن که واقعا جای GL و تنگ کردن . الان DX به صورت رسمی تا قبل از نسخه 11.2 از تکنیک های
Multi-Threading ، Tessellation ، Direct Compute ، Shader Model5 ، محاسبات GP-GPU و Post Processing ، Ray Tracing و ... استفاده میکنه که ازش غولی ساخته که همه چی رو از ته درو میکنه .
استفاده از تکنیک Ray Tracing برای ردیابی مسیر تابش نور از منبع نور به جسم و هم چنین از اشیاء دیگر تو نسخه 11 . این تکنیک باعث ایجاد بازتاب های بسیار واقع گرایانه و طبیعی می شود.
=============================
هر 2 تای این کتابخونه ها واقعا قدرتمند هستن و پشتیبانهای قدرتمندتری مثل انویدیا و AMD دارن ، اما تو نسل جدید کنسولها هر 2 شون رفتن به سمت DX . امیدواریم بستر نرم افزاری PS4 هم آماده پشتیبانی از SX بشه تا سازنده های خلاق انحصاری های pS4 با DX هم بتونن اوج هنر و خلاقیت خودشون و نشون بدن .
اطلاعات بیشتر