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 می باشد . |