مقدمه:
با پیشرفت دنیای امروز و به روز شدن اطلاعات و فناوری، دیگر متدهای قدیمی از رونق افتاده اند.با وارد شدن کامپیوتر به دنیای صنایع دستی تحولی شگرف دنیا را فرا گرفت.
انسان از دیرباز به فکر راحتی خویش بوده است و در این راستا دست به هر کاری میزده تا کارها را راحت تر انجام دهد.از جمله هنرهایی که از دیرباز تا کنون مورد توجه هنر دوستان بوده و هست هنر گرافیک می باشد.
آشنایی با گرافیک
گرافیک برگرفته از واژه لاتین Graphic است و نسبت به سرچشمه هنری خود که نقاشی است جدیدتر و به قولی امروزی تر است.قبل از عرصه جدید پیشرفت چشمگیر کامپیوتر کار گرافیک بصورت دستی انجام می شده است.اما بعد از ظهور کارتهای گرافیکی با مدلهای پیشرفته و گوناگون و وضوح بالاتر این کار نیز بر عهده کامپیوتر سپرده شد.با وارد شدن این کارتها و قرار گیری آنان در کیس ها جعبه طراحی گرافیستها به کامپیوتر منتقل شد و کار گرافیک بسی آسان شد.
هرچند از زمان ظهور این کارتها زمان زیادی نمی گذرد اما تا به حال نرم افزارهای گرافیکی متنوعی برای گرافیک ظهور کرده اند که هر کدام نسبت به دیگری ارتقا یافته تر است.من جمله نرم افزارهای گرافیکی پر کاربرد کنونی میتوان به : Adob Photoshop .. Free Hand..Corel Draw و.. اشاره کرد که نرم افزار گرافیکی فتوشاپ سی اس از همه کاربردی تر است که برای کار بر روی تصاویر و عکس ها کاربرد فراوانی دارد.از فری هند و کورل بیشتر برای طراحی لوگو و آرم های هنری استفاده می شود اما قبل از آشنایی با نرم افزارهای گرافیکی باید با قطعه سخت افزاری مربوطه یعنی کارت گرافیکی آشنا شویم و بعد به معرفی نرم افزارهای گرافیکی متعددی می پردازیم و کاربردهای آنان در آخر نیز اشاره ای به ساخت یک روبوت و کمک گرفتن از دنیای مجازی در ساخت آن می کنیم.
کارت گرافیک چیست ؟
کارت گرافیک در کامپیوتر شخصی دارای جایگاهی خاص است . کارت های فوق اطلاعات دیجیتال تولید شده توسط کامپیوتر را اخذ و آنها را بگونه ای تبدیل می نمایند که برای انسان قابل مشاهده باشند. در اغلب کامپیوترها ، کارت های گرافیک اطلاعات دیجیتال را برای نمایش توسط نمایشگر ، به اطلاعات آنالوگ تبدیل می کنند. در کامپیوترهای Laptop اطلاعات، همچنان دیجیتال باقی خواهند ماند زیرا این کامپیوترها اطلاعات را بصورت دیجیتال نمایش می دهند.
اگر از فاصله بسیار نزدیک به صفحه نمایشگر یک کامپیوتر شخصی نگاه کنید ، مشاهده خواهید کرد که تمام چیزهائی که بر روی نمایشگر نشان داده می شود از "نقاط" تشکیل شده اند . نقاط فوق " پیکسل " نامیده می شوند. هر پیکسل دارای یک رنگ است . در برخی نمایشگرها ( مثلا" صفحه نمایشگر استفاده شده در کامپیوترهای اولیه مکینتاش ) هر پکسل صرفا" دارای دو رنگ بود: سفید و سیاه . امروزه در برخی از صفحات نمایشگر ، هر پیکسل می تواند دارای 256 رنگ باشد. در اغلب صفحات نمایشگر ، پیکسل ها بصورت " تمام رنگ " (True Color) بوده و دارای 16/8 میلیون حالت متفاوت می باشند. با توجه به اینکه چشم انسان قادر به تشخیص ده میلیون رنگ متفاوت است ، 16/8 میلیون رنگ بمراتب بیش از آن چیزی است که چشم انسان قادر به تشخیص آنها بوده و به نظر همان ده میلیون رنگ کفایت می کند!
هدف یک کارت گرافیک ، ایجاد مجموعه ای از سیگنالها است که نقاط فوق را بر روی صفحه نمایشگر ، نمایش دهند.
یک کارت گرافیک پیشرفته، یک برد مدار چاپی بهمراه حافظه و یک پردازنده اختصاصی است . پردازنده با هدف انجام محاسبات مورد نیاز گرافیکی ، طراحی شده است . اکثر پردازنده های فوق دارای دستورات اختصاصی بوده که به کمک آنها می توان عملیات گرافیک را انجام داد. کارت گرافیک دارای اسامی متفاوتی نظیر : کارت ویدئو ، برد ویدئو ، برد نمایش ویدئوئی ، برد گرافیک ، آداپتور گرافیک و آداپتور ویدئو است .
مبانی کارت گرافیک
بمنظور شناخت اهمیت و جایگاه کارت های گرافیک ، یک کارت گرافیک با ساده ترین امکانات را در نظر می گیریم . کارت مورد نظر قادر به نمایش پیکسل های سیاه وسفید بوده و از یک صفحه نمایشگر با وضوح تصویر 480 * 640 پیکسل استفاده می نماید. کارت گرافیک از سه بخش اساسی زیر تشکیل می شود :
- حافظه . اولین چیزی که یک کارت گرافیک به آن نیاز دارد ، حافظه است . حافظه رنگ مربوط به هر پیکسل را در خود نگاهداری می نماید. در ساده ترین حالت ( هر پیکسل سیاه و سفید باشد ) به یک بیت برای ذخیره سازی رنگ هر پیکسل نیاز خواهد بود. با توجه به اینکه هر بایت شامل هشت بیت است ، نیاز به هشتاد بایت (حاصل تقسیم 640 بر 8 ) برای ذخیره سازی رنگ مربوط به پیکسل های موجود در یک سطر بر روی صفحه نمایشگر و 38400 بایت ( حاصلضرب 480 در 80 ) حافظه بمنظور نگهداری تمام پیکسل های قابل مشاهده بر روی صفحه ، خواهد بود .
- اینترفیس کامپیوتر . دومین چیزی که یک کارت گرافیک به آن نیاز دارد ، روشی بمنظور تغییر محتویات حافظه کارت گرافیک است . امکان فوق با اتصال کارت گرافیک به گذرگاه مربوطه بر روی برد اصلی تحقق پیدا خواهد کرد. کامپیوتر قادر به ارسال سیگنال از طریق گذرگاه مربوطه برای تغییر محتویات حافظه خواهد بود.
- اینترفیس ویدئو . سومین چیزی که یک کارت گرافیک به آن نیاز دارد ، روشی بمنظور تولید سیگنال برای مانیتور است . کارت گرافیک می بایست سیگنال های رنگی را تولید تا باعث حرکت اشعه در CRT گردد. فرض کنید که صفحه نمایشگر در هر ثانیه شصت فریم را بازخوانی / باز نویسی می نماید ، این بدان معنی است که کارت گرافیک تمام حافظه مربوطه را بیت به بیت اسکن و این عمل را شصت مرتبه در ثانیه انجام دهد. سیگنال های مورد نظر برای هر پیکسل موجود بر هر خط ارسال و در ادامه یک پالس افقی sync ، نیز ارسال می گردد.عملیات فوق برای 480 خط تکرار شده و در نهایت یک پالس عمودی sync ارسال خواهد شد.
پردازنده های کمکی گرافیک
یک کارت گرافیک ساده نظیر آنچه در بخش قبل اشاره گردید ، Frame Buffer نامیده می شود. کارت، یک فریم از اطلاعاتی را نگهداری می نماید که برای نمایشگر ارسال شده است . ریزپردازنده کامپیوتر مسئول بهنگام سازی هر بایت در حافظه کارت گرافیک است . در صورتیکه عملیات گرافیک پیچیده ای را داشته باشیم ، ریزپردازنده کامپیوتر مدت زمان زیادی را صرف بهنگام سازی حافظه کارت گرافیک کرده و برای سایر عملیات مربوطه زمانی باقی نخواهد ماند. مثلا" اگر یک تصویر سه بعدی دارای 10000 ضلع باشد ، ریزپردازنده می بایست هر ضلع را رسم و عملیات مربوطه در حافظه کارت گرافیک را نیز انجام دهد. عملیات فوق زمان بسیار زیادی را طلب می کند.
کارت های گرافیک جدید ، بطرز قابل توجه ای ، حجم عملیات مربوط به پردازنده اصلی کامپیوتر را کاهش می دهند. این نوع کارت ها دارای یک پردازنده اصلی پر قدرت بوده که مختص عملیات گرافیکی طراحی شده است. با توجه به نوع کارت گرافیک ، پردازنده فوق می تواند یک " کمک پردازنده گرافیکی " یا یک " شتاب دهنده گرافیکی " باشد. پردازنده کمکی و پردازنده اصلی بصورت همزمان فعالیت نموده و در مواردیکه از شتاب دهنده گرافیکی استفاده می گردد ، دستورات لازم از طریق پردازنده اصلی برای شتاب دهنده ارسال و شتاب دهنده مسئولیت انجام آنها را برعهده خواهد داشت .
در سیستم های " کمک پردازنده " ، درایور کارت گرافیک عملیات مربوط به کارهای گرافیکی را مستقیما" برای پردازنده کمکی گرافیکی ارسال می کند. سیستم عامل هر چیز دیگر را برای پردازنده اصلی ارسال خواهد کرد. در سیستم های " شتاب دهنده گرافیکی " ، درایور کارت گرافیک هر چیز را در ابتدا برای پردازنده اصلی کامپیوتر ارسال می کند. در ادامه پردازنده اصلی کامپیوتر ، شتاب دهنده گرافیک را به منظور انجام عملیات خاصی هدایت می کند. مثلا" پردازنده ممکن است به شتاب دهنده اعلام نماید که :" یک چند ضلعی رسم کن " در ادامه شتاب دهنده فعالیت تعریف شده فوق را انجام خواهد داد.
عناصر دیگر بر روی کارت گرافیک
یک کارت گرافیک دارای عناصر متفاوتی است :
- پردازنده گرافیک . پردازنده گرافیک بمنزله مغز یک کارت گرافیک است . پردازنده فوق می تواند یکی از سه حالت پیکربندی زیر را داشته باشد:
-- Graphic Co-Processor . کارت هائی از این نوع قادر به انجام هر نوع عملیات گرافیکی بدون کمک گرفتن از پردازنده اصلی کامپیوتر می باشند.
-- Graphics Accelerator . تراشه موجود بر روی این نوع کارت ها ، عملیات گرافیکی را بر اساس دستورات صادره شده توسط پردازنده اصلی کامپیوتر انجام خواهند داد.
-- Frame Buffer . تراشه فوق ، حافظه موجود بر روی کارت را کنترل و اطلاعاتی را برای " مبدل دیجیتال به آنالوگ " (DAC) ارسال خواهد کرد . عملا" پردازشی توسط تراشه فوق انجام نخواهد شد.
- حافظه . نوع حافظه استفاده شده بر روی کارت های گرافیک متغیر است . متداولترین نوع ، از پیکربندی dual-ported استفاده می نماید. در کارت های فوق امکان نوشتن در یک بخش حافظه و امکان خواندن از بخش دیگر حافظه بصورت همزمان امکان پذیر خواهد بود. بدین ترتیب مدت زمان لازم برای بازخوانی / بازنویسی یک تصویر کاهش خواهد یافت .
- Graphic BIOS . کارت های گرافیک دارای یک تراشه کوچک BIOS می باشند. اطلاعات موجود در تراشه فوق به سایر عناصر کارت نحوه انجام عملیات (مرتبط به یکدیگر) را تبین خواهد کرد. BIOS همچنین مسئولیت تست کارت گرافیک ( حافظه مربوطه و عملیات ورودی و خروجی ) را برعهده خواهد داشت .
- Digital-to-Analog Converter ) DAC) . تبدیل کننده فوق را RAMDAC نیز می گویند. داده های تبدیل شده به دیجیتال مستقیما" از حافظه اخذ خواهند شد. سرعت تبدیل کننده فوق تاثیر مستقیمی را در ارتباط با مشاهده یک تصویر بر روی صفحه نمایشگر خواهد داشت .
- Display Connector . کارت های گرافیک از کانکتورهای استاندارد استفاده می نمایند.اغلب کارت ها از یک کانکتور پانزده پین استفاده می کنند. کانکتورهای فوق همزمان با عرضه VGA :Video Graphic Array مطرح گردیدند.
- Computer(Bus) Connector . اغلب گذرگاه فوق از نوع AGP است ..پورت فوق امکان دستیابی مستقیم کارت گرافیک به حافظه را فراهم می آورد.ویژگی فوق باعث می گردد که سرعت پورت های فوق نسبت به PCI چهار مرتبه سریعتر باشد. بدین ترتیب پردازنده اصلی سیستم قادر به انجام فعالیت های خود بوده و تراشه موجود بر روی کارت گرافیک امکان دستیابی مستقیم به حافظه را خواهد داشت .
استاندارد های کارت گرافیک
اولین کارت گرافیک در سال 1981 توسط شرکت IBM عرضه گردید. کارت فوق بصورت تک رنگ و با نام Monochrome Display Adapters)MDAs) ارائه گردید. صفحات نمایشگری که از کارت فوق استفاده می کردند ، متنی بودند. رنگ نوشته سفید یا سبز و زمینه سیاه بود. در ادامه کارت های چهار رنگ Hercules Graphic Catd)HGC) ارائه گردیدند. سپس کارت های هشت رنگ Color Graphic Adapter)CGA) و کارت های شانزده رنگ Enhanced Graphic Adapter)EGA) ارائه گردیدند. تولیدکنندگانی دیگر، نظیر کمودور کامپیوترهائی را معرفی کردند که دارای کارت های گرافیک از قبل تعبیه شده و ساخته شده در سیستم بودند. کارت های فوق قادر به نمایش تعداد زیادی رنگ بودند.
زمانیکه شرکت IBM در سال 1987 کارت Video Graphic Array)VGA) را معرفی کرد، استاندارد جدیدی در این راستا مطرح گردید. نمایشگرهای VGA قادر به ارائه 256 رنگ و وضوح تصویر 400 * 720 بودند. یک سال بعد استاندارد Super Video Graphic Array)SVGA) مطرح گردید. استاندارد فوق قادر به ارائه 16/8 میلیون رنگ با وضوح تصویر 1024 * 1280 است .
کارت های گرافیک از استانداردهای متفاوتی پیروی می نمایند. تولیدکنندگان کارت گرافیک همواره سعی در افزایش تعداد رنگ و وضوح تصویر با توجه به راهکارهای اختصاصی خود دارند. کارت های گرافیک می بایست قادر به اتصال به سیستم باشند. کارت های گرافیک قدیمی اغلب از طریق اسلات های ISA و یا PCI به سیستم متصل می شوند . اغلب کارت های گرافیک جدید از پورت AGP برای اتصال به کامپیوتر استفاده می نمایند.
API گرافیکی چیست؟
API درواقع بین برنامه و سختافزاری که برنامه روی آن اجرا میشود، نقش یک هماهنگکننده را دارد و مانند پلی میان سختافزار و نرمافزار ارتباط ایجادمیکند. یعنی برنامهنویس کدهایی مینویسد که دادههای گرافیکی خود را به وسیله دستورهای استانداردی به درایور API میفرستد نه مستقیماً به خود سختافزار. سپس درایوری که شرکت سازنده سختافزار تولیدکرده است، این کداستاندارد تولیدشده را به فرمت بومی و ویژهای که برای آن مدل خاص سختافزار قابل شناسایی است، ترجمه میکند.
Microsoft DirectX
شرکت مایکروسافت در سال 1995 DirectX را ساخته و توسعه دادهاست. این نرمافزار شامل مجموعه یکپارچهای از ابزارهای برنامهنویسی است که به توسعهدهندگان امکان میدهد انواع مختلف نرمافزارهای مالتیمدیا را روی پلتفرم ویندوز تولید کنند. DirectX به برنامهای که بر پایه آن طراحی شده امکان میدهد به آسانی قابلیتهای سختافزار کامپیوتر را شناسایی کند و پارامترهای برنامه را با آن هماهنگ سازد.
DirectX شامل APIهایی است که دسترسی به بخشهای ویژهای از سختافزار مانند تراشههای شتابدهنده گرافیک سهبعدی و کارت صوتی را میسرمیکند. این APIها کنترل توابع سطح پایین، یعنی نزدیک به سختافزار، شامل شتابدهنده گرافیکی دو بعدی، پشتیبانی از دستگاههای ورودی مانند دسته بازی، صفحهکلید و ماوس، و کنترل میکس و خروجی صدا را انجام میدهند.