Admin
7th September 2008, 07:34 PM
http://alladin.persiangig.com/image/site/dx_logo_mini_article.jpg ناگفته هاي DirectX10 از ديدگاه سخت افزاري
DirectX10 وWindows Graphic Foundation 2.0 اسامي هستند كه ميتوانند انقلاب جديدي را در گرافيك هاي سه بعدي و بازي هاي پيشرفته كامپيوتري نويد دهند. هنگام عرضه Windows Vista در ابتداي سال جاري ميلادي ما شاهد حضور API جديد شركت Microsoft يعني DirectX 10 بوديم كه استانداردهاي موجود براي پردازش سه بعدي و تجربه چند رسانه اي كاربران را به سطح جديدي ارتقأ داده است.هرچند زمان زيادي از معرفي DirectX 10 مي گذرد، اما ناگفته هاي زيادي در رابطه با اين API بنيادي وجود دارد كه در اين مقاله به بررسي آنها پرداخته شده است.
حافظه مجازي در DirectX 10
API يا واسط نرم افزاري DirectX از مجموعه اي از اينترفيس ها تشكيل شده است كه مشخص ميكنند توسعه دهندگان بازي ها و نرم افزارهاي مختلف چگونه بايد با سخت افزار به صحبت بپردازند. نوشتن يك برنامه براي يك API استاندارد بسيار ساده تر از نوشتن و بهينه سازي همان برنامه براي اجرا بر روي سخت افزارهاي خاص است. به منظور هرچه يكپارچه تر كردن سخت افزار و نرم افزار، مايكروسافت يك بازنگري كلي را بر روي DirectX اعمال كرده است. از آنجايي كه اين API در طول زمان حياط Windows Vista به عنوان پايه و اساس توسعه و اجراي هر نرم افزار و يا سخت افزار جديدي مورد استفاده قرار خواهد گرفت، Microsoft سعي كرده است با ارايه برخي از مشخصات پيشرو و كاملا جديد و علاوه بر آن ساده سازي اين API به برنامه نويسان امكان دهد تا با سرعت و سهولت بتوانند با دريافت حداكثر كارايي از سخت افزارهاي PC ،نرم افزارها و بازي هايي با كيفيت و كارايي بالا را طراحي كنند.
Direct3D قسمتي از DirectX است كه مستقيما بر اجرا و عملكردهاي نرم افزارهاي سه بعدي نظارت دارد. در حقيقت مهمترين بخش DirectX ، Direct3D است. بزرگترين تحولات صورت گرفته در DirectX10 نيز مستقيما به Direct3D مربوط مي شود. Direct3D10 با يكپارچه كردن دستورالعمل ها و استاندارد نمودن مشخصات سايه زن هاي قابل برنامه نويسي، برنامه نويسان را از شر سايه زن هايي كه هر سازنده به صورت اختصاصي طراحي و روانه بازار ميكرد رها ميسازد. بعلاوه مايكروسافت در مدل درايورهاي مربوط به كارت هاي گرافيك و نمايشگرها نيز تجديد نظر كرده است.
به اين خاطر كه در Windows Vista تمام دسك تاپ به صورت سه بعدي به نمايش در مي آيد، كارت گرافيك ديگر تنها براي بازي كردن مورد استفاده قرار نمي گيرد. هنگامي كه شما يك صفحه نمايش سه بعدي داريد و هر برنامه را در صفحه سه بعدي مربوط به خودش اجرا مي كنيد، درايورها كارت گرافيك بايد به اندازه كافي با ثبات و انعطاف پذير باشد تا بتواند نقش پردازنده گرافيكي را افزايش دهد. به همين منظور مايكروسافت تصميم گرفته است تا درايورها را به دو بخش مجزا تقسيم نمايد. يك بخش براي اجراي دسك تاپ و بخش ديگر براي اجراي نرم افزارها و بازي هاي سه بعدي. اين تقسيم بندي براي افزايش ثبات زير سيستم گرافيكي طراحي شده است و به سيستم عامل امكان ميدهد حتي در صورتي كه يك برنامه كاربردي و يا بازي سه بعدي به علت خطاهاي نرم افزاري و يا سخت افزاري متوقف ميشود، همچنان و با وجود يك دسك تاپ كاملا سه بعدي قابل استفاده و با ثبات باقي بماند. وجود چنين نوآوري هايي همچنين به اين معني است كه مايكروسافت DirectX10 را براي Windows XP ارايه نخواهد كرد، به خاطر اينكه بسياري از پيشرفت هاي صورت گرفته در Direct3D10 مستقيما به مشخصات مدل جديد درايور كارت گرافيك Windows Vista نياز خواهد داشت.
استفاده وسيع تر از توانايي هاي كارت گرافيكي براي اجراي كاربردهاي مختلف، نياز به اختصاص منابع سيستمي بيشتر از سوي سيستم عامل به آن را دارد. سيستم عامل بايد به كاربردها امكان دهد تا بتوانند سخت افزار را به نحو موثرتري به اشتراك بگذارند. بزرگترين تغيير در اين زمينه در Windows Vista تكنولوژيي است كه با نام Virtualized Memory و يا حافظه مجازي شناخته مي شود. از اين پس كارت گرافيك فضاي حافظه اختصاصي خود را در حافظه سيستم خواهد داشت. اين حافظه اختصاصي ميتواند براي ذخيره داده هايي كه داراي اندازه بزرگتر از حافظه محلي كارت گرافيك هستند مورد استفاده قرار گيرد. هم اكنون كارت هاي گرافيكي گران قيمت و سطح بالا معمولا با حافظه هايي به ميزان 256 يا 512 مگابايت عرضه ميشوند. اما بازي ها ميتوانند به سادگي تمامي حافظه موجود را براي ذخيره قطعات بسيار بزرگ داده، مانند بافت هاي با وضوح بسيار بالا، مورد استفاده قرار دهند.
http://www.pcinpact.com/images/bd/news/9934.jpg
تصویری ساخته شده توسط Unreal Engine 3 برپایه DirectX 10
مدير عامل شركت Epic Games كه به تازگي موتور بسيار قدرتمند Unreal Engine 3.0 را معرفي كرده و در حال توسعه عناوين معروفي چون UT2007 و Gears Of War ميباشد، در اين باره ميگويد:
«تكنولوژي هايي مانند بافت گذاري مجازي (Virtual Texturing) ميتواند گلوگاه هاي مرتبط با اندازه بافت ها را در حافظه هاي گرافيكي بر طرف نمايد. اندازه بافت هايي را كه ما در DirectX9.0 ميتوانستيم با حفظ كارايي كامل استفاده كنيم به وسيله حجم حافظه محلي كارت گرافيكي محدود شده بود، اما در DirectX10 حجم آنها تنها توسط اندازه حافظه سيستم محدود خواهد شد. او توضيح ميدهد كه با در اختيار داشتن چنين امكاناتي، سطح استفاده از بافت ها در بازي ها و نرم افزارهاي سه بعدي بين 2 تا 4 برابر افزايش خواهد يافت كه اين براي كساني كه از موتور Unreal Engine 3.0 براي توسعه بازي هاي خود استفاده ميكنند بسيار عالي است. هرجا كه طراح بخواهد ميتواند از بافت هايي با كيفيت و وضوح بالا، براي مثال در وضوح 2048x2048 پيكسل، استفاده كند و سپس آنها را براي اجرا بر روي سيستم هاي با قدرت پايين تر به اندازه هاي كوچكتري مقياس دهي كند.»
كارت هاي گرافيكي براي تطابق با استدانداردهاي DirectX 10 و افزايش كارايي نياز به رعايت نكات دقيقي دارند. كارت هاي گرافيك بايد داراي مجموعه كاملي از مشخصات باشند تا بتوانند تاييديه هاي DirectX 10 را بدست آورند. البته اين استاندارها به طور كامل با آنچه كه در نسل فعلي كارت هاي گرافيكي شاهد ان هستيم متفاوت نخواهند بود. براي مثال كارت هايي كه از DirectX 9.0c و يا سايه زن هاي نسخه 2 پشتيباني كنند ميتوانند از بسياري از توابع موجود در DirectX 10 نيز پشتيباني كنند. اما Microsoft مشخصه هاي كاملا دقيقي را اعلام كرده است تا سازندگان مختلف پردازنده هاي گرافيكي مجبور به ساخت سخت افزارهاي سازگار با يكديگر شوند. براي مثال تفاوت هاي موجود در واحد هاي مميز شناور پردازنده هاي گرافيكي مختلف شركت هاي ATI و nVIDIA توسعه دهندگان بازي را براي سازگار كردن موتور بازي با هر دو نوع پردازنده گرافيكي تحت فشار قرار ميداد، اما مشخصه هاي تعريف شده در DirectX 10 كمك بزرگي به حذف اينگونه ناسازگاري ها در سخت افزارهاي مختلف و در نتيجه كاهش هزينه و زمان توسعه نرم افزار براي كار با آنها خواهد كرد.
منبع: http://www.sakhtafzar.com (http://www.sakhtafzar.com/)
DirectX10 وWindows Graphic Foundation 2.0 اسامي هستند كه ميتوانند انقلاب جديدي را در گرافيك هاي سه بعدي و بازي هاي پيشرفته كامپيوتري نويد دهند. هنگام عرضه Windows Vista در ابتداي سال جاري ميلادي ما شاهد حضور API جديد شركت Microsoft يعني DirectX 10 بوديم كه استانداردهاي موجود براي پردازش سه بعدي و تجربه چند رسانه اي كاربران را به سطح جديدي ارتقأ داده است.هرچند زمان زيادي از معرفي DirectX 10 مي گذرد، اما ناگفته هاي زيادي در رابطه با اين API بنيادي وجود دارد كه در اين مقاله به بررسي آنها پرداخته شده است.
حافظه مجازي در DirectX 10
API يا واسط نرم افزاري DirectX از مجموعه اي از اينترفيس ها تشكيل شده است كه مشخص ميكنند توسعه دهندگان بازي ها و نرم افزارهاي مختلف چگونه بايد با سخت افزار به صحبت بپردازند. نوشتن يك برنامه براي يك API استاندارد بسيار ساده تر از نوشتن و بهينه سازي همان برنامه براي اجرا بر روي سخت افزارهاي خاص است. به منظور هرچه يكپارچه تر كردن سخت افزار و نرم افزار، مايكروسافت يك بازنگري كلي را بر روي DirectX اعمال كرده است. از آنجايي كه اين API در طول زمان حياط Windows Vista به عنوان پايه و اساس توسعه و اجراي هر نرم افزار و يا سخت افزار جديدي مورد استفاده قرار خواهد گرفت، Microsoft سعي كرده است با ارايه برخي از مشخصات پيشرو و كاملا جديد و علاوه بر آن ساده سازي اين API به برنامه نويسان امكان دهد تا با سرعت و سهولت بتوانند با دريافت حداكثر كارايي از سخت افزارهاي PC ،نرم افزارها و بازي هايي با كيفيت و كارايي بالا را طراحي كنند.
Direct3D قسمتي از DirectX است كه مستقيما بر اجرا و عملكردهاي نرم افزارهاي سه بعدي نظارت دارد. در حقيقت مهمترين بخش DirectX ، Direct3D است. بزرگترين تحولات صورت گرفته در DirectX10 نيز مستقيما به Direct3D مربوط مي شود. Direct3D10 با يكپارچه كردن دستورالعمل ها و استاندارد نمودن مشخصات سايه زن هاي قابل برنامه نويسي، برنامه نويسان را از شر سايه زن هايي كه هر سازنده به صورت اختصاصي طراحي و روانه بازار ميكرد رها ميسازد. بعلاوه مايكروسافت در مدل درايورهاي مربوط به كارت هاي گرافيك و نمايشگرها نيز تجديد نظر كرده است.
به اين خاطر كه در Windows Vista تمام دسك تاپ به صورت سه بعدي به نمايش در مي آيد، كارت گرافيك ديگر تنها براي بازي كردن مورد استفاده قرار نمي گيرد. هنگامي كه شما يك صفحه نمايش سه بعدي داريد و هر برنامه را در صفحه سه بعدي مربوط به خودش اجرا مي كنيد، درايورها كارت گرافيك بايد به اندازه كافي با ثبات و انعطاف پذير باشد تا بتواند نقش پردازنده گرافيكي را افزايش دهد. به همين منظور مايكروسافت تصميم گرفته است تا درايورها را به دو بخش مجزا تقسيم نمايد. يك بخش براي اجراي دسك تاپ و بخش ديگر براي اجراي نرم افزارها و بازي هاي سه بعدي. اين تقسيم بندي براي افزايش ثبات زير سيستم گرافيكي طراحي شده است و به سيستم عامل امكان ميدهد حتي در صورتي كه يك برنامه كاربردي و يا بازي سه بعدي به علت خطاهاي نرم افزاري و يا سخت افزاري متوقف ميشود، همچنان و با وجود يك دسك تاپ كاملا سه بعدي قابل استفاده و با ثبات باقي بماند. وجود چنين نوآوري هايي همچنين به اين معني است كه مايكروسافت DirectX10 را براي Windows XP ارايه نخواهد كرد، به خاطر اينكه بسياري از پيشرفت هاي صورت گرفته در Direct3D10 مستقيما به مشخصات مدل جديد درايور كارت گرافيك Windows Vista نياز خواهد داشت.
استفاده وسيع تر از توانايي هاي كارت گرافيكي براي اجراي كاربردهاي مختلف، نياز به اختصاص منابع سيستمي بيشتر از سوي سيستم عامل به آن را دارد. سيستم عامل بايد به كاربردها امكان دهد تا بتوانند سخت افزار را به نحو موثرتري به اشتراك بگذارند. بزرگترين تغيير در اين زمينه در Windows Vista تكنولوژيي است كه با نام Virtualized Memory و يا حافظه مجازي شناخته مي شود. از اين پس كارت گرافيك فضاي حافظه اختصاصي خود را در حافظه سيستم خواهد داشت. اين حافظه اختصاصي ميتواند براي ذخيره داده هايي كه داراي اندازه بزرگتر از حافظه محلي كارت گرافيك هستند مورد استفاده قرار گيرد. هم اكنون كارت هاي گرافيكي گران قيمت و سطح بالا معمولا با حافظه هايي به ميزان 256 يا 512 مگابايت عرضه ميشوند. اما بازي ها ميتوانند به سادگي تمامي حافظه موجود را براي ذخيره قطعات بسيار بزرگ داده، مانند بافت هاي با وضوح بسيار بالا، مورد استفاده قرار دهند.
http://www.pcinpact.com/images/bd/news/9934.jpg
تصویری ساخته شده توسط Unreal Engine 3 برپایه DirectX 10
مدير عامل شركت Epic Games كه به تازگي موتور بسيار قدرتمند Unreal Engine 3.0 را معرفي كرده و در حال توسعه عناوين معروفي چون UT2007 و Gears Of War ميباشد، در اين باره ميگويد:
«تكنولوژي هايي مانند بافت گذاري مجازي (Virtual Texturing) ميتواند گلوگاه هاي مرتبط با اندازه بافت ها را در حافظه هاي گرافيكي بر طرف نمايد. اندازه بافت هايي را كه ما در DirectX9.0 ميتوانستيم با حفظ كارايي كامل استفاده كنيم به وسيله حجم حافظه محلي كارت گرافيكي محدود شده بود، اما در DirectX10 حجم آنها تنها توسط اندازه حافظه سيستم محدود خواهد شد. او توضيح ميدهد كه با در اختيار داشتن چنين امكاناتي، سطح استفاده از بافت ها در بازي ها و نرم افزارهاي سه بعدي بين 2 تا 4 برابر افزايش خواهد يافت كه اين براي كساني كه از موتور Unreal Engine 3.0 براي توسعه بازي هاي خود استفاده ميكنند بسيار عالي است. هرجا كه طراح بخواهد ميتواند از بافت هايي با كيفيت و وضوح بالا، براي مثال در وضوح 2048x2048 پيكسل، استفاده كند و سپس آنها را براي اجرا بر روي سيستم هاي با قدرت پايين تر به اندازه هاي كوچكتري مقياس دهي كند.»
كارت هاي گرافيكي براي تطابق با استدانداردهاي DirectX 10 و افزايش كارايي نياز به رعايت نكات دقيقي دارند. كارت هاي گرافيك بايد داراي مجموعه كاملي از مشخصات باشند تا بتوانند تاييديه هاي DirectX 10 را بدست آورند. البته اين استاندارها به طور كامل با آنچه كه در نسل فعلي كارت هاي گرافيكي شاهد ان هستيم متفاوت نخواهند بود. براي مثال كارت هايي كه از DirectX 9.0c و يا سايه زن هاي نسخه 2 پشتيباني كنند ميتوانند از بسياري از توابع موجود در DirectX 10 نيز پشتيباني كنند. اما Microsoft مشخصه هاي كاملا دقيقي را اعلام كرده است تا سازندگان مختلف پردازنده هاي گرافيكي مجبور به ساخت سخت افزارهاي سازگار با يكديگر شوند. براي مثال تفاوت هاي موجود در واحد هاي مميز شناور پردازنده هاي گرافيكي مختلف شركت هاي ATI و nVIDIA توسعه دهندگان بازي را براي سازگار كردن موتور بازي با هر دو نوع پردازنده گرافيكي تحت فشار قرار ميداد، اما مشخصه هاي تعريف شده در DirectX 10 كمك بزرگي به حذف اينگونه ناسازگاري ها در سخت افزارهاي مختلف و در نتيجه كاهش هزينه و زمان توسعه نرم افزار براي كار با آنها خواهد كرد.
منبع: http://www.sakhtafzar.com (http://www.sakhtafzar.com/)