,مولفههای DirectX,مولفههای DirectX,1- اولین مولفهی مهم، Direct Graphics است که خود از چندین ملحقه تشکیل گردیده:
-DirectDraw: این رابط در قدیم جدا بود و از زمان دایرکتایکس 8 داخل مولفه دایرکت گرافیکز گردید. برای رندر کردن گرافیکهای 2 بعدی استفاده میشود. در حال حاظر کمتر کسی برای بازیها از آن استفاده میکند، اما برنامههایی هستند که هنوز احتیاج ملزم به آن دارند.
-Direct3D: برای رندر کردن گرافیکهای 3 بعدی به کار میرود. در آخرین نسخهی این رابط، مرحلهی کاری این رابط ابتدا 1- همگذاری کردن اطلاعات برنامه، سپس 2- سایهزنی(شیدینگ، اکثرا درینجا یعنی شکل دادن و صرفا معنی “سایهزنی” نمیدهد) آنها، بعد 3- سایهزنی چندضلعیها و خطوط داده شده، 4- ذخیرهی این مراحل و بعد 5- کانورت کردن موارد داده شده به پیکسل، 6- دادن آنها به پیکسل شیدر خود و بعد 7- الحاق اطلاعات به هم قبل از اجرای آنها روی صفحه.
-DXGI: این رابط برای اولین بار به دایرکتایکس 10 اضافه گردیده بود و کار آن مبادلات سخت افزاری Direct3D است.
2- Direct Input: رابط سختافزارهای متصل شده مانند کیبورد، موس، جویستیک و یا کنترلرهای دیگر از جمله کنترلر X360.
قابل ذکر است که کنترلرهای X360 توسط زیرمجموعهی این رابط(که جداست اما زیرمجموعه حساب میآید)، یعنی XInput با کامپیوتر رابطه برقرار میکند.
3- DirectPlay: این رابط برای ارتباطهای محلی یا اینترنتی بازیهای کامپیوتری به کار میرود. در حال حاظر این رابط تنها در Xbox360 به حد اعلی یعنی تمامی امکانات رابط، استفاده میشود و در کامپیوتر تنها بازیهایی که مختص ویندوز هستند از همهی جنبات این رابط بهره میبرند.
4- DirectSound: مسئول ارتباط کارت صدای کامپیوتر با نرم افزار، که در بازیهای کامپیوتری که صدای سه بعدی دارند از DirectSound3D استفاده میشود.
5-DirectMusic: نرم افزارهای موسیقی که از این رابط استفاده میکنند، میتوانند از امکانات آن یعنی افکتهای اضافه روی موسیقی، و همچنین با کیفیت تر بودن موسیقی در آن نرم افزار استفاده کنند.
6-DirectX Media: برای رسانههای تحت وب، مثل کلیپهای فلش و غیره به کار میرود. از سال 2005 ببعد زیرمجموعه ی مخصوص این رابط یعنی DirectShow در بستهی رابط دیگر مایکروسافت عرضه میشود.
7-DirectX Media Objects: برای انکودرها، دیکودرها و افکتها به کار میرود.
8- DirextX Setup: برای نصب و ارتقاء دایرکتایکس، گرچه این کار را دستی نیز میتوان انجام داد.
,تاریخچهی DirectX,تاریخچهی DirectX,در اواخر سال 1994، مایکروسافت در حال آماده کردن سیستم عامل جدید خود، یعنی Windows 95 بود. فاکتور راضی بودن مشتری از این سیستم عامل، متنوع بودن دامنهی نرمافزارهایی بود که میتوانست در آن سیستم عامل اجرا شود. سه عدد از کارکنان میکروسافت، کریگ آیسلر، الکس سن جانسون، و اریک انگسترام مضطرب بودند زیرا برنامهنویسان سیستمعامل قبلی یعنی MS-DOS را جهت بازیهای کامپیوتری بهتر میدانستند و امید کمی برای عرضهی بازی روی ویندوز 95 بود.
علت مسئله ی ذکر شده این بود که DOS اجازهی دسترسی مستقیم به کارتهای تصویری، کیبورد، موس و دستگاههای صدا را میداد، حال آنکه ویندوز 95 ازین لحاظ در مضیقه بود. بنابراین سه برنامه نویس فوق الذکر دایرکت ایکس را برای حل این مشکل طراحی کردند. البته گروه تست این نرم افزار نیز نباید فراموش شود.
در حالی که OpenGL تمرکز را روی سخت افزارهای بالا، و امور مهندسی و CAD معطوف کرده بود Direct3D توانست با تمرکز بر روی بازیهای کامپیوتری و سخت افزار خردتر، تعارف بیشتری یابد. به این خاطر، با اینکه مایکروسافت OpenGL را روی سیستمعامل دیگر خود ویندوز NT به کار نیز برده بود رقابتی بین این دو رابط نرمافزاری به پا افتاد.
نسخهی کنسولی این رابط، که روی Xbox و Xbox 360 استفاده میشود، با همکاری شرکت nVdidia ساخته شده است(این شرکت پرسسور گرافیکی اولین کنسول را ساخته بود). دلیل نامگذاری Xbox نیز همین است که در ابتدا، DirectXbox نام گرفته بود اما بعدا نام آن به Xbox تقلیل یافت.
تاریخچه ی عرضهی DirectX
1- DirectX 1.0
شمارهی ورژن: 4.02.0095
تاریخ عرضه: سپتامبر 1995
2- DirectX 2.0
سال 1996 به صورت محدود
3- DirectX 2.0a
ورژن:4.03.00.1096
تاریخ عرضه: ژوئن 1996
روی ویندوز 95 نسخه ی OCR و ویندوز NT
4- DirectX3
سال عرضه: 1996
5-DirectX 3.0a:
روی سرویس پک 3 ویندوز NT عرضه شد.
6- DirectX 3.0b:
همان 3.0a با حل مشکلات.
7- DirectX 4.0:
هرگز عرضه نشد. علت آن عرضه ی همزمان نسخه ی 5.0 بود.
8- DirectX 5.0:
تنها روی ویندوز NT 5.0 عرضه شد.
9- DirectX 5.2:
برای ویندوز 95 عرضه شد و ورژن دیگر آن برای ویندوز 98.
10- DirectX 6.0:
برای کنسول دریمکست، حال آنکه سگا در همکاری با مایکروسافت ضربه خورد.
11- DirectX 6.1a:
مخصوص نسخهی سکند ادیشن ویندوز 98
12- DirectX 7.0:
برای ویندوز 2000.
13- DirectX 7.0a:
همینگونه.
14- DirectX 7.1:
روی ویندوز میلنیوم عرضه شد.
15- DirectX 8.0a:
آخرین دایرکت ایکسی بود که روی ویندوز 95 نیز کار میکرد.
16- DirectX 8.1:
برای ایکس باکس، ویندوز اکس پی، و ویندوز سرور.
17- DirectX 8.1a:
آپدیتی برای دایرکت 3D(فایل d3x.dll همواره فایل مخصوص دایرکت تری دیست که x در آن نسخه ی رابط میباشد)
18- DirectX 8.1b:
فایلهای دایرکت شو برای ویندوز 2000.
19- Directx 8.2:
نسخه ی آپدیت شده ی دایرکت پلی را داشت.
20- DirextX 9.0:
برای ویندوز ایکسپی
21- DirectX 9.0c:
برای ویندوز ایکسپی سرویس پک 2.
22- DirectX 10:
برای ویندوز ویستا.,OpenGL,OpenGL,106875160px-OpenGL_logo.svg.png,OpenGL یا Open Graphics Libarary، رابطیست که در سال 1992 توسط Silicion Graphics ساخته شد. اوپن جیال بیتشر تمرکز خود را روی موضوعات مهندسی، CAD و علمی گذارده و بهای کمتری به بازیهای کامپیوتری میدهد. حال روی کنسولها بیشتر استفاده میشود.
هدف اصلی این رابط دو چیز است:
1- از بین بردن پیچیدگی ساخت برای دو سختافزار متفاوت.
2- از بین بردن اجحاف امکانات متفاوت سختافزارها.
کارهای اصلی این رابط متشکل است از:
محو کردن خطوط کاری
محورهای انتقالی و نوری
Z-Buffering
نگاشتن بافتها
Alpha Blending
در هرکدام ازین قسمتها، اوپن جیال با انجام عملی خاص روی سطوح، آنها را منظم میکند و فریم بافر متحرک را بهسازی میکند.
,مقایسهی OpenGL و DirectX,مقایسهی OpenGL و DirectX,1- دایرکتایکس مختص پلتفورمهای مایکروسافت است، در حالی که اوپن جیال پلتفورمهای مختلفی را طی کرده است از جمله سیستم عاملهای یونیکس محور مانند Mac OS X، لینوکس، و PlayStation 3. اوپن جیال در سه کنسول Nintendo GameCube، Nintendo Ds و PlayStation Portable به عنوان رابط عمل میکند. نوعی از اوپن جیال در Nintendo Wii وجود دارد. iPhone و سیستم عامل Symbian هردو برای اجرای گرافیک از این رابط استفاده میکنند. همینطور ویندوز ویستا نیز میتواند از این رابط استفاده کند.
2- اولین نسخهی Direct3D مشکلات عدیده داشت، زیرا حتی اعمال ساده نیز احتیاج به آبجکتهایی به نام “execute buffers” داشتند. در حالی که اوپن جیال با تغییرات تک تابعه کار خود را پیش میبرد. سازندگانی همچون جان کارمک، رییس ID Software از مایکروسافت به این خاطر شکایت داشتند اما با تغییر رویهی دایرکت تریدی در نسخههای بعدی، جان کارمک نیز نظر خود را نسبت به آن کمی عوض کرد. اما اوپن جیال همواره سازگارتر از دایرکتایکس بوده و هست.
3- از لحاظ کارایی، دو رابط سیر متفاوتی را طی میکنند. کارایی DirectX گوناگونتر، اما اوپن جیال نسخههای گوناگونتر دارد. همانطور که گفته شد اوپن جیال در حال حاظر بیشتر تمرکز روی کارهای حرفهای دارد، اما دایرکتایکس بیشتر بازیهای ویندوز را مورد توجه قرار داده است.
4- خلاصتا، اوپن جیال پایه و اساسی قدرتمندتر از دایرکتایکس دارد.
5- از لحاظ مصرف کنندگان، همانطور که گفته شد مصرف کنندگان اوپن جیال، بیشتر برای کارهای حرفهایتر سراغ آن میروند، اما دایرکتایکس مصرفکنندگانی متوسطتر دارد.,معرفی رابطهای نرمافزاری DirectX و OpenGL,معرفی رابطهای نرمافزاری DirectX و OpenGL,رابط نرمافزاری چیست؟
رابط نرمافزاری یا Application Programming Interface مجموعهایست از توابع، روشها، اسلوبها، کلاسها و یا پروتوکولها که یک سیستم عامل، یا یک سرویس از آن استفاده میکند تا به احتیاجات برنامههای آن سرویس یا سیستم عامل پاسخ دهد.
دو نوع رابط نرم افزاری وجود دارد، رابطهای زبانمحور تنها به زبان برنامهنویسی خاصی وابستهاند.
و رابطهای مستقل از زبان. آنها به گونهای نوشته شدهاند که میتوان گفت چندین زبان برنامهنویسی در آنها شرکت دارد. این نوع رابطها بیشتر برای سرویسها به کار میروند.
بازیهای کامپیوتری احتیاج مبرمی به این رابطها دارند. در زیر ما دو رابط که متعارفا از آن استفاده میشود معرفی میکنیم.