ورود

نسخه کامل مشاهده نسخه کامل : آشنایی با واسط نرم افزاری Directx 10



glc_engineer
14-12-2007, 16:15
lشنایی با واسط نرم افزاری Directx 10


DirectX10‎ وWindows Graphic Foundation 2.0 ‎ اسامی هستند که میتوانند انقلاب جدیدی را در گرافیک های سه بعدی و بازی های ‏پیشرفته کامپیوتری نوید دهند. هنگام عرضه Windows Vista‏ در ابتدای سال جاری میلادی ما شاهد حضور ‏API‏ جدید شرکت ‏Microsoft‏ یعنی DirectX 10‎‏ بودیم که استانداردهای موجود برای پردازش سه بعدی و تجربه چند رسانه ای کاربران را به سطح جدیدی ارتقأ ‏داده است.هرچند زمان زیادی از معرفی ‏DirectX 10‎‏ می گذرد، اما ناگفته های زیادی در رابطه با این ‏API‏ بنیادی وجود دارد که ‏در این مقاله به بررسی آنها پرداخته شده است.‏




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

glc_engineer
14-12-2007, 16:44
حافظه مجازی در ‏DirectX 10‎API‏ یا واسط نرم افزاری ‏DirectX‏ از مجموعه ای از اینترفیس ها تشکیل شده است که مشخص میکنند توسعه دهندگان ‏بازی ها و نرم افزارهای مختلف چگونه باید با سخت افزار به صحبت بپردازند. نوشتن یک برنامه برای یک ‏API‏ استاندارد بسیار ‏ساده تر از نوشتن و بهینه سازی همان برنامه برای اجرا بر روی سخت افزارهای خاص است. به منظور هرچه یکپارچه تر کردن ‏سخت افزار و نرم افزار، مایکروسافت یک بازنگری کلی را بر روی ‏DirectX‏ اعمال کرده است. از آنجایی که این ‏API‏ در طول ‏زمان حیاط ‏Windows Vista‏ به عنوان پایه و اساس توسعه و اجرای هر نرم افزار و یا سخت افزار جدیدی مورد استفاده قرار ‏خواهد گرفت، ‏Microsoft‏ سعی کرده است با ارایه برخی از مشخصات پیشرو و کاملا جدید و علاوه بر آن ساده سازی این ‏API‏ به برنامه نویسان امکان دهد تا با سرعت و سهولت بتوانند با دریافت حداکثر کارایی از سخت افزارهای ‏PC‏ ،نرم افزارها و ‏بازی هایی با کیفیت و کارایی بالا را طراحی کنند.

glc_engineer
14-12-2007, 16:44
Direct3D‏ قسمتی از ‏DirectX‏ است که مستقیما بر اجرا و عملکردهای نرم افزارهای سه بعدی نظارت دارد. در حقیقت ‏مهمترین بخش ‏DirectX‏ ، ‏Direct3D‏ است. بزرگترین تحولات صورت گرفته در ‏DirectX10‎‏ نیز مستقیما به ‏Direct3D‏ مربوط می ‏شود. ‏Direct3D10‎‏ با یکپارچه کردن دستورالعمل ها و استاندارد نمودن مشخصات سایه زن های قابل برنامه نویسی، برنامه ‏نویسان را از شر سایه زن هایی که هر سازنده به صورت اختصاصی طراحی و روانه بازار میکرد رها میسازد. بعلاوه مایکروسافت ‏در مدل درایورهای مربوط به کارت های گرافیک و نمایشگرها نیز تجدید نظر کرده است. به این خاطر که در Windows Vista‏ تمام دسک تاپ به صورت سه بعدی به نمایش در می آید، کارت گرافیک دیگر تنها برای بازی کردن مورد ‏استفاده قرار نمی گیرد. هنگامی که شما یک صفحه نمایش سه بعدی دارید و هر برنامه را در صفحه سه بعدی مربوط به ‏خودش اجرا می کنید، درایورها کارت گرافیک باید به اندازه کافی با ثبات و انعطاف پذیر باشد تا بتواند نقش پردازنده گرافیکی را ‏افزایش دهد. به همین منظور مایکروسافت تصمیم گرفته است تا درایورها را به دو بخش مجزا تقسیم نماید. یک بخش برای ‏اجرای دسک تاپ و بخش دیگر برای اجرای نرم افزارها و بازی های سه بعدی. این تقسیم بندی برای افزایش ثبات زیر ‏سیستم گرافیکی طراحی شده است و به سیستم عامل امکان میدهد حتی در صورتی که یک برنامه کاربردی و یا بازی سه ‏بعدی به علت خطاهای نرم افزاری و یا سخت افزاری متوقف میشود، همچنان و با وجود یک دسک تاپ کاملا سه بعدی قابل ‏استفاده و با ثبات باقی بماند. وجود چنین نوآوری هایی همچنین به این معنی است که مایکروسافت ‏DirectX10‎‏ را برای ‏Windows XP‏ ارایه نخواهد کرد، به خاطر اینکه بسیاری از پیشرفت های صورت گرفته در ‏Direct3D10‎‏ مستقیما به مشخصات ‏مدل جدید درایور کارت گرافیک ‏Windows Vista‏ نیاز خواهد داشت.‏استفاده وسیع تر از توانایی های کارت گرافیکی برای اجرای کاربردهای مختلف، نیاز به اختصاص منابع سیستمی بیشتر از ‏سوی سیستم عامل به آن را دارد. سیستم عامل باید به کاربردها امکان دهد تا بتوانند سخت افزار را به نحو موثرتری به ‏اشتراک بگذارند. بزرگترین تغییر در این زمینه در ‏Windows Vista‏ تکنولوژیی است که با نام ‏Virtualized Memory‏ و یا حافظه ‏مجازی شناخته می شود. از این پس کارت گرافیک فضای حافظه اختصاصی خود را در حافظه سیستم خواهد داشت. این ‏حافظه اختصاصی میتواند برای ذخیره داده هایی که دارای اندازه بزرگتر از حافظه محلی کارت گرافیک هستند مورد استفاده ‏قرار گیرد. هم اکنون کارت های گرافیکی گران قیمت و سطح بالا معمولا با حافظه هایی به میزان 256 یا 512 مگابایت عرضه ‏میشوند. اما بازی ها میتوانند به سادگی تمامی حافظه موجود را برای ذخیره قطعات بسیار بزرگ داده، مانند بافت های با ‏وضوح بسیار بالا، مورد استفاده قرار دهند.

