DirectX چیست و به چه دردی میخورد؟ رابطهای برنامه نویسی کاربردی یا API در دوره مدرن کامپیوترها به یکی اجزای جدانشدنی کار برنامه نویسان و حتی کاربران تبدیل شده است. در طول تاریخ، API های متعددی دردسترس توسعه دهندگان قرار گرفته که یکی از محبوبترین آنها، DirectX است. البته باید در همین ابتدا اشاره کرد که DirectX یک رابط برنامه نویسی کاربردی واحد به شمار نمیرود و مجموعهای از API ها را شامل میشود.
در این قسمت از سری مطالب تصمیم گرفتیم راه خود را به دنیای رابطهای برنامه نویسی کاربردی باز کنیم و شما را با یکی از محبوبترین رابطها، یعنی DirectX آشنا نماییم.
پیش از این که به سراغ DirectX برویم، لازم است ابتدا درباره مفهوم رابط برنامه نویسی کاربردی یا API توضیحاتی را ارائه نماییم. API چیست و چرا به وجود آمده است؟
API چیست؟
Application Programming Interface یا API که در فارسی به آن «رابط برنامه نویسی کاربردی» میگویند، یک رابط خاص میان کامپیوترها یا میان برنامههای مختلف یک کامپیوتر است. API مجموعهای از یک سری مفاهیم و پروتکلها است که برای یکپارچه سازی نرم افزارهای کاربردی مورد استفاده قرار میگیرد.
API به محصول یا سرویس شما اجازه میدهد بدون در نظر گرفتن نوع پیاده سازی سرویسها و محصولات دیگر، با آنها به آسانی ارتباط برقرار کند. API باعث میشود توسعه نرم افزارهای کاربردی یا بازیهای ویدیویی روند راحتتری را طی کند و در نهایت، زمان و انرژی و هزینهها را کاهش دهد.
زمانی که شما در حال طراحی و ساخت ابزار یا محصولات دیجیتالی جدیدی هستید یا برنامههای از پیش ساخته شده را مدیریت میکنید، API به شما انعطاف پذیری، طراحی ساده و توانایی اجرا شدن را به همراه آورده و به صورت کلی، فرصتهای بیشتری را برای نوآوری به وجود میآورد.
حالا که به صورت خلاصه درباره API صحبت کردیم و کمی با ماهیت آن آشنا شدیم، بیایید به سراغ اصل مطلب، یعنی DirectX برویم.
DirectX چیست؟
DirectX مجموعهای از رابطهای برنامه نویسی کاربردی است و کاربر را از هر نظر برای کار با نرم افزارها و برنامههای مختلف، تأمین میکند. DirectX محصول شرکت مایکروسافت است و در سیستم عامل محبوب این شرکت، یعنی ویندوز و البته کنسولهای ایکس باکس به کار گرفته میشود.
این رابط برای اولین بار در تاریخ ۳۰ ماه سپتامبر سال ۱۹۹۵ عرضه شد و با ویژگیها و قابلیتهای کاربردی و خوبی که به مخاطبان و توسعه دهندگان ارائه داد، به سرعت به یکی از محبوبترین رابطها در میان توسعه دهندگان نرم افزاری و بازیسازن تبدیل شد و تاکنون نیز به سرعت در حال توسعه بوده است. همچنین کاربران CAD (طراحی دو بعدی و سه بعدی با کامپیوتر) و CAM (کنترل ماشینها و پروسه تولیدیها) نیز علاقه بسیاری به DirectX دارند.
API های مختلف DirectX شامل Direct Draw ،Direct3D ،DirectSound ،DirectPlay ،DirectMusic و… میشوند و همانطور که مشاهده میکنید، تمام این رابطها در ابتدای نام خود، عبارت Direct را مشاهده میکنند.
DirectX با گردهمآوردن تمام این رابطها، باعث میشود کاربران عملاً مشکلی را در خصوص کار با برنامهها و نرم افزارهای مختلف و استفاده همزمان از آنها تحربه نکنند. بهره گیری از امکاناتی مانند موسیقی، طراحی، رندر کردن موارد سه بعدی و البته تجربه بازیهای ویدیویی، با تمام زیر مجموعههای DirectX میسر میشود.
دسترسی به سخت افزار
البته لازم است اشاره کنیم که DirectX تنها درباره ارتباط میان نرم افزارها نیست، بلکه یک دسترسی سطح پایین را به قطعات سخت افزاری شما، مانند کارت گرافیک، کارت صدا و حافظه ایجاد میکند. اگر توضیحاتی که تاکنون ارائه شده مقداری سنگین و سخت بوده، اجازه دهید موضوع را جور دیگری باز کنیم. در سطح پایه و اولیه، باید بگوییم که DirectX به بازیها اجازه صحبت کردن با کارت گرافیکها را میدهد.
در گذشته و دوران قدیم که سیستم عاملی به نام ویندوز وجود نداشت و کاربران با محیط DOS کار میکردند، بازیها دسترسی مستقیمی به کارت گرافیکها و مادربرد داشتند و شما میتوانستید به صورت مستقیم فایل تنظیمات یا Configuration را تغییر دهید و ویرایش کنید. با این حال با عرضه ویندوز ۹۵، مایکروسافت به دلایل امنیتی تصمیم گرفت تمام دسترسیهای سطح پایین را برای سخت افزار از بین ببرد.
این بدان معنی است که بازیها دیگر نمیتوانستند به ویژگیهای پایین رده سخت افزار دسترسی داشته باشند و این موضوع باعث بروز مشکلات بسیاری شد. در این وضعیت بود که مایکروسافت تصمیم گرفت DirectX را عرضه کند و آن را به عنوان یک واسطه میان بازیها (برنامهها) و کارت گرافیکها به مخاطبان معرفی نماید.
چرا به DirectX نیاز داریم؟
موارد استفاده و بهره گیری از DirectX بسیار زیاد است اما در این قسمت سعی میکنیم مهمترین کارهایی که با کمک این رابط برنامه نویسی کاربردی انجام میشوند را ذکر نماییم.
یکی از رابطهای زیرشاخه DirectX که استفادههای بسیاری نیز از آن میشود، Direct3D نام دارد و از آنجایی که بحث و هدف ما در لیون تک اکثراً محتوا و فناوریهای بصری بوده، بیشتر سعی میکنیم روی زیرشاخه اختصاصی تصویر سازی و گرافیک سه بعدی و دو بعدی Direct3D تمرکز کنیم. Direct3D به صورت کلی با هر بازی، برنامه یا نرم افزاری کار دارد که در آن از گرافیک سه بعدی استفاده شده است.
حالا این برنامه میتواند AutoCAD و 3D Max باشد یا یک بازی ویدیویی! تصویر سازی گرافیکی به هر شکل با Direct 3D انجام میپذیرد.
Direct3D در زمینه ساخت و توسعه بازیهای ویدیویی آنقدر مهم و اساسی است که این روزها بسیاری از گیمرها و توسعه دهندگان، Direct3D را به نام DirectX میشناسند.
DirectX تنها نیست!
این نکته مهم را در نظر بگیرید که DirectX تنها API موجود در دنیای سخت افزار و نرم افزار به حساب نمیآید و رابطهای دیگری مانند OpenGL نیز مورد استفاده قرار میگیرند. با این حال، DirectX از پایه و اساس و به صورت Native برای سیستم عامل ویندوز طراحی شده و همین موضوع میتواند برتریهای قابل توجهی به آن بدهد.
حالا که شناخت خوبی از کلیت DirectX به دست آوردیم، بیایید کمی درباره آخرین نسخه عرضه شده از این رابط برنامه نویسی کاربردی، یعنی DirectX 12 Ultimate صحبت کنیم و از ویژگیهای فوقالعاده آن بگوییم.
چرا DirectX 12 Ultimate برای گیمینگ بسیار مفید است؟
DirectX 12 Ultimate که جدیدترین و مدرنترین نسخه این API به حساب میآید، بر پایه و اساس DirectX 12 نوشته شده و شامل ویژگیهایی است که در حدود دو-سه سال گذشته پدیدار شدهاند. اولین و شاید مهمترین این ویژگیها، DXR یا همان DirectX Raytracing است.
از آنجایی که بسیاری از بازیها در سالهای اخیر به استفاده و بهرهگیری از فناوری Ray Tracing به صورت همزمان یا Real Time روی آوردهاند، مایکروسافت با کمک DirectX 12 Ultimate، این فناوری را به صورت Native دردسترس ویندوز، کنسولهای ایکس باکس سری ایکس/سری اس و البته کاربران آنها قرار داده است. درباره فناوری Ray Tracing در قسمتهای پیشین تک پدیا صحبت کرده بودیم و با کلیک روی لینک قرار گرفته، میتوانید مقاله مربوطه را مطالعه کنید.
علاوه بر این، DirectX 12 Ultimate دارای فناوری نرخ شیدینگ متغیر است که پیش از این در لیون تک به آن پرداختیم و با کلیک روی لینک قرار گرفته، میتوانید مقاله مربوطه را بخوانید. نرخ شیدینگ متغیر یا Variable Rate Shading به پردازنده گرافیکی شما کمک میکند که منابع و قدرت خود را صرف رندر کردن اجسام و موارد مهمتر درون قاب تصویر کند و علاوه بر افزایش سطح جلوههای بصری، عملکرد و نرخ فریم را نیز بهبود بخشد.
ادامه داستان DirectX 12 Ultimate
همچنین ویژگی و فناوری Sampler Feedback را نیز از یاد نبریم که به صورت خلاصه سعی میکند با اختصاص دادن منابع کمتر، بافتهای با کیفیتی را در بازیها به مخاطب نمایش دهد. DirectX 12 Ultimate به صورت کلی به توسعه دهندگان و بازیسازان کمک میکند که نه تنها بافتهای با کیفیتتر، بلکه نورپردازی واقع گرایانهتری را نیز در بازیهای خود به تصویر بکشند.
از آنجایی که DirectX 12 Ultimate به صورت کامل در ویندوز و ایکس باکسهای نسل جدید پیاده سازی شده، شما میتوانید با داشتن کارت گرافیکی که از آخرین نسخه DirectX پشتیبانی میکند، تفاوتهای فوقالعادهای را نسبت به قبل در عناوین مورد علاقه خود مشاهده نمایید.
نتیجه گیری
DirectX یکی از بهترین و محبوبترین رابطهای برنامه نویسی کاربردی در میان کاربران و توسعه دهندگان کامپیوتر به شمار میآید. امروزه از طراح گرافیکی و صنعتی گرفته تا تدوینگر و گیمر، همه از DirectX استفاده میکنند و با پشتیبانی مثال زدنی مایکروسافت، در هر دوره امکانات و ویژگیهای جدیدی را به دست میآورند.
با این حال، این موضوع را در نظر داشته باشید که این مجموعه رابط برنامه نویسی کاربردی برای رسیدن به جایگاه کنونی خود (DirectX 12 Ultimate)، مسیر پر فراز و نشیبی را پشت سر گذاشته و همیشه به این شکل هیجان انگیز و غنی نبوده است!
پشتیبانی پایدار و با ثبات مایکروسافت از DirectX در طول سالها و نسلهای گذشته، باعث شده تا این مجموعه رابط برنامه نویسی کاربردی همیشه به یکی از گزینههای اصلی توسعه دهندگان نرم افزاری بدل گردد.