engeneer_19
29th September 2009, 01:36 PM
PC ها از ابتدا تا امروز دچار تغییرات فراوانی شده اند و در این بین کارت های گرافیک نیز از این قاعده مثتثنا نبوده اند. به طوری که ابتدا کارتهای گرافیک به صورت تک رنگ یا MONO عرضه می شدند و نیازی به درگاهی با سرعت بالا نداشتند. به همین خاطر کارتهای گرافیک ابتدا روی درگاه ISA و پس از آن روی PCI نصب شدند.
رفته رفته با وسعت یافتن کارهای Multi Media و کشیده شدن آن به دنیای کامپیوتر نیاز به کارتهای گرافیگی رنگی و سرعت بالا احساس شد. برای این منظور درگاه جدیدی به نام AGP مورد استفاده قرار گرفت. درگاه AGP در سرعت های 2و4و8 ایکس به بازار عرضه شد. سرعت ها را بنویسم. مادربردهایی که دارای درگاه AGP 8X بودند تا چند سال پیش نیز تولید و عرضه می شدند ولی پس از آن درگاه جدیدی عرضه شد به نام PCI EXPRESS که اگر بخواهیم سرعت آن را با AGP مقایسه کنیم باید آن را 16 X بدانیم.
نسل بعدیPCI EXPRESS نیز PCI EXPRESS 2 نامیده شد که سرعتی بسیار بالاتر از نسل پیشین خود دارد. همچنین درگاه AGP در نهایت قابلیت تغذیه کارتهای گرافیکی با توان 25 وات را دارا بود و این رقم برای درگاه PCI EXPRESS برابر با 75 وات می باشد. همچنین در صورت نیاز کارت گرافیک به توان بالاتر امکان اتصال مستقیم به POWER نیز وجود دارد.
پهنای باند AGP 2X : 508/6 مگابایت بر ثانیه
پهنای باند AGP 4X : 1017/3 مگابایت بر ثانیه
پهنای باند AGP 8X : 1/99 گیگابیت بر ثانیه
پهنای باند PCI E 1.0 : 3/73 گیگابیت بر ثانیه
در حالت دو طرفه (SLI یا CROSSFIRE) : 7/46 گیگابیت بر ثانیه
پهنای باند PCI E 2.0 : 5 گیگابیت بر ثانیه
استفاده از دو کارت گرافیک به طور همزمان :
از مزایای PCI EXPRESS می توان به استفاده همزمان از دوکارت گرافیک اشاره کرد.
شرکت Nvidia این تکنولوژی راSLI و شرکت ATI این تکنولوژی را CrossFire می نامد.
SLI (Scalable Link Interface ) یک فن آوری جدید است که فقط برای کارت های گرافیک Nvidia می باشد که در آن 2 کارت گرافیک به طور هم زمان وظیفه رندر کردن تصاویر را بر عهده دارند. این تکنولوژی مانند Pentium Pro که در آن دو CPU وظیفه پردازش را به طور موازی داشتند عمل می کند.
خروجی تصاویر از یکی از کارتها صورت میگیرد ، البته این نکته قابل ذکر است که این قابلیت فقط روی مادربردهایی کار میکند که دارای فن آوری SLI باشند . در این فن آوری از دو کارت PCI Express استفاده میشود که هر یک به طور جداگانه روی اسلات PCI Express نصب شده و توسط کابل به همدیگر متصل می گردند. ( البته این نکته قابل ذکر است که هردو کارت گرافیک باید از یک نوع باشند مثلا اگر در حال حاظر از کارت Geforce 7800 استفاده می کنید کارت دوم نیز باید Geforce 7800 باشد .) مذیت این فن آوری این میباشد که مسئولیت رندر کردن تصاویر گرافیکی بین دو کارت تقسیم شده و سرعت رندر کردن بالا می رود.
تست و آزمایش کارت گرافیک با نرم افزارهای بسیاری قابل انجام است ولی از این میان Riva Tuner و 3d mark از همه محبوبتر و کارآمدتر می باشند.
این نرم افزار برای تست کارت گرافیک شما اطلاعات گرافیکی خام را برای render به کارت گرافیک می فرستد و قدرت کارت گرافیک شما را بر اساس اعداد نشان می دهد . مثلا 4000
لازم به ذکر است سرعت پردازنده و مخصوصا میزان رم نیز در نتیجه آزمایش تاثیر قابل توجهی دارند . تا جایی که اگر میزان رم شما کمتر از 512 مگابایت باشد ، نتیجه آزمایش اصلا درست از آب در نمی آید
بررسی کارایی SLI در مقابل CrossFire
جهت انجام این مقایسات، جدیدترین کارت های گرافیک ATI یعنی Radeon HD 3870 و GeForce 8800GT 512 انتخاب شده اند. هدف از این آزمایش بررسی قدرت این دو کارت نیست و صرفا بررسی خواهد گردید که با قرار گرفتن هرکدام از این کارت های گرافیک در حالت CrossFire یا SLI چند درصد به قدرت گرافیکی سیستم یا به عبارت ساده تر نرخ فریم در ثانیه اضافه خواهد شد
در 90% از آزمایش ها، کارت ati در حالت CrossFire افزایش کارایی بیشتری را نسبت به SLI به همراه داشته است. در 60% این آزمایش ها، CrossFire بیش از 50% افزایش کارایی از خود نشان داده است . در 30% از آزمایش ها CrossFire بیش از 80 درصد کارایی سیستم را بهبود بخشید
SLI تنها در 30% از آزمایش ها به افزایش کارایی 50 درصدی دست یافته است همچنین SLI به میزان حداکثر 70 درصد توانست در یک آزمایش افزایش کارایی داشته باشد
چه عملیات هایی از توانایی کارت گرافیک استفاده می کنند:
اصلی ترین نکته ای که باید در مورد کارت های گرافیک بدانید این است که قدرت پردازش کارت گرافیک صرف چه چیز هایی می شود به بیان ساده تر باید بدانید کارتهای گرافیک گران قیمت باعث بهبود در چه بخش هایی می شوند.
شاید تصور کنید نمایش فیلم یا عکس به کارت گرافیک شما فشار می آورد و یا اگر کارت گرافیک گران قیمت تری داشته باشید می توانید فیلم ها و عکس ها را با کیفیت بالاتری تماشا کنید. به عبارت دیگر بعضی از کاربران تصور می کنند کامپیوتری که 64 مگابایت حافظه گرافیکی دارد می تواند عکس ها و فیلم ها را باکیفیت بالاتری نسبت به کامپیوتری که 16 مگابایت حافظه دارد نشان دهد. لازم به ذکر است برای نمایش عکسها و فیلمها نهایتا 16 مگابایت حافظه کفایت می کند و شما با این مقدار حافظه می توانید نهایت تفکیک رنگها ، که 32 بیت می باشد را بدست آورید.
پخش فیلم از جمله کارهایی است که اصلا به کارت گرافیک فشار نمی آورد و کامپیوتر اصلا تشخیص نمی دهد که شما در حال تماشای صفحه ایستای دسکتاپ هستید یا یک فیلم.
شاید این سوال برایتان پیش بیاید که پس چرا در هنگام پخش فیلم درصد استفاده از Cpu بالا می رود و به بالای 20 الی 30 درصد می رسد.در جواب باید عرض کنم بالا رفتن درصد استفاده از توان پردازشی CPU، به خاطر حجم بالای تصاویر متحرک می باشد و این توان عملیاتی صرف خواندن اطلاعات از دیسک سخت و Decode صفر و یک های آن می شود. فیلم ها که عموما در فرمت Mpeg2 یا MP4 با 25 فریم در ثانیه (که مقیاس آن FPS می باشد) ضبط شده اند Render نمی شوند که بخواهند از توان پردازشی GPU استفاده کنند بلکه Decode می شوند که در حیطه پردازشی CPU قرار دارد.(در یک کلام می توان گفت فیلم یک فایل است مانند دیگر فایلها که توسط نرم افزار مخصوص خود مثل JetAudio اجرا شده و توسط CPU پردازش می شود.)
همچنین بعضی افراد تصور می کنند برای کار کردن حرفه ای با Photoshop نیاز به کارت گرافیک پرقدرتی دارند. این در حالیست که با یک کارت گرافیک Onboard با حداکثر حافظه 32MB می توان این کار را به بهترین نحو انجام داد ، چون اساسا عملکرد Photoshop بلادرنگ نیست و کارکرد Photoshp کاملا وابسته به پردازشگر مرکزی می باشد و نیازی به توان کارت گرافیک یا تکنولوژی های کارت گرافیک ندارد. در این بین تکنولوژی یا دستورات MMX و MMX2 پردازشگر مرکزی نقش مهمی در سرعت بخشیدن به عملیات ویرایش عکس دارند.
حال به بررسی این نکته می پردازیم که قدرت پردازشی کارتهای گرافیک به طور عمده صرف چه چیزهایی می شود:
کاربرد اصلی کارت های گرافیک در بازی های کامپیوتری و Render تصاویر متحرک توسط نرم افزارهای 3D MAX , MAYA می باشد.
در بازی های امروزی ، تصاویر از پیش ساخته شده یا ایستا بسیار کم استفاده می شود و برای ایجاد تصاویر متحرک بیشتر از دستورات و قابلیت های DirectX استفاده می شود.
DirectX سکوی گرافیکی ماکروسافت می باشد. DirectX در حقیقت مثل کنسول جاوا و یا نرم افزارهای کامپایلر می باشد و برای اجرای فرامین گرافیکی درسیستم های مبتنی بر ویندوز به کار می رود. سکوی دیگری نیز مشابه DirectX به نام OpenGL وجود دارد که از بحث ما خارج است.
برای درک بهتر عملکرد کارت گرافیک در بازی های کامپیوتری ، به یک مثال می پردازیم:
به طور مثال فرض کنید می خواهیم یک دیوار را در بازی ترسیم کینم ، این دیوار می تواند از طریق یک عکس در بازی وارد شود (یعنی یک عکس از دیوار مورد نظر تهیه می کنیم و آن را در قسمت مورد نظر بازی قرار می دهیم) به این ترتیب کار کارت گرفیک بسیار سبک می شود.مشکلی که در اینجا پیش می آید این است که حجم بازی افزایش می یابد و همچنین در طی بازی نمی توانیم روی دیوار تغییراتی از قبیل تخریب و غیره را انجام دهیم و این امر از پویایی game می کاهد.
حال ترسیم همان دیوار را توسط دستورات DirectX بررسی می کنیم:
به عنوان مثال ابتدا با استفاده از دستورات مخصوص DirectX یکسری خطوط شطرنجی به عنوان چهار چوب دیوار ترسیم می کنیم که این کار توسط پردازشگر کارت گرافیک یا همان GPU انجام می شود.سپس یک بلوک از دیوار را به عنوان الگو رنگ آمیزی کرده و بقیه قسمت های دیوار را طبق الگو پر می کنیم.
(همانطور که می دانید شاید این کار توسط 10 خط برنامه انجام شود و حجمی نهایتا در حدود 1 کیلوبایت اشغال کند ولی تصویر یک دیوار کامل حداقل 100 کیلو بایت حافظه اشغال می کند)
(توضیح شفاهی: در اینجا شکل بکشم و شکل توضیح بدهم ، این کار مثل زبان C می ماند یعنی خطوط شطرنی دیوار به عنوان آرایه تعریف می شود و در خانه اول عدد 1 را قرار می دهیم و محتویات خانه اول را در بقیه خانه های حافظه کپی می کنیم.)این روش نیز معایب خاص خودش را دارد که نیاز به توان بالای سیستم و کارت گرافیک قوی از آن جمله می باشد و در مقابل، حجم بازی به طور چشم گیری کاهش می یابد.
دیگر مزیتی که این روش دارد این است که چون ترسیم دیوار توسط الگوریتم های خود DirectX یا موتور برنامه انجام شده ، می توان با دیگر الگوریتم های DirectX تغییرات دلخاه را در ظاهر دیوار ایجاد کرد(یا حتی آن را توسط شخصیت یا عوامل خود بازی تخریب کرد).
از جمله این الگوریتم ها می توان به آنهایی که برای پرسپکتیو و یا برای قابلیت Anti Aliasing و یا برای سایه زنی (Pixel Shader) به کار می روند اشاره نمود. روش کار pixel shader یا سایه زن پیکسل به این ترتیب است که پس از مشخص کردن موقعیت قرار گیری منبع نور توسط برنامه نویس، خود کارت گرافیک سایه دیوار را روی اجسام دیگر ایجاد می کند. حال اگر کامپیوتر کاربر ثالث یعنی Gamer قدرت پردازشی کمی داشته باشد و یا کارت گرافیک آن از قابلیت Pixel Shader پشتیبانی نکند ، به راحتی می تواند Pixel shader را غیر فعال کند تا فشار کمتری به GPU بیاید و در نتیجه، بازی صحنه صحنه اجرا نشود.
نکته : با توجه به اینکه دستورات DirectX توسط کارت گرافیک انجام می شوند ، بار پردازش اینگونه تصاویر روی GPU قرار می گیرد.
(قبل از اینکه بخواهیم نحوه رندر تصاویر متحرک را توسط کارت گرافیک بررسی کنیم بد نیست بدانید که Render اصطلاحی آشنا برای کسانی است که با انیمیشن سروکار دارند و به معنی ترجمه می باشد.اگر بخواهیم آن را با زبان های برنامه نویسی مقایسه کنیم باید نرم افزارهای کامپایلر از جمله Visual Sudio را مانند DirectX و عمل کامپایل یا Run را مطابق Render بدانیم)
در ادامه به نحوه Render تصاویر متحرک توسط کارت گرافیک می پردازیم:
به عنوان مثال ابتدا تصویر یک آدمک را توسط 3D Max طراحی کرده و سپس پاهای آدمک را یکی یکی با موس به سمت جلو می کشیم. سپس عمل رندر را انجام می دهیم. آدمک چند قدم حرکت می کند.در اینجا نرم افزار با استفاده از الگوریتم های خاص خودش فرامینی را اجرا کرد که آدمک به حرکت در آمد واز حرکت آدمک فیلم تهیه نشده بود.
(توضیح شفاهی : نرم افزار 3D Max یک سری از اشیا و موجودات را به صورت خام و بدون پوسته و لباس در خود دارد ، که از جمله آنها می توان به آدمکی پوشالی مانند و یا پرندگان بدون پر و ... اشاره کرد.این آدمک ها و موجودات دارای مفاصل از پیش طراحی شده می باشند و نحوه حرکت طبیعی آن موجود و الگوریتم های مخصوص به آن در خود نرم افزار وجود دارد. بدین صورت است که حرکت موجودات، بسیار طبیعی به نظر می رسد. پس از حرکت دادن آدمک نوبت به تعیین لباس و چهره و رنگ پوست و مو می رسد که این اجزا را می توان بعد از اتمام ساخت انیمیشن، به شخصیت کارتونی اضافه کرد) تمام دستورات و عملیات فوق نیز توسط GPU پردازش می شود. در بازی ها هم مثل همین عمل انجام می گیرد.یعنی فقط تصویر شخصیت های بازی در حافظه قرار دارد و عکس العملهای آنها به صورت Real Time یا بلادرنگ توسط کارت گرافیک ایجاد می شود.
رفته رفته با وسعت یافتن کارهای Multi Media و کشیده شدن آن به دنیای کامپیوتر نیاز به کارتهای گرافیگی رنگی و سرعت بالا احساس شد. برای این منظور درگاه جدیدی به نام AGP مورد استفاده قرار گرفت. درگاه AGP در سرعت های 2و4و8 ایکس به بازار عرضه شد. سرعت ها را بنویسم. مادربردهایی که دارای درگاه AGP 8X بودند تا چند سال پیش نیز تولید و عرضه می شدند ولی پس از آن درگاه جدیدی عرضه شد به نام PCI EXPRESS که اگر بخواهیم سرعت آن را با AGP مقایسه کنیم باید آن را 16 X بدانیم.
نسل بعدیPCI EXPRESS نیز PCI EXPRESS 2 نامیده شد که سرعتی بسیار بالاتر از نسل پیشین خود دارد. همچنین درگاه AGP در نهایت قابلیت تغذیه کارتهای گرافیکی با توان 25 وات را دارا بود و این رقم برای درگاه PCI EXPRESS برابر با 75 وات می باشد. همچنین در صورت نیاز کارت گرافیک به توان بالاتر امکان اتصال مستقیم به POWER نیز وجود دارد.
پهنای باند AGP 2X : 508/6 مگابایت بر ثانیه
پهنای باند AGP 4X : 1017/3 مگابایت بر ثانیه
پهنای باند AGP 8X : 1/99 گیگابیت بر ثانیه
پهنای باند PCI E 1.0 : 3/73 گیگابیت بر ثانیه
در حالت دو طرفه (SLI یا CROSSFIRE) : 7/46 گیگابیت بر ثانیه
پهنای باند PCI E 2.0 : 5 گیگابیت بر ثانیه
استفاده از دو کارت گرافیک به طور همزمان :
از مزایای PCI EXPRESS می توان به استفاده همزمان از دوکارت گرافیک اشاره کرد.
شرکت Nvidia این تکنولوژی راSLI و شرکت ATI این تکنولوژی را CrossFire می نامد.
SLI (Scalable Link Interface ) یک فن آوری جدید است که فقط برای کارت های گرافیک Nvidia می باشد که در آن 2 کارت گرافیک به طور هم زمان وظیفه رندر کردن تصاویر را بر عهده دارند. این تکنولوژی مانند Pentium Pro که در آن دو CPU وظیفه پردازش را به طور موازی داشتند عمل می کند.
خروجی تصاویر از یکی از کارتها صورت میگیرد ، البته این نکته قابل ذکر است که این قابلیت فقط روی مادربردهایی کار میکند که دارای فن آوری SLI باشند . در این فن آوری از دو کارت PCI Express استفاده میشود که هر یک به طور جداگانه روی اسلات PCI Express نصب شده و توسط کابل به همدیگر متصل می گردند. ( البته این نکته قابل ذکر است که هردو کارت گرافیک باید از یک نوع باشند مثلا اگر در حال حاظر از کارت Geforce 7800 استفاده می کنید کارت دوم نیز باید Geforce 7800 باشد .) مذیت این فن آوری این میباشد که مسئولیت رندر کردن تصاویر گرافیکی بین دو کارت تقسیم شده و سرعت رندر کردن بالا می رود.
تست و آزمایش کارت گرافیک با نرم افزارهای بسیاری قابل انجام است ولی از این میان Riva Tuner و 3d mark از همه محبوبتر و کارآمدتر می باشند.
این نرم افزار برای تست کارت گرافیک شما اطلاعات گرافیکی خام را برای render به کارت گرافیک می فرستد و قدرت کارت گرافیک شما را بر اساس اعداد نشان می دهد . مثلا 4000
لازم به ذکر است سرعت پردازنده و مخصوصا میزان رم نیز در نتیجه آزمایش تاثیر قابل توجهی دارند . تا جایی که اگر میزان رم شما کمتر از 512 مگابایت باشد ، نتیجه آزمایش اصلا درست از آب در نمی آید
بررسی کارایی SLI در مقابل CrossFire
جهت انجام این مقایسات، جدیدترین کارت های گرافیک ATI یعنی Radeon HD 3870 و GeForce 8800GT 512 انتخاب شده اند. هدف از این آزمایش بررسی قدرت این دو کارت نیست و صرفا بررسی خواهد گردید که با قرار گرفتن هرکدام از این کارت های گرافیک در حالت CrossFire یا SLI چند درصد به قدرت گرافیکی سیستم یا به عبارت ساده تر نرخ فریم در ثانیه اضافه خواهد شد
در 90% از آزمایش ها، کارت ati در حالت CrossFire افزایش کارایی بیشتری را نسبت به SLI به همراه داشته است. در 60% این آزمایش ها، CrossFire بیش از 50% افزایش کارایی از خود نشان داده است . در 30% از آزمایش ها CrossFire بیش از 80 درصد کارایی سیستم را بهبود بخشید
SLI تنها در 30% از آزمایش ها به افزایش کارایی 50 درصدی دست یافته است همچنین SLI به میزان حداکثر 70 درصد توانست در یک آزمایش افزایش کارایی داشته باشد
چه عملیات هایی از توانایی کارت گرافیک استفاده می کنند:
اصلی ترین نکته ای که باید در مورد کارت های گرافیک بدانید این است که قدرت پردازش کارت گرافیک صرف چه چیز هایی می شود به بیان ساده تر باید بدانید کارتهای گرافیک گران قیمت باعث بهبود در چه بخش هایی می شوند.
شاید تصور کنید نمایش فیلم یا عکس به کارت گرافیک شما فشار می آورد و یا اگر کارت گرافیک گران قیمت تری داشته باشید می توانید فیلم ها و عکس ها را با کیفیت بالاتری تماشا کنید. به عبارت دیگر بعضی از کاربران تصور می کنند کامپیوتری که 64 مگابایت حافظه گرافیکی دارد می تواند عکس ها و فیلم ها را باکیفیت بالاتری نسبت به کامپیوتری که 16 مگابایت حافظه دارد نشان دهد. لازم به ذکر است برای نمایش عکسها و فیلمها نهایتا 16 مگابایت حافظه کفایت می کند و شما با این مقدار حافظه می توانید نهایت تفکیک رنگها ، که 32 بیت می باشد را بدست آورید.
پخش فیلم از جمله کارهایی است که اصلا به کارت گرافیک فشار نمی آورد و کامپیوتر اصلا تشخیص نمی دهد که شما در حال تماشای صفحه ایستای دسکتاپ هستید یا یک فیلم.
شاید این سوال برایتان پیش بیاید که پس چرا در هنگام پخش فیلم درصد استفاده از Cpu بالا می رود و به بالای 20 الی 30 درصد می رسد.در جواب باید عرض کنم بالا رفتن درصد استفاده از توان پردازشی CPU، به خاطر حجم بالای تصاویر متحرک می باشد و این توان عملیاتی صرف خواندن اطلاعات از دیسک سخت و Decode صفر و یک های آن می شود. فیلم ها که عموما در فرمت Mpeg2 یا MP4 با 25 فریم در ثانیه (که مقیاس آن FPS می باشد) ضبط شده اند Render نمی شوند که بخواهند از توان پردازشی GPU استفاده کنند بلکه Decode می شوند که در حیطه پردازشی CPU قرار دارد.(در یک کلام می توان گفت فیلم یک فایل است مانند دیگر فایلها که توسط نرم افزار مخصوص خود مثل JetAudio اجرا شده و توسط CPU پردازش می شود.)
همچنین بعضی افراد تصور می کنند برای کار کردن حرفه ای با Photoshop نیاز به کارت گرافیک پرقدرتی دارند. این در حالیست که با یک کارت گرافیک Onboard با حداکثر حافظه 32MB می توان این کار را به بهترین نحو انجام داد ، چون اساسا عملکرد Photoshop بلادرنگ نیست و کارکرد Photoshp کاملا وابسته به پردازشگر مرکزی می باشد و نیازی به توان کارت گرافیک یا تکنولوژی های کارت گرافیک ندارد. در این بین تکنولوژی یا دستورات MMX و MMX2 پردازشگر مرکزی نقش مهمی در سرعت بخشیدن به عملیات ویرایش عکس دارند.
حال به بررسی این نکته می پردازیم که قدرت پردازشی کارتهای گرافیک به طور عمده صرف چه چیزهایی می شود:
کاربرد اصلی کارت های گرافیک در بازی های کامپیوتری و Render تصاویر متحرک توسط نرم افزارهای 3D MAX , MAYA می باشد.
در بازی های امروزی ، تصاویر از پیش ساخته شده یا ایستا بسیار کم استفاده می شود و برای ایجاد تصاویر متحرک بیشتر از دستورات و قابلیت های DirectX استفاده می شود.
DirectX سکوی گرافیکی ماکروسافت می باشد. DirectX در حقیقت مثل کنسول جاوا و یا نرم افزارهای کامپایلر می باشد و برای اجرای فرامین گرافیکی درسیستم های مبتنی بر ویندوز به کار می رود. سکوی دیگری نیز مشابه DirectX به نام OpenGL وجود دارد که از بحث ما خارج است.
برای درک بهتر عملکرد کارت گرافیک در بازی های کامپیوتری ، به یک مثال می پردازیم:
به طور مثال فرض کنید می خواهیم یک دیوار را در بازی ترسیم کینم ، این دیوار می تواند از طریق یک عکس در بازی وارد شود (یعنی یک عکس از دیوار مورد نظر تهیه می کنیم و آن را در قسمت مورد نظر بازی قرار می دهیم) به این ترتیب کار کارت گرفیک بسیار سبک می شود.مشکلی که در اینجا پیش می آید این است که حجم بازی افزایش می یابد و همچنین در طی بازی نمی توانیم روی دیوار تغییراتی از قبیل تخریب و غیره را انجام دهیم و این امر از پویایی game می کاهد.
حال ترسیم همان دیوار را توسط دستورات DirectX بررسی می کنیم:
به عنوان مثال ابتدا با استفاده از دستورات مخصوص DirectX یکسری خطوط شطرنجی به عنوان چهار چوب دیوار ترسیم می کنیم که این کار توسط پردازشگر کارت گرافیک یا همان GPU انجام می شود.سپس یک بلوک از دیوار را به عنوان الگو رنگ آمیزی کرده و بقیه قسمت های دیوار را طبق الگو پر می کنیم.
(همانطور که می دانید شاید این کار توسط 10 خط برنامه انجام شود و حجمی نهایتا در حدود 1 کیلوبایت اشغال کند ولی تصویر یک دیوار کامل حداقل 100 کیلو بایت حافظه اشغال می کند)
(توضیح شفاهی: در اینجا شکل بکشم و شکل توضیح بدهم ، این کار مثل زبان C می ماند یعنی خطوط شطرنی دیوار به عنوان آرایه تعریف می شود و در خانه اول عدد 1 را قرار می دهیم و محتویات خانه اول را در بقیه خانه های حافظه کپی می کنیم.)این روش نیز معایب خاص خودش را دارد که نیاز به توان بالای سیستم و کارت گرافیک قوی از آن جمله می باشد و در مقابل، حجم بازی به طور چشم گیری کاهش می یابد.
دیگر مزیتی که این روش دارد این است که چون ترسیم دیوار توسط الگوریتم های خود DirectX یا موتور برنامه انجام شده ، می توان با دیگر الگوریتم های DirectX تغییرات دلخاه را در ظاهر دیوار ایجاد کرد(یا حتی آن را توسط شخصیت یا عوامل خود بازی تخریب کرد).
از جمله این الگوریتم ها می توان به آنهایی که برای پرسپکتیو و یا برای قابلیت Anti Aliasing و یا برای سایه زنی (Pixel Shader) به کار می روند اشاره نمود. روش کار pixel shader یا سایه زن پیکسل به این ترتیب است که پس از مشخص کردن موقعیت قرار گیری منبع نور توسط برنامه نویس، خود کارت گرافیک سایه دیوار را روی اجسام دیگر ایجاد می کند. حال اگر کامپیوتر کاربر ثالث یعنی Gamer قدرت پردازشی کمی داشته باشد و یا کارت گرافیک آن از قابلیت Pixel Shader پشتیبانی نکند ، به راحتی می تواند Pixel shader را غیر فعال کند تا فشار کمتری به GPU بیاید و در نتیجه، بازی صحنه صحنه اجرا نشود.
نکته : با توجه به اینکه دستورات DirectX توسط کارت گرافیک انجام می شوند ، بار پردازش اینگونه تصاویر روی GPU قرار می گیرد.
(قبل از اینکه بخواهیم نحوه رندر تصاویر متحرک را توسط کارت گرافیک بررسی کنیم بد نیست بدانید که Render اصطلاحی آشنا برای کسانی است که با انیمیشن سروکار دارند و به معنی ترجمه می باشد.اگر بخواهیم آن را با زبان های برنامه نویسی مقایسه کنیم باید نرم افزارهای کامپایلر از جمله Visual Sudio را مانند DirectX و عمل کامپایل یا Run را مطابق Render بدانیم)
در ادامه به نحوه Render تصاویر متحرک توسط کارت گرافیک می پردازیم:
به عنوان مثال ابتدا تصویر یک آدمک را توسط 3D Max طراحی کرده و سپس پاهای آدمک را یکی یکی با موس به سمت جلو می کشیم. سپس عمل رندر را انجام می دهیم. آدمک چند قدم حرکت می کند.در اینجا نرم افزار با استفاده از الگوریتم های خاص خودش فرامینی را اجرا کرد که آدمک به حرکت در آمد واز حرکت آدمک فیلم تهیه نشده بود.
(توضیح شفاهی : نرم افزار 3D Max یک سری از اشیا و موجودات را به صورت خام و بدون پوسته و لباس در خود دارد ، که از جمله آنها می توان به آدمکی پوشالی مانند و یا پرندگان بدون پر و ... اشاره کرد.این آدمک ها و موجودات دارای مفاصل از پیش طراحی شده می باشند و نحوه حرکت طبیعی آن موجود و الگوریتم های مخصوص به آن در خود نرم افزار وجود دارد. بدین صورت است که حرکت موجودات، بسیار طبیعی به نظر می رسد. پس از حرکت دادن آدمک نوبت به تعیین لباس و چهره و رنگ پوست و مو می رسد که این اجزا را می توان بعد از اتمام ساخت انیمیشن، به شخصیت کارتونی اضافه کرد) تمام دستورات و عملیات فوق نیز توسط GPU پردازش می شود. در بازی ها هم مثل همین عمل انجام می گیرد.یعنی فقط تصویر شخصیت های بازی در حافظه قرار دارد و عکس العملهای آنها به صورت Real Time یا بلادرنگ توسط کارت گرافیک ایجاد می شود.