Parsi Coders
Directx چیست ؟ - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Graphic (http://parsicoders.com/forumdisplay.php?fid=94)
+--- انجمن: Other (http://parsicoders.com/forumdisplay.php?fid=97)
+--- موضوع: Directx چیست ؟ (/showthread.php?tid=326)



Directx چیست ؟ - Amin_Mansouri - 05-28-2011

در ابتدایی ترین سطح Directx بعنوان یك واسطه بین سخت افزار در كامپیوتر شخصی و خود ویندوز ، بخشی از API ویندوز یا واسطه برنامه نویسی برنامه های كاربردی Application Programming Interface است .
برنامه های بازی و مالتی مدیا جزء رضایت بخش ترین برنامه های كامپیوتری می باشند ، ولی متأسفانه اجرای آنها به شیوه ای مناسب همیشه آسان نیست . علت اول اینكه ساختار كامپیوترهای شخصی هرگز به منظور استفاده بعنوان پایگاهی جهت بازی كردن طراحی نگردیده است . ثانیاً ماهیت طیف گسترده كامپیوترهای شخصی به معنای آن است كه دستگاه یك نفر می تواند بسیار متفاوت با دستگاه دیگری باشد . لذا در حالیكه دستگاه های بازی همگی از سخت افزارهای مشابهی استفاده می كنند ، كامپیوترهای شخصی چنین نیستند : حیطه بسیار وسیع تفاوت های سخت افزاری می تواند دردسر بزرگی برای بازكردن این برنامه ها محسوب شود . جهت رهایی از این دردسر تا حد امكان ، مایكروسافت نیازمند معرفی استانداردی عمومی یا بهتر بگوئیم یك واسطه و میانجی عمومی بین سیستم عامل و هرگونه سخت افزار نصب شده بر روی كامپیوتر بود تا تمام برنامه های بازی و مالتی مدیا بتوانند از آن پیروی كنند . این واسطه عمومی همان Directx است ، یعنی چیزی كه می تواند مانع سردرگمی های بسیاری شود .
Directx واسطه ای است كه وظائف برنامه ریزی خاصی را بسیار ساده تر می سازد ، چه برای پدید آورنده بازی و چه برای ما كه فقط می خواهیم بنشینیم و آخرین بازی پرفروش را بازی كنیم . لیكن قبل از ینكه بتوانیم Directx و چگونگی كاركرد آن را توضیح دهیم ، لازم است به تاریخچه آن نگاهی بیندازیم .

تاریخچه Directx
هر بازی نیاز به اجرای وظائف خاصی بصورت مكرر دارد . بازی نیازمند زیر نظر داشتن و كنترل داده های ورودی شما از طریق ماوس ، جوی استیك و یا یك بورد بوده و همچنین نیاز به نمایش تصاویری بر روی صفحه مانیتور و اجرای اصوات و موسیقی دارد . این تقریباً توصیف هر بازی در ساده ترین سطح آن است .
حال تصور كنید كه این امر برای برنامه نویسانی كه در ساختارهای كامپیوتر شخصی پیش از ویندوز اقدام به برنامه نویسی می كردند تا چه حد باور نكردنی و پیچیده بود .
لازم بود هر برنامه نویس روشی مختص به خود جهت خواندن كی بورد و یاحتی ردیابی اینكه آیا اصلاً جوی استیكی به سیستم متصل است یا خیر بنویسد ، چه برسد به اینكه بتوان از آن جهت باز كردن استفاده نمود . اعمال تكراری خاصی مورد نیاز بود تا بتوان حتی ساده ترین نوع تصویر را در صفحه نمایشگر نمایش داد و یا حتی صدایی ساده را اجرا نمود .
اساساً ، برنامه نویسان بازی ها در سطحی بنیادی با سخت افزار كامپیوتر كار می كنند . هنگامی كه مایكروسافت ویندوز را معرفی نمود ، جهت برقرای ثبات و موفقیت پایگاه كامپیوتر شخصی ضروری بود تا كارها قدری برای برنامه نویسان و بازیكنان ساده تر شود .
چه كسی حاضر بود زحمت نوشتن بازی برای ماشینی را بكشد كه در آن هر بار كه قصد كار بر روی بازی جدیدی را داشت ، می بایست همه چیز را از نو بنویسد ؟
ایده مایكروسافت ساده بود : كار كردن مستقیم برنامه نویسان با سخت افزار را متوقف كرده و بجای آن یك toolkit عمومی بسازد كه بتوانند آن را مورد استفاده قرار دهند . پس Directx متولد شد .

چطور كار می كند ؟
در ابتدایی ترین سطح Directx بعنوان یك واسطه بین سخت افزار در كامپیوتر شخصی و خود ویندوز ، بخشی از API ویندوز یا واسطه برنامه نویسی برنامه های كاربردی Application Programming Interface است .
برای مثال هنگامی كه نویسنده یك برنامه بازی می خواهد یك فایل صوتی اجرا شود ، صرفاً فراخوانی (call) به تابع كتابخانه (library function) صحیح می باشد . هنگامی كه بازی اجرا می شود ، عملكرد مزبور Directx API را فرا می خواند كه به نوبه خود فایل صوتی را به اجرا در می آورد . برنامه نویس به دانستن نوع كارت صدایی كه با آن سروكار دارد ، توانائی های كارت مزبور و چگونگی مكالمه با آن نیاز ندارد . ماكروسافت Directx را فراهم آورده است و سازنده كارت صدا نیز درایوی كه توان اجرای Directx را داشته باشد فراهم كرده است . برنامه نویس تقاضای صدایی كه باید اجرا شود را می نماید و صوت مزبور اجرا می شود بدون توجه به دستگاهی كه صدا بر روی آن باید اجرا شود .
از دیدگاه ما بعنوان بازیكنان نیز Directx اوضاع را بطرز غیر قابل باوری تسهیل می نماید ، حداقل بصوت تئوری . شما كارت صدای جدیدی را جایگزین كارت قدیمی تان می كنید و كارت جدید به همراه درایو می آید . دفعه بعد كه بازی مورد علاقه خود را بازی كردید ، هنوز می توانید صداها و موسیقی آن را شنیده و ناچار به انجام هیچگونه تغییرات پیكربندی پیچیده ای نمی باشید .
در ابتدا ، Directx زندگی خود را بعنوان یك Toolkit ساده آغاز نمود : سخت افزارهای اولیه محدود بوده و صرفاًَ گرافیكی بسیار ابتدایی مورد نیاز بود . با تكامل نرم افزارها و سخت افزارها از نظر پیچیدگی ، Directx نیز تكامل یافت .
اكنون Directx بسیار بیشتر از یك Toolkit گرافیكی بوده و اصطلاح مزبور ، در بر گیرنده گزیده گسترده ای از روتین ها می باشد . برای مثال روتین DirectInput می تواند با همه گونه ابزار ورودی از ماوس دو دكمه ای گرفته تا جوی استیك های پیچیده مخصوص عملیات پرواز سروكار داشته باشد و سایر بخش ها شامل DirectSound برای ابزارهای صوتی است و DirectPlay كه یك Toolkit برای بازی های چند بازیكنی Online فراهم آورده است .

نسخه های Directx
نسخه فعلی Directx در زمان نوشتن این مقاله Directx ۹.۰c است . این واسطه بر روی كلیه نسخ ویندوز از ویندوز ۹۸ گرفته تا ویندوز سرور ۲۰۰۳ به همراه كلیه نسخ فی مابین آن ها اجرا می گردد . لیكن این Toolkit بر روی ویندوز ۹۵ اجرا نمی شود : اگر دستگاهی دارید كه روی آن ویندوز ۹۵ نصب شده است ، ناچارید به استفاده از نسخه قدیمی تر و كم توان تر ۸.۰a می باشید . ویندوز NT۴ نیز نیازمند نسخه خاص خودش است كه در این مورد خاص Directx ۳.۰a است .
با این همه نسخ متفاوت Directx كه طی سنوات متمادی در دسترس قرار گرفته است ، ردیابی نسخه هایی كه به آن ها نیاز دارید مشكل و مشكل ترمی شود . در تمام موارد به جز موارد بسیار نادر ، كلیه نسخ Directx قابلیت سازگاری با نسخ قدیمی تر را نیز دارند . یعنی بازی هایی كه می گویند نیازمند Directx ۷ هستند ، به راحتی با نسخه های جدید تر نیز اجرا خواهند گردید ، ولی با نسخ قدیمی تر خیر . بسیاری از عناوین جدید بازی ها بطور دقیق اعلام می نمایند كه نیازمند Directx ۹ بوده و بدون نصب دقیقاً آخرین نسخه آن ، اجرا نخواهد گردید . این امر بخاطر آن است كه بازی های مزبور از ویژگی های جدیدی كه با این نسخه معرفی گردیده است ، استفاده می نمایند . البته دیده شده كه برنامه نویسان تنبل نیز گاهی آخرین نسخه Directx را بعنوان نسخه مورد نیاز بازی خود معرفی می كنند ، در حالیكه بازی مورد بحث از هیچ كدام از موارد تقویت یافته جدید استفاده نمی كند . لیكن بطور كلی ، اگر عنوان یك بازی به نسخه ای از Directx به اینصورت پیوند خورده باشد ، قبل از اینكه بتوانید بازی كنید ، لازم است Directx خود را ارتقاء دهید .
اصلاحات انجام گرفته در ریشه كد Directx بدین معناست كه ممكن است حتی در بعضی از بازی ها بهبودهایی را پس از ارتقاء به آخرین نسخه ساخته شده از Directx ، مشاهده نمایید . دان لود و نصب Directx نیز نباید چندان پیچیده باشد .

ارتقاء Directx
كلیه نسخ قابل دسترس ویندوز به هرماه شكلی از Directx بعنوان جزئی از هسته (core) سیستم ، كه قابل حذف نمی باشد می آیند .
لیكن بسیاری از بازی های جدید نیازمند آخرین نسخه Directx جهت اجرای كامل و یا اصولاً هر گونه اجرایی می باشند .
عموماً بهترین محل جهت نصب آخرین نسخه Directx ، بخش اختصاص یافته به آن در سایت اینترنتی مایكروسافت می باشد كه در آدرس


یافت می شود . در هنگام چاپ این مقاله ، آخرین نسخه در دسترس برای دان لود عمومی نسخه Directx.۹.۰c بود . می توانید یك installer ساده را دان لود كنید كه هنگام نصب به نوبه خود آن اجرایی كه سیستم جهت ارتقاء نیاز دارد را دان لود می نماید و یا بسته نرم افزاری توزیع شده را بطور كامل جهت نصب Offline بعدی دان لود نمائید .
منبع خوب دیگر برای Directx خود بازی ها هستند . اگر بازی به نسخه خاصی از Directx نیاز داشته باشد ، نسخه مزبور روی CD نصب بازی خواهد بود و ممكن است حتی بطور خودكار توسط Installer بازی روی سیستم نصب گردد .

تشخیص علت مشكلات
تشخیص علت مشكلات نصب Directx می تواند مشكل ساز باشد ، بخصوص اگر ندانید كدامیك از اجزاء آن سبب از كار افتاده بازی جدیدی شده است كه به تازگی خریداری نموده اید .
خوشبختانه ، مایكروسافت یوتیلیتی مفید بنام Directx Diagnostic Tool را فراهم كرده ، هر چند كه آن را مشخص نساخته است . این ابزار را در هیچ نسخه ای از ویندوز در منوی Start نمی توانید بیابید ، و هر نسخه ویندوز نیز ابزار مزبور را در جایی متفاوت با سایر ویندوزها نصب كرده است .
راحت ترین راه استفاده از این ابزار چنین است كه كادر محاوره RUN را در منوی Start باز و در آن dxdiag را تایپ و سپس روی OK كلیك كنید . هنگامی كه این برنامه برای اولین بار بارگذاری می شود ، چند ثانیه ای طول می كشد تا نسخه نصب شده Directx را بررسی كرده و مشكل را بیابد .
ابتدا برگه Directx File اطلاعاتی راجع به هر یك از فایل هایی كه نسخه نصب شده مورد استفاده قرار می دهد را نشان می دهد .
بخش Notes در ذیل برگه مزبور نیز ارزش بررسی را دارد ، زیرا فایل های مفقودی یا معیوب در اینجا علامتگذاری می گردند .
برگه هایی كه علامت های Display ، Music ، Input و Network را دارند ، همگی با مناطق خاص همنام خود در Directx مرتبط می باشند و بجز برگه Input ابزارهایی را جهت آزمایش عملكرد صحیح برروی سخت افزار دستگاه در اختیارتان می گذارند . نهایتاً برگه Move Help روشی مفید جهت شروع Directx Troubleshooter را فراهم می آورد كه ابزار حل مشكل خط ساده مایكرو سافت برای بسیاری از موارد معمول و عمومی Directx می باشد .