glc_engineer
14-12-2007, 16:45
مدیر عامل شرکت ‏Epic Games‏ که به تازگی موتور بسیار قدرتمند ‏Unreal Engine 3.0 ‎‏ را معرفی کرده و در حال توسعه ‏عناوین معروفی چون ‏UT2007‎‏ و ‏Gears OfWar‏ میباشد، در این باره میگوید:
‏«تکنولوژی هایی مانند بافت گذاری مجازی ‏‎(Virtual Texturing)‎‏ میتواند گلوگاه های مرتبط با اندازه بافت ها را در حافظه های ‏گرافیکی بر طرف نماید. اندازه بافت هایی را که ما در ‏DirectX9.0‎‏ میتوانستیم با حفظ کارایی کامل استفاده کنیم به وسیله ‏حجم حافظه محلی کارت گرافیکی محدود شده بود، اما در ‏DirectX10‎‏ حجم آنها تنها توسط اندازه حافظه سیستم محدود ‏خواهد شد. او توضیح میدهد که با در اختیار داشتن چنین امکاناتی، سطح استفاده از بافت ها در بازی ها و نرم افزارهای سه ‏بعدی بین 2 تا 4 برابر افزایش خواهد یافت که این برای کسانی که از موتور ‏UnrealEngine 3.0‎‏ برای توسعه بازی های خود ‏استفاده میکنند بسیار عالی است. هرجا که طراح بخواهد میتواند از بافت هایی با کیفیت و وضوح بالا، برای مثال در وضوح ‏‎2048x2048‎‏ پیکسل، استفاده کند و سپس آنها را برای اجرا بر روی سیستم های با قدرت پایین تر به اندازه های کوچکتری ‏مقیاس دهی کند.»‏کارت های گرافیکی برای تطابق با استدانداردهای ‏DirectX 10‎‏ و افزایش کارایی نیاز به رعایت نکات دقیقی دارند. کارت های ‏گرافیک باید دارای مجموعه کاملی از مشخصات باشند تا بتوانند تاییدیه های ‏DirectX 10‎‏ را بدست آورند. البته این استاندارها ‏به طور کامل با آنچه که در نسل فعلی کارت های گرافیکی شاهد ان هستیم متفاوت نخواهند بود. برای مثال کارت هایی که از ‏DirectX 9.0c‏ و یا سایه زن های نسخه 2 پشتیبانی کنند میتوانند از بسیاری از توابع موجود در ‏DirectX 10‎‏ نیز پشتیبانی کنند. ‏اما ‏Microsoft‏ مشخصه های کاملا دقیقی را اعلام کرده است تا سازندگان مختلف پردازنده های گرافیکی مجبور به ساخت ‏سخت افزارهای سازگار با یکدیگر شوند. برای مثال تفاوت های موجود در واحد های ممیز شناور پردازنده های گرافیکی ‏مختلف شرکت های ‏ATI‏ و ‏nVIDIA‏ توسعه دهندگان بازی را برای سازگار کردن موتور بازی با هر دو نوع پردازنده گرافیکی تحت ‏فشار قرار میداد، اما مشخصه های تعریف شده در ‏DirectX 10‎‏ کمک بزرگی به حذف اینگونه ناسازگاری ها در سخت افزارهای ‏مختلف و در نتیجه کاهش هزینه و زمان توسعه نرم افزار برای کار با آنها خواهد کرد.‏