Saturday, October 27, 2018

گرافیک کامپیوتری

گرافیک کامپیوتری (Computer Graphics) تصاویر و فیلم های تولید شده به وسیله کامپیوتر هستند؛ معمولاً به اطلاعات تصویری که به وسیله کامپیوتر و به کمک نرم افزارها و سخت افزارهای خاص ساخته میشن اشاره داره. زیر شاخه ای جدید از علوم کامپیوتر هست. این اصطلاح اولین بار توسط محقق گرافیک کامپیوتری William Fetter از شرکت Boeing در سال 1960 استفاده شد. نام دیگر این رشته، تصاویر تولید کامپیوتر (Computer-Generated Imagery یا به اختصار CGI) است.
موضوعات مهم در گرافیک کامپیوتری شامل Sprite Graphics، Vector Graphic، 3D Modeling، Shaders، GPU Design و Computer Vision میباشند. کلیت این مبحث به شدت به علوم بنیادی ترِ شیء شناسی، نورشناسی و فیزیک وابسته است. گرافیک کامپیوتری شامل نمایش تصاویر هنری و تصاویر داده ای به صورت مؤثر و زیبا به کاربر، و پردازش تصاویر داده ای دریافت شده از دنیای فیزیکی میباشد. واکنش و درک کامپیوترها و تفسیر داده ها با وجود گرافیک کامپیوتری ساده تر شده. توسعه گرافیک کامپیوتری تأثیر عمیقی بر بسیاری از جنبه های رسانه ای گذاشته و فیلم، انیمیشن، تبلیغات، بازی های ویدیویی و به طور کلی طراحی گرافیکی را دگرگون ساخته است.




واژه گرافیک کامپیوتری به مفهومی وسیع برای توصیف "تقریباً هرچیزی در کامپیوتر به جز متن یا صدا" استفاده میشه. از لحاظ تکنیکی واژه گرافیک کامپیوتری به چندین چیز گفته میشه:
ارائه مجدد و دستکاری داده های تصویری به وسیله یک کامپیوتر
تکنلولوژی های گوناگون استفاده شده برای ساخت و دستکاری تصاویر
زیر شاخه رشته علوم کامپیوتری که روش های سنتز و دستکاری دیجیتالی محتوای بصری رو مطالعه میکنه.

امروزه گرافیک کامپیوتری فراگیر شده. تصویر سازی کامپیوتری در تلویزیون، روزنامه ها، برای مثال در گزارش های هواشناسی، یا برای مثال تمام تحقیقات پزشکی یا اعمال جراحی استفاده میشه. یک گراف با ساختار مناسب، میتونه آمار پیچیده رو به فرمی که برای فهم و تفسیر ساده تر هست ارائه کنه. در رسانه چنین گراف هایی برای مصور کردن روزنامه ها، گزارشات، پایان نامه ها و سایر موارد ارائه ای استفاده میشه. ابزارهای قدرتمندی برای بصری سازی داده ها توسعه داده شده اند. تصاویر تولید کامپیوتر میتونند در چندین مدل متفاوت دسته بندی شوند: دو بعدی (two dimensional 2D) ، سه بعدی (three dimensional 3D) ، و گرافیک های متحرک سازی شده (animated graphics). با پیشرفت تکنولوژی، گرافیک کامپیوتری 3D عمومیت بیشتری پیدا کرده، اما گرافیک کامپیوتری 2D همچنان به طور گسترده مورد استفاده قرار میگیره. گرافیک کامپیوتری به عنوان شاخه ای از علم کامپیوتر ظهور کرده که به مطالعه روش هایی برای فتوسنتز و دستکاری محتوای بصری میپردازه. در دهه گذشته، سایر رشته های تخصصی ، مانند بصری سازی داده، و بصری سازی علمی تمرکز بیشتری به بصری سازی پدیده های سه بعدی (معماری، هواشناسی، پزشکی، زیست شناسی و ...) که تاکید روی رندر طبیعی از حجم ها، سطوح، منابع روشنایی و در مواردی با اجزای دینامیک، توسعه پیدا کرده اند.



1. تاریخچه

علوم پیشرویی که باعث توسعه گرافیک کامپیوتری امروزی شده اند، پیشرفت هایی در مهندسی الکتریک، الکترونیک و تلویزیون بوده که در نیمه ابتدایی قرن بیستم به وقوع پیوسته اند. صفحه نمایش ها، از زمان برادران لومیر (Lumiere brothers) با استفاده از matte (نام تکنیکی در صنعت فیلم) به منظور ساخت جلوه های ویژه برای اولین فیلم ها از سال 1895 ،هنر رو به تصویر میکشیدن، اما چنین صفحه نمایش هایی محدود بودن و قابلیت تعامل (interactive) نداشتن. میشه گفت Oscilloscope و صفحه کنترل های ارتش در این زمینه به دلیل اینکه اولین صفحه نمایشهای دو بعدی الکترونیکی بودن که به برنامه از پیش نوشته شده یا ورودی کاربر واکنش نشان میدادن، پیشرو بوده اند. تا دهه 1950 گرافیک های کامپیوتری به عنوان یک رشته تقریباً ناشناخته بود و در دوران پس از جنگ جهانی دوم، این رشته از ترکیب تحقیقات آزمایشگاهی آکادمیک و دانشگاهی و پیشرفت های بیشتر ارتش ایالات متحده در تکنولوژی هایی مثل رادار، هواپیماهای پیشرفته، و توسعه پرتاب موشک در زمان جنگ، به کامپیوترهای پیشرفته تر راه پیدا کرد. صفحه نمایش های جدیدی نیاز بود تا اطلاعات با ارزش چنین پروژه هایی رو پردازش کنه، و این باعث توسعه گرافیک های کامپیوتری به عنوان یه رشته شد.


1.1 دهه 1950
پروژه های ابتدایی مثل Whirlwind و SAGE Projects صفحه نمایش (display) های CRT رو به عنوان گزینه ای مناسب و رابط کاربری تعاملی، و light pen رو به عنوان یک دستگاه ورودی معرفی کردن. Douglas T.Ros از سیستم Whirlwind Sage در سال 1954 تجربه ای شخصی رو اجرا کرد که در اون برنامه ای که خودش نوشته بود حرکات انگشتش رو ذخیره (capture) کرد و به شکل مسیر (vector) (اسم خودش را به شکل حرکت) روی صفحه نمایش نمایان کرد. یکی از اولین بازی های تعاملی کامپیوتری (videogames) با گرافیک تعاملی قابل تشخیص برای oscilloscope توسط William Higinbotham برای سرگرم کردن بازدیدکنندگان سال 1958 از Brookhaven National Laboratory (آزمایشگاه ملی بروک هیون) ساخته شده بود و یک بازی تنیس رو شبیه سازی میکرد. در سال 1959، Douglas T . Ross یک بار دیگه در زمان کار در دانشگاه MIT تبدیل مختصات ریاضی به خطهای جهت دار تولید ابزار کامپیوتر رو ابداع کرد و یک شخصیت کارتون والت دیزنی رو روی صفحه نمایش خلق کرد.
شرکت پیشگام الکترونیک Hewlett-Packard در سال 1957 بعد از یک دهه، و برقراری روابط مستحم با دانشگاه استنفورد (Stanford University) از طریق بنیان گذارانش که از دانشجوهای استنفورد بودند، به یک شرکت سهامی عام تبدیل شد. این شروع یک دهه از تغییرات در خلیج سن فرانسیسکو (San Francisco Bay Area) و تبدیل شدنش به مرکز پیشتاز تکنولوژی کامپیوتری، معروف به Silicion Valley، بود. رشته گرافیک کامپیوتری با ظهور سخت افزارهای گرافیک کامپیوتری توسعه یافت. پیشرفت های بیشتر در پردازش به پیشرفت های بسیار بیشتر در گرافیک کامپیوتری تعاملی منجر شد. در سال 1959، کامپیوتر TX-2 در MIT’s Lincoln Laboratory (آزمایشگاه لینکلن دانشگاه MIT) ساخته شد. TX-2 تعدادی از رابط های انسان-ماشین رو ساختار دهی کرد. یه Light pen میتونست در کامپیوتر برای کشیدن طرح، با نرم افزار انقلابی Sketchpad از Ivan Sutherland استفاده بشه. با استفاده از light pen ، نرم افزار Sketchpad به شخص اجازه رسم اشکال ساده روی صفحه نمایش کامپیوتر، ذخیره اونها و بعد باز کردن مجددشون رو میداد. Light pen سلول فتوالکتریک (photoelectric cell) کوچکی در سر قلم داشت. سلول هر بار که روبروی صفحه کامپیوتر قرار میگرفت از خودش یک پالس الکترونیکی ساطع میکرد و تفنگ اکترونی (electron gun) صفحه نمایش به صورت مستقیم به اون شلیک میکرد. به سادگی با زمانبندی پالس الکترونیکی با محل تفنگ الکترونی، تعیین مکان تنفگ الکترونی روی صفحه در هر لحظه ممکن بود. وقتی محل مشخص شد، کامپیوتر باید یک مکان نما (cursor) روی اون محل رسم میکرد. به نظر میرسید Sutherland راه حلی عالی برای بسیاری از مشکلات گرافیکی که با آنها روبرو بود پیدا کرده باشه. حتی امروز، بسیاری از استاندارهای رابط گرافیکی کامپیوتر از این برنامه Sketchpad اولیه الهام میگیرند. یک مثال رسم محدوده هاست. برای مثال اگر کسی بخواد یه مربع رسیم کنه، نیازی نیست نگران این باشه که هر چهار ضلع مربع رو به شکلی عالی رسم کنه. میتونه بگه که میخواد یه مکعب بکشه، و بعد مکان و اندازه اون را معین کنه. نرم افزار یک مکعب عالی با ابعاد و مکان دقیق اون میسازه. یه مثال دیگه این هست که نرم افزار Sutherland اشیاء رو مدلسازی کرد – و نه فقط تصویری از اشیاء. به بیان دیگه، با مدلی از یک ماشین، شخص میتونه اندازه لاستیک ها رو بدون تاثیرگذاری روی سایر بخش های ماشین تغییر بده. میتونه بدنه ماشین رو بدون تغییر در شکل لاستیک ها کِش بیاره.
1.2 دهه 1960
اصطلاح "گرافیک کامپیوتری" (computer graphics) در سال 1960 توسط William Fetter ، طراح گرافیکی شرکت بویینگ (Boeing) مطرح شد. این عبارت قدیمی در بسیاری منابع به صورت کامل با این جمله میاد: "Fetter گفته که این اصطلاح در اصل توسط Verne Hudson از Wichita Division از Boeing بهش گفته شده." در سال 1961 دانشجوی دیگری در MIT، یعنی Steve Russell، دومین بازی ویدیویی به نام Spacewar رو ساخت. Spacewar به سرعت به موفقیت دست یافت و با اینکه برای DEC PDP-1 نوشته شده بود، نسخه های کپی اون به دست دارندگان دیگه PDP-1 رسید و در نهایت خود شرکت DEC یک کپی از اون را دریافت کرد. مهندسان DEC از این بازی به عنوان یک برنامه عیب یاب برای هر PDP-1 جدیدی که میساختند، قبل از فروشش استفاده میکردند. واحد فروش از این فرصت استفاده کرد و هنگام نصب سیستم های جدید، اولین بازی ویدیویی دنیا رو برای مشتریان جدید خودشون اجرا میکردند.
E. E. Zajac، دانشمندی در Bell Telephone Laboratory (آزمایشگاه تلفن بل یا به اختصار BTL)، فیملی به نام Simulation of a two-giro gravity attitude control system (شبیه سازی یک سیستم کنترل حالت جاذبه دو گیرویی) رو در سال 1963 ساخت. در این فیلم تولید کامپیوتر، Zajac نشون داد که چطور حالت یک ماهواره در چرخش به دور زمین تغییر میکنه. او انیمیشن خودش رو روی یک کامپیوتر پردازنده مرکزی IBM 7090 ساخت. همینطور Ken Knowlton، Frank Sinden و Michael Noll در BTL شروع به کار در زمینه گرافیک کامپیوتری کردند. Sinden فیلمی به نام Force, Mass and Motion (نیرو، جرم و حرکت) ساخت که قوانین حرکتی نیوتن را به نمایش میگذاشت. تقریباً در همون زمان دانشمندان دیگه، گرافیک های کامپیوتری رو برای نمایش تحقیقات خودشون میساختند. در Lawrence Radiotion Laboratory (آزمایشگاه تشعشات لارنس)، Nelson Max فیلم هایی به نام های Flow of a Viscous Fluid (جریان سیالات ویسکوز) و Propagation of Shock Waves in a Solid Form (انتشار امواج شک در حالت جامد) رو ساخت. Boeing Aircraft (صنایع هوایی بویینگ) فیلمی با عنوان Vibration of an Aircraft (ارتعاشات یک هواپیما) ساخت.
همینطور در اوایل دهه 1960، اتومبیل ها از کارهای اولیه Pierre Bezie در شرکت Renault (رنو) ، کسی که از منحنی های Paul de Casteljau استفاده کرد – منحنی هایی که امروزه بعد از کارهای Bezier در این زمینه به نام Bezier Curves (منحنی های بِزییِر) شناخته میشن – برای توسعه تکنیک های مدلسازی 3D برای بدنه خوردوهای Renault استفاده میکردند. این منحنی ها اساس بیشتر مدلسازیهای بر پایه منحنی رو در این زمینه تشکیل میده، چون منحنی ها – برخلاف Polygons (چند وجهی ها) – از لحاظ ریاضی موجودیت های پیچیده ای برای رسم و مدلسازی هستند.
چیزی به علاقه نشون دادن شرکت های بزرگ به گرافیک کامپیوتری نمونده بود. TRW، Lockheed-Georgia، General Electric و Sperry Rand در بین شرکتهایی هستند که در اواسط دهه 1960 در زمینه گرافیک کامپیوتری شروع به فعالیت کردند. IBM به سرعت با معرفی پایانه گرافیکی IBM 2250 ، اولین کامپیوتر گرافیکی قابل خرید از بازار، به این علاقه مندی واکنش نشون داد. Ralph Baer، مهندس ناظر در Sanders Associates، در سال 1966 یک بازی ویدیویی خانگی رو معرفی کرد که بعد با مالکیت Magnavox و به نام بازی Odyssey شناخته شد. با اینکه بسیار ساده بود، و تقریباً نیاز به قطعات اکترونیکی ارزان داشت، به بازیکن اجازه میداد تا نقطه های نورانی رو روی صفحه نمایش حرکت بده. این اولین محصول مصرفی گرافیک کامپیوتری بود. David C. Evans سرپرست مهندسی در بخش کامپیوتر Bendix Corporation از سال 1953 تا 1962 بود، بعد از اون به مدل پنج سال به عنوان پروفسور مهمان در دانشگاه Berkeley (برکلی) تدریس میکرد. اونجا علایقش رو در زمینه کامپیوترها و اینکه چطور با مردم ارتباط برقرار کردن ادامه داد. در سال 1966، University of Utah (دانشگاه یوتا) از Evans برای تشکیل یک برنامه علوم کامپیوتر استفاده کرد و گرافیک کامپیوتری به سرعت تبدیل به اولین علاقه مندی او شد. این دپارتمان جدید تبدیل به اولین مرکز تحقیقاتی دنیا در زمینه گرافیک کامپیوتری شد.
همینطور در سال 1966، Ivan Sutherland به نوآوری در MIT ادامه داد و اولین کامپیوتر کنترل شده با head-mounted display (نمایشگر سربندی یا به اختصار HMD) رو اختراع کرد. این دستگاه به خاطر سخت افزار مورد نیاز برای پشتیبانی Sword of Damocles (شمشیر داموکلس) نام گرفت. برای هر چشم دو تصویر قالب سیمی (wireframe) جداگانه نمایش میداد. این به بیننده اجازه میداد تا صحنه کامپیوتری را به صورت Stereoscopic 3D (سه بعدی برجسته) ببینه. بعد از گرفتن مدرک دکترا از دانشگاه MIT، Sutherland مدیر پردازش اطالاعات در ARPA (Advanced Research Projects Agency ) (آژانس پروژه های تحقیقاتی پیشرفته) ، و بعد از اون پروفسور در دانشگاه Harvard شد. در سال 1967 Sutherland توسط Evans دعوت شد تا به برنامه علوم کامپیوتر دانشگاه یوتا بپیونده. در اونجا، پروژه HMD خودش رو تکمیل کرد. بیست سال بعد، NASA از تکنیکهای او برای تحقیقات واقعیت مجازی (Virtual Reality) خودش استفاده کرد. در دانشگاه یوتا، Sutherland و Evans به شدت به دنبال مشاوره از شرکت های بزرگ بودند اما از نبود سخت افزارهای گرافیکی در اون زمان نا امید شدند، بنابراین شروع به برنامه ریزی برای ساخت شرکت خودشون کردند. در سال 1969، ACM ، A Special Interest Group on Graphics ( یک گروه ویژه علاقه مند به گرافیک یا به اختصار SIGGRAPH) را آغاز کرد که همایش ها، استاندارهای گرافیکی و انتشارات در زمینه گرافیک کامپیوتری رو سازمان دهی میکرد. در سال 1973، اولین همایش سالیانه SIGGRAPH برگزار شد، که تبدیل به یکی از نقاط تمرکز سازمان گردید. SIGGRAPH چه از لحاظ اندازه و چه اهمیت در زمینه گرافیک کامپیوتری در طول زمان رشد کرده است.
1.3 دهه 1970
بسیاری از مهمترین پیشرفت های اولیه در تبدیل گرافیک از ابزار به واقعیت در دانشگاه یوتا در دهه 1970 اتفاق افتاد، که با به خدمت گرفتن Ivan Sutherland از دانشگاه MIT بود. کلاسهای گرافیکی Sutherland به تعداد قابل توجهی از پیشگامان این رشته کمک کرد، از جمله دانشجویی به نام Edwin Catmull – بعدها به یکی از موسسان Pixar تبدیل شد. به خاطر وجود David C. Evans و Sutherland، دانشگاه یوتا (به اختصار UU) به عنوان محلی برای تحقیقات رشته گرافیک کامپیوتری شهرتی کسب کرد که به همین دلیل Catmull برای یادگیری انیمیشن 3D به اونجا رفت. Catmull از شرکت Boeing اومده بود و روی مدرکش در رشته فیزیک کار میکرد. به خاطر بزرگ شدن در Disney، Catmull عاشق انیمیشن بود اما متوجه شد که استعدادی در ترسیم نداره. حالا Catmull (در کنار بسیاری دیگران) کامپیوتر رو به عنوان پیشرفت طبیعی انیمیشن میدیدند و میخواستند جزئی از این تغییر انقلابی باشند. اولین انیمیشنی که Catmull دید ، انیمیشن خودش بود. او انیمیشنی از دست خودش در حال باز و بسته شدن ساخته بود. ساخت یک فیلم بلند با استفاده از گرافیک کامپیوتری تبدیل به یکی از اهداف او شد. در همون کلاس، Fred Parke انیمیشنی از صورت همسر خودش ساخت.
همینطور که آزمایشگاه گرافیک کامپیوتری UU مردم رو از مناطق به خودش جذب میکرد، John Warnock یکی از این پیشگامان اولیه بود؛ او بعدها Adobe Systems رو تاسیس کرد و در دنیای چاپ و نشر با زبان توصیف PostScript انقلابی ایجاد کرد، و کار Adobe ادامه پیدا کرد تا استاندارد صنعت نرم افزار ادیت عکس رو در Adobe Photoshop و استاندارد صنعت جلوه های ویژه فیلم ها رو در Adobe After Effects ایجاد کنه. Tom Stockham گروه پردازش عکس رو در UU رهبری میکرد که با آزمایشگاه گرافیک کامپیوتری به صورت نزدیک همکاری میکرد. Jim Clark هم اونجا بود؛ او بعدها Silicon Graphics, Inc. رو تاسیس کرد. اولین پیشرفت بزرگ در گرافیک کامپیوتری 3D در UU توسط این پیشگامان اولیه رقم خورد، hidden-surface algorithm (الگوریتم سطح پنهان). برای ترسیم نمایشی از یک شیء 3D روی صفحه نمایش، کامپیوتر باید مشخص کنه از دید بیننده کدام سطوح "پشت" شیء قرار دارند، و بنابراین در هنگام ایجاد (یا رندر) این تصویر باید "پنهان" باشند. 3D Core Graphics System (سیستم گرافیک هسته 3D یا به اختصار Core) اولین استاندار گرافیکی توسعه داده شده بود. گروهی از 25 متخصص از ACM Special Interest Group SIGGRAPH این "چهارچوب مفهومی" رو توسعه دادند. جزئیات در سال 1977 منتشر شد و تبدیل به پایه ای برای بسیاری از توسعه های آینده در این زمینه شد.
همینطور در دهه 1970، Henri Gouarud، Jim Blinn و Bui Tuong Phong به ایجاد پایه های shading (سایه زنی) در CGI از طریق توسعه مدلهای Gouraud shading و Blinn-Phong shading کمک کردن، که به گرافیک اجازه داد تا به فرای مرز "تخت" بودن بره و دقیق تر عمق رو به تصویر بکشه. همچنین Jim Blinn در سال 1978 Bump Mapping (نگاشت برجستگی) رو ابداع کرد، تکنیکی برای شبیه سازی سطوح ناهموار، و پیشگام بسیاری از انواع پیشرفته تر نگاشت که امروزه استفاده میشن.
بازی های ویدویی arcade (آرکید) مدرن به شکلی که امروزه شناخته میشن در دهه 1970 متولد شدند، با اولین بازی آرکید بلادرنگ دو بعدی (real-time 2D) با گرافیک sprite. بازی Pong در سال 1972 یکی از اولین بازی های آرکید کابینتی (cabinet game) بود. Speed Race در سال 1974 شامل حرکات sprite روی جاده ای که عمودی حرکت میکرد بود. Gun Fight در سال 1975 شامل شخصیت های شبیه به انسان با گرافیک sprite بود، در حالی که Space Invaders در سال 1978 تعداد بسیار زیادی sprite رو روی صفحه نمایش میداد؛ هر رو از یک ریزپردازنده Intel 8080 و video shifter (تغییر دهنده ویدیویی) Fujitsu MB14241 برای تسریع ترسیم گرافیک sprite استفاده میکردند.
1.4 دهه 1980
دهه 80 میلادی شاهد مدرن سازی و تجاری سازی گرافیک کامپیوتری بود. با افزایش کامپیوترهای خانگی، موضوعی که تا قبل از اون فقط یه رشته دانشگاهی بود توسط افراد بسیار بیشتری استفاده شد، و تعداد توسعه دهندگان گرافیک کامپیوتری به طرز چشم گیری افزایش یافت.
در اوایل دهه 1980، وجود ریزپردازنده های bit-slice و 16-bit شروع به انقلابی در پایانه های گرافیک کامپیوتری با تفکیک پذیری بالا (high-resolution) کردند، ایستگاه های کاری (workstation) نیمه مستقل (semi-standalone) و مستقل (standalone) که اکنون به طور فزاینده ای خودپردازشی (intelligent) میشدن. پردازش های گرافیکی و برنامه ای به جای اینکه به تکیه بر کامپیوتر مرکزی (mainframe) و کامپیوترهای کوچک (mini-computers) ادامه بدن، به طور فزاینده ای به سمت خودپردازشی در ایستگاه های کاری منتقل میشدند. حرکت ابتدایی نمونه اولیه این حرکت به سمت ایستگاه های کاری خودپردازشی گرافیک کامپیوتری با تفکیک پذیری بالا برای بازارِ "مهندسی به کمک کامپیوتر"، ایستگاه های کاری Orca 1000، 2000 و 3000 بودند، که توسط Orcatech از Ottawa ، شاخه ای از Bell-Northern Research، و به رهبری David Pearson یه پیشگام اولیه در ساخت ایستگاه کاری ، توسعه داده شده بود. Orca 3000 بر پایه Motorola 68000 و پردازنده های AMD bit-slice ساخته شده بود و سیستم عامل Unix داشت. به طور مستقیم قسمت پیچیده بخش مهندسی طراحی رو هدف قرار داده بود. هنرمندان و طراحان گرافیکی، کامپیوترها به طور خاص Commodore Amiga و Macintosh رو به عنوان ابزارهای طراحی جدی ای تلقی کردند، ابزارهایی که میتونن زمان رو ذخیره کنن و از روش های دیگه دقیق تر رسم کنن. Macintosh در بین استودیوهایی طراحی و تجاری محبوبیت بالاش رو حفظ کرد. کامپیوترهای مدرن، از دهه 1980، اغلب برای نمایش داده و اطلاعات با نمادها، آیکون ها و عکس ها از graphical user interface (رابط کاربر گرافیکی یا به اختصار GUI) استفاده میکنن.
دانشگاه Osaka ژاپن در سال 1982، LINKS-1 Computer Graphics System ، یه ابرکامپیوتر (supercomputer) که از 257 ریزپردازنده Z8001 برای هدف رندر گرافیک کامپیوتری 3D واقعی (realistic) استفاده میکرد رو توسعه داد. بر طبق اطلاعات Processing Society (جامعه پردازشگری) ژاپن: "اساس رندر تصاویر 3D، محاسبه نورِ (luminance) هر پیکسل برای ساخت سطح رندر شده از نمای داده شده، منابع نوری و محل شیء هست. سیستم LINKS-1 برای تحقق بخشیدن به روش رندرگیری تصویر که در اون هر پیکسل باید به صورت موازی و مستقل با استفاده از روش ray tracing (رهگیری نور) پردازش میشد، توسعه داده شد. با توسعه یه روش نرم افزاری جدید مخصوص رندرگیری با سرعت بالای تصاویر، LINKS-1 توانایی رندر سریع تصاویر به شدت واقعی رو داشت. ازش برای ساخت اولین ویدوی شبه افلاک نمای 3D از تمام آسمان استفاده شد که کاملاً با گرافیک کامپیوتری ساخته شده بود. ویدیو در غرفه Fujitsu در نمایشگاه بین المللی سال 1985 در Tsukuba ارائه شد." LINKS-1 قدرتمندترین کامپیوتر تا سال 1984 بود.
در ادامه محبوبیت فیلم Star Wars (جنگ ستارگان) و مجموعه های علمی تخیلی دیگه که به CGI سینمایی در اون دوران مربوط میشد، Lucasfilm و Industrial Light & Magic به عنوان "هدف" برای بسیاری از استودیوهای دیگه برای رسیدن به نقطه اوج گرافیک کامپیوتری در فیلم شناخته شدند. پیشرفت های مهمی در chroma keying ("پرده آبی" و...) برای فیلم های بعدی سه گانه اصلی استفاده شد. دو ویدیوی دیگه هم از این دوره ماندگار شدن: Dire Straits یه ویدیو تقریباً کامل CGI مثال زدنی برای موسیقی "Money For Nothing" در سال 1985، که CGI رو در بین طرفداران موسیقی در اون دوران محبوب کرد، و صحنه ای از Young Sherlock Holmes در همون سال که اولین کاراکتر کاملاً CGI رو در یک فیلم استفاده کرد (یه شوالیه متحرک سازی شده). در سال 1988، اولین shader ها – برنامه های کوچکی که برای انجام بعضی سایه پردازی های ویژه با الگوریتم های مجزا طراحی شده بودند – توسط Pixar توسعه داده شد، که اون زمان به عنوان یک شرکت از Industrial Light & Magic مستقل شده بود – گرچه عموم مرد نتیجه پیشرفت این تکنولوژی رو تا دهه آینده ندیدند. در اواخر دهه 80، کامپیوترهای SGI برای ساخت بعضی از فیلم های کوتاه کاملاً تولید کامپیوتر درPixar استفاده شدن، و ماشین های Silicon Graphics در این دهه به عنوان بهترینِ این رشته شناخته میشدن.
دهه 80 همینطور golden era (دهه طلایی) بازی های ویدویی نام گرفت؛ فروش میلیون ها سیستم از Atari، Nintendo و Sega در بین دیگر شرکت ها، گرافیک کامپیوتری رو برای اولین بار برای بینندگان جوان و تأثیر پذیر به نمایش گذاشت – مثل کامپیوترهای شخصی برپایه MS-DOS، Apple IIs و Macs و Amigas که به کاربرانی که توانایی های لازم رو داشتن، اجازه نوشتن بازی خودشون رو میدادن. بازی های Demoscenes و shareware گسترش پیدا کردن؛ John Carmack، کسی که در آینده یه مبتکر 3D شد، شروع به توسعه بازی های برپایه sprite خودش کرد. در آرکید ها، پیشرفت هایی در گرافیک 3D بلادرنگ تجاری پیدا شد. در 1988، اولین graphics boards (بردهای گرافیکی) بلادرنگ 3D در آرکیدها با Namco System 21 و Taito Air System معرفی شدند. این نوآوری، مقدمه ای بر graphics processing unit (واحد پردازش گرافیکی) یا به اختصار GPU های خانگی بود، تکنولوژی که در اون یک چیپ جداگانه و بسیار پر قدرت برای پردازش موازی با CPU برای بهبود گرافیک استفاده میشد.
1.5 دهه 1990
بزرگترین نکته در دهه 90، ظهور مدلسازی 3D در ابعاد وسیع و بهبود قابل توجه در کیفیت کلی CGI بود. کامپیوترهای خانگی قادر به انجام رندرهایی شدند که قبل از این فقط محدود به ایستگاه های کاری (workstation) و با هزینه چند صد دلاری میشد؛ با در دسترس بودن مدلسازی 3D در سیستم های خانگی، محبوبیت ایستگاه های کاری Silicon Graphics کاهش پیدا کرد و به اهمیت دستگاه های قدرتمند Microsoft Windows و Apple Macintosh که محصولات Autodesk مثل 3D Studio یا سایر نرم افزارهای رندر خانگی رو اجرا میکردند افزوده شد. تا آخر این دهه، برتری GPU شروع شد و تا به امروز ادامه داره.
اولین گرافیک های رندر شده ای که برای چشمهای غیر آزموده واقعی (photorealistic) به نظر میومد پدیدار شدند (هنوز برای هنرمندان CGI که به این مسائل آشنا بودند اینطور به نظر نمیرسید) و گرافیک های 3D در بازی، چند رسانه ای و انیمیشن بیشتر محبوب شدند. در اواخر دهه 80 و اوایل دهه 90، اولین سریال های تلویزیونی با گرافیک کامپیوتری در فرانسه به نام La Vie de betes از استودیوی Mac Guff Ligne (1988)، سریال Les Fables Geometriques از استودیو Fantome (1989-1991) و Quarxs اولین سریال گرافیک کامپیوتری HDTV از Maurice Benayoun و Francois Schuiten (استودیوی Z-A سال 1990-1993) ساخته شدند.
در فیلم، Pixar فعالیت های تجاری جدیش رو در این دهه زیر نظر Edwin Catmull با انتشار اولین فیلم بلندش در 1995 یعنی Toy Story (داستان اسباب بازی ها) شروع کرد و در زمینه موفقیت تجاری و جلب نظر منتقدان یک زلزه نُه ریشتری ایجاد کرد. استودیوی که shader های قابل برنامه ریزی رو ساخته بود، آثار انیمیشنی موفق بیشتری تولید کرد و کارش روی انیمیشن ویدیوی پیش رندر شده همچنان در این صنعت جلودار و در زمینه تحقیقات پیشتاز بود.
در بازی های ویدیویی، در 1992، Virtual Racing که روی Sega Model 1 arcade system board اجرا میشد، پایه گذار بازی های مسابقه ای کاملاً 3D بود و 3D polygonal graphics رو در بین طیف وسیع تری از مخاطبان صنعت بازی های ویدیویی به محبوبیت رسوند. Sega Model 2 در 1993 و Sega Model 3 در 1996 به صورت پیوسته مرزهای گرافیک 3D بلادرنگ تجاری رو جابجا کردند. روی PC هم Wolfenstein 3D، Doom و Quake، سه تا از اولین بازی های اول شخص تیراندازی 3D به شدت محبوب، توسط id Software با تحسین منتقدان و علاقه مندان در طول این دهه با استفاده از موتور رندری که در ابتدا به وسیله John Carmack ابداع شده بود، منتشر شدند. Sony Playstation و Nintendo 64 در بین سایر کنسول ها، میلیون ها نسخه به فروش رفتند و گرافیک 3D رو برای بازیکن های خانگی به محبوبیت رسوندند. اولین نسل بازی های 3D در اواخر دهه 90 تأثیر زیادی در محبوبیت گرافیک 3D در بین کاربران کنسول ها داشتند، مثل بازی های پلتفرمی Super Mario 64 و The Legend of Zelda: Ocarina Of Time و اولین بازی های 3D مبارزه ای مثل Virtua Fighter، Battle Arena Toshinden و Tekken.
تکنولوژی و الگوریتم های رندرگیری به شدت بهبود پیدا میکردن. در 1996، Krishnamurty و Levoy نسخه بهبود یافته bump mapping از Jim Blinn رو با نام normal mapping (نگاشت نرمال) اختراع کردند. 1999 شرکت Nvidia، GeForce 256 اولیه رو منتشر کرد، اولین کارت ویدیویی که با عنوان graphics processing unit (واحد پردازنده گرافیکی) یا به اختصار GPU شناخته میشد، که به گفته خودشون شامل " جابجایی، نورپردازی، راه اندازی/clipping مثلثی، و موتورهای رندر یکپارچه شده" بود. تا اواخر این دهه، کامپیوترها به چهارچوبی معمول برای پردازش های گرافیکی مثل DirectX و OpenGL تبدیل شدند. از اون زمان، گرافیک کامپیوتری به خاطر سخت افزارهای گرافیکی قدرتمند و نرم افزارهای مدلسازی 3D فقط واقعی تر و جزئیاتشون بیشتر شده. AMD هم به توسعه دهنده پیشرو بردهای گرافیکی در این دهه تبدیل شد، و duopoly رو در این زمینه ساخت که تا به امروز وجود داره.
1.6 دهه 2000
CGI در این دهه در همه جا به صورت جدی حظور داشت. بازی های ویدیویی و CGI سینمایی در اواخر دهه 90 از گرافیک کامپیوتری به همه جا راه پیدا کرده بودند، و این روند در دهه 2000 با سرعت بیشتری ادامه پیدا کرد. به یکباره CGI برای تبلیغات تلویزیونی هم به طور گسترده در اواخر دهه 90 و دهه 2000 استفاده شد و به همین دلیل افراد زیادی باهاش آشنا شدن.
افزایش مداوم و رضایت روزافزون از واحد پردازش گرافیکی به شدت در این دهه تعیین کننده بود، و همینطور که GPU های گرافیکی 3D به عنوان یک ضرورت برای سازندگان کامپیوترهای خانگی درنظر گرفته میشدند، قابلیت های رندرگیری 3D به یک ویژگی استاندارد تبدیل شد. خط تولید کارت های گرافیکی Nvidia GeForce با رقابت هر از چندگاهی ATI، بازار رو در اوایل این دهه تحت سلطه خودش گرفت. با پیشروی در این دهه، با معرفی چیپست های ارزان قیمت و ادامه بر تسلط به بازار از سوی هر دوی Nvidia و AMD، حتی کامپیوترهای با مشخصات پایین هم معمولاً شامل یک GPU با قابلیت 3D میشدند. Shader ها که در دهه 1980 برای اجرای اختصاصی روی GPU معرفی شده بودند تا اواخر این دهه توسط بیشتر سخت افزارهای مصرف کنندگان پشتیبانی میشدند و به طور قابل توجهی به گرافیک ها سرعت بخشیدن و در texture و shading، از طریق به کارگیری وسیع normal mapping، bump mapping، و چندین تکنیک دیگه که اجازه شبیه سازی جزئیات زیادی رو میدادند، اجازه بهبود بسیار زیادی رو در گرافیک کامپیوتری دادند.
گرافیک کامپیوتری استفاده شده در فیلم ها و بازی های ویدیویی به تدریج شروع به واقعی شدن کردند و به مرز دره وهمی (uncanny valley) رسیدند. فیلم های CGI با فیلم های کارتونی انیمیشنی سنتی مثل Ice Age و Madagascar و تعدادی هم از Pixar مثل Finding Nemo گسترش پیدا کردند و گیشه سینماها رو اشغال کردند. Final Fantasy: The Spirits Within اولین فیلمی که به صورت کامل توسط کامپیوتر تولید شده بود و شخصیت های شبه واقعی CGI ای که با motion capture ساخته شده بودند داشت هم در سال 2001 منتشر شد. گرچه فیلم در گیشه موفق نبود. بعضی از مفسران این نظر رو داشتند که یکی از دلایل این میتونه باشه که شخصیت های اصلی CGI ویژگی های حالت های چهره ای داشتند که به دره وهمی میفتاد. فیلم های انیمیشنی دیگه ای مثل The Polar Express هم در این دوره توجه ها رو به خودشون جلب کردند. Star Wars هم پیش درآمد سه گانه خودش رو معرفی کرد و جلوه ها در فیلم به بالا بردن انتظارات از CGI ادامه دادند.
در بازی های ویدیویی، Sony PlayStation 2 و 3 ، کنسول های بازی Microsoft Xbox و تولیدات Nintendo مثل GameCube و همچنین Windows PC طرفداران زیادی پیدا کردند. عنوان های CGI مثل سری های Grand Theft Auto، Assassin’s Creed، Final Fantasy، Bioshock، Kingdom Hearts، Mirror’s Edge و موارد بسیار دیگه به سمت واقعی تر شدن رفتند، صنعت بازی های ویدیویی رو بزرگ تر کردند تا اینکه سود این صنعت با سود صنعت فیلم قابل مقایسه شد. شرکت Microsoft تصمیم گرفت تا DirectX رو با برنامه XNA راحت تر در اختیار توسعه دهندگان مستقل قرار بده، اما موق نبود. DirectX خودش یک موفقیت تجاری باقی موند. گرچه، OpenGL هم به بلوغ خودش ادامه داد، و هم OpenGL و هم DirectX به شدت بهبود داده شدن. زبان های shader نسل دوم HLSL و GLSL در این دهه محبوبیت پیدا کردند.
در پردازش های علمی، تکنیک GPGPU که مقادیر زیاد داده رو بین GPU و CPU مبادله میکرد ابداء شد؛ باعث سرعت بخشید به کار تحقیق در بسیاری از بخش های بیولوژی مولکولی و بیوانفورماتیک شد. این تکنیک همینطور برای Bitcoin و بینایی کامپیوتری مورد استفاده قرار گرفت.
1.7 دهه 2010
در نیمه ابتدایی دهه 2010، CGI تقریبا در همه ویدیوها وجود داره، گرافیک های پیش رندر شده از نظر علمی تقریباً واقع نمایانه (photorealistic) هستند، و گرافیک بلادرنگ روی سیستم مناسب با مشخصات خوب ، میتونه برای چشمان غیرآزموده واقع نمایی رو شبیه سازی کنه.
Texture mapping به پردازشی چند مرحله ای با چندین لایه رسیده؛ در کل استفاده از texture mapping، bump mapping یا isosurfaces، normal mapping، lighting maps شامل specular highlights و تکنیک های reflection و shadow volumes در یک موتور رندر با استفاده از shader ها که به طور قابل توجهی به بلوغ میرسند، کاملاً معمول هست. Shader ها حالا برای کارهای پیشرفته در این زمینه تقریباً خیلی ضروری هستند، پیچیدگی قابل توجهی رو در دستکاری پیکسل ها، نقاط و تکستچرها، و افکت های بیشمار بر پایه هر عنصر فراهم میکنه. زبان های shader اونها یعنی HLSL و GLSL رشته های فعال در زمینه تحقیق و توسعه هستند. Phyically-Based Rendering (رندر بر پایه فیریک) یا به اختصار PBR، که حتی نگاشت های بیشتری برای شبیه سازی واقعی جریان نور به کار میگیره هم یکی از محدوده های تحقیقاتی فعال به حساب میاد. تجربیاتی در زمینه قدرت پردازشی مورد نیاز برای فراهم کردن گرافیک بلادرنگ در حالت تفکیک پذیری بسیار بالا (urtla-high-resolution) مثل Urtla HD شروع شده، گرچه بیشتر روی سخت افزارهای پرقدرت هست و نه در دسترس همگان.
در سینما، بیشتر فیلم های انیمیشنی CGI هستند؛ تعداد زیادی فیلم های انیمیشنی CGI هر سال ساخته میشن، اما اگر نگیم هیچ کدوم، میشه گفت فقط تعداد کمی به خاطر ترس از دره وهمی سعی در واقع نمایانی (Photorealism) دارن. بیشترشون کارتون های 3D هستند.
در بازی های ویدویی، Xbox One از Microsoft، Sony Playstation 4 و Nintendo Wii U در حال حاظر فضای خانه ها رو پر کردن و قابلیت گرافیک 3D بسیار پیشرفته ای رو دارند؛ Windows PC هم همچنان یکی از فعال ترین پلتفرم های بازی هست.


2. انواع تصاویر

2.1 Two-dimensional
2D computer graphics (گرافیک کامپیوتری 2D) تولید تصاویر دیجیتال بر مبنای کامپیوتر، اغلب از مدلها مثل تصاویر دیجیتال، و به وسیله تکنیکهای خاص مربوط به آنها است.
گرافیک کامپیوتری 2D بیشتر در برنامه هایی استفاده میشه که برپایه تکنولوژی های سنتی پرینت و ترسیم، مثل تایپوگرافی توسعه داده شده اند. در اون برنامه ها، تصاویر دو بعدی فقط ارائه ای از شیء دنیای واقعی نیست، بلکه یک محصول تصنعی مستقل هست که به اون ارزشهای معنایی اضافه شده ؛ مدلهای دو بعدی به این دلیل ترجیح داده میشن، چرا که نسبت به تصاویر گرافیک کامپیوتری 3D که رویکردی بیشتر شبیه به عکاسی داره تا تایپوگرافی، قدرت کنترل مستقیم بیشتری روی تصویر میدن.

2.2 Pixel art
فرم وسیعی از هنر دیجیتال به نام pixel art به وسیله نرم افزارهای گرافیکی رستر ساخته شده ، که تصاویر در سطح pixel ها ویرایش میشن. گرافیکهای بیشترِ کامپیوترهای قدیمی (یا محدود در در زمینه گرافیکی) و بازی های ویدیویی، بازی های ماشین حساب نموداری (graphing calculator) و بسیاری از بازی های گوشی های موبایل اغلب pixel art هستند.

2.3 Sprite graphics
یه Sprite (روح) تصویر یا انیمیشنی دو بعدی هست که با یه صحنه بزرگتر یکپارچه شده. در ابتدا فقط شامل اشیای گرافیکی بودن که به صورت جدا از نگاشت بیتیِ (bitmap) حافظه صفحه نمایش ویدویی به کار گرفته میشدن ، اما حالا شامل روش های مختلف هم پوشانی گرافیکی میشن.
در اصل، sprite ها روشی بودن برای یکپارچه سازی نگاشت های بیتی غیر مرتبط به شکلی که روی صفحه نمایش به صورت یک نگاشت بیتی معمولی به نظر برسن، مثل ساخت یک شخصیت انیمیشنی که میتونه روی صفحه، بدون تغییر اطلاعاتی که تمامیت صفحه رو توصیف میکنه، حرکت داده بشه. چنین sprite هایی میتونند توسط مدارهای الکترونیکی یا نرم افزار ساخته بشن. در مدارها، یه سخت افزار sprite، یه سخت افزار هست که از کانال های DMA (دسترسی مستقیم به حافظه) سفارشی سازی شده برای یکپارچه سازی عناصر تصویری با صفحه اصلی، که در اون دو منبع مجزای ویدویی روی هم قرار میگیرن، استفاده میکنه. نرم افزار میتونه از طریق روش های رندرگیری تخصصی، این کار رو شبیه سازی کنه.
2.4 Vector graphics
فرمت های Vector Graphics (گرافیک برداری) مکمل گرافیک رستری هستند. گرافیک رستری ارائه ای از تصاویر در غالب آرایه ای از پیکسل هاست و معمولاً برای ارائه تصاویر عکسی استفاده میشه. گرافیک برداری شامل کدگذاری اطلاعات درباره اشکال و رنگ هایی هست که تصویر رو تشکیل میدن، که در رندرگیری اجازه انعطاف بیشتری میده. مواردی هستند که بهترین روش، کار با ابزارها و فرمت های برداری هست و مواردی هم هستند که کار با ابزارها و فرمت های رستر بهترین روش هست. مواقعی هم هستند که هر دو فرمت با هم به کارگرفته میشن. فهم فواید و محدودیت های هر تکنولوژی و ارتباطات بین اونها، به استفاده کارآمد و موثر از ابزارها می انجامه.
2.5 Three-dimensional
3D graphics (گرافیک 3D) در مقایسه با گرافیک دو بعدی ، گرافیکی هست که از ارائه ای سه بعدی برای داده های هندسی استفاده میکند. برای عملکرد بهتر، این در کامپیوتر ذخیره شده. شامل تصاویری میشه که ممکنه برای نمایش در آینده یا برای نمایش بلادرنگ مورد استفاده قرار بگیره.
جدای این تفاوت ها، گرافیک کامپیوتری 3D در نمایش رندر نهایی بر الگوریتم های مشابه گرافیک کامپیوتر 2D درباره قاب و گرافیک رستری تکیه داره. در نرم افزار گرافیک های کامپیوتری، تفاوت بین 2D و 3D گهگاه کمرنگ میشه؛ نرم افزارهای 2D ممکنه از تکنیکهای 3D برای رسیدن به یک افکت مثل نورپردازی استفاده کنند، و البته در درجه اول نرم افزارهای 3D هم احتمال داره از تکنیک های رندر 2D استفاده کنند.
گرافیک کامپیوتری 3D مشابه مدلهای 3D هست. جدای از رندرگیری، مدل داخلِ فایلِ داده گرافیکی قرار داره. گرچه، تفاوت هایی وجود داره و یکی از اونها این هست که مدل 3D ارائه ای از هر شیء 3D به حساب میاد. تا زمان نمایش بصری، یک مدل، گرافیک نیست. به خاطر قابلیت پرینت شدن مدلهای 3D، این مدلها فقط محدود به فضاهای مجازی نمیشن. رندر 3D، نحوه نمایش یک مدل هست. همینطور متیونه در شبیه سازی های کامپیوتری و محاسبات غیر گرافیکی هم استفاده شود.

2.6 Computer animation
انیمیشن کامپیوتری (انیمیشن یا متحرک سازی کامپیوتری)هنر ساخت تصاویر متحرک توسط کامپیوترهاست. زیر رشته ای از گرافیک کامپیوتری و انیمیشن هست. به طور فزاینده ای به وسیله گرافیک کامپیوتری 3D ساخته میشه، با این حال گرافیک کامپیوتری 2D همچنان به طور وسیعی برای نیازهای رندر بلادرنگ، سبک و با پهنای باند کم استفاده میشه. بعضی اوقات هدف انیمیشن خود کامپیوتر است، اما گاهی اوقات هدف رسانه ای دیگه مثل فیلم هست. همینطور ازش به ویژه در صورت استفاده در فیلم بعنوان CGI (تصاویر تولید کامپیوتر) یاد میشه.
موجودیت های مجازی ممکنه با ویژگی های مختلفی معرفی و کنترل بشن، مثل مقادیر جابجایی (مکان، چرخش و مقیاس) ذخیره شده در ماتریس جابجایی یک شیء. انیمیشن، تغییر این مشخصات در زمان است. چندین روش دستیابی به انیمیشن وجود داره؛ شکل ابتدایی بر اساس ساخت و تغییر فریم کلیدی (Keyframes) هست، هر کدوم از این فریم های کلیدی، مقادیر هر مشخصه رو در زمان معین شده برای متحرک سازی در خودشون نگه میدارند. نرم افزار گرافیکی 2D/3D با هر فریم کلیدی تغییر میکنه، یک منحنی قابل ویرایش از مقادیر نگاشت شده در زمان میسازه، که به یک انیمیشن می انجامد. سایر روش های ساخت انیمیشن شامل تکنیک های Procedural (رویه ای) و Expression-based (بر پایه حالت) هست: مورد اول عناصر مرتبط موجودیت های متحرک سازی شده رو در مجموعه ای از ویژگی ها ترکیب، برای ساخت افکتهای ذره ای و شبیه سازی های جمیعت مناسب هست؛ دومی اجازه میده نتایج به دست اومده از عبارات منطقی تعریف شده توسط کاربر، به همراه ریاضیات، انیشمین رو به شکلی قابل پیش بینی خودکارسازی کنه (مناسب برای کنترل رفتار استخوان فرای چیزی که مدل سلسله مراتبی (hierarchy) در تنظیم سیستم اسکلتی عرضه میکنه.)
برای ایجاد خیال جابجایی، تصویر نمایش داده شده روی صفحه نمایش کامپیوتر باید به سرعت با تصویر جدیدی که مشابه با تصویر قبلی هست اما به مقدار کمی جابجا شده، جایگزین بشه. این تکنیک مشابه خیال جابجایی در تلویزیون و فیلم هست.



3. مفاهیم و قوانین
تصاویر به طور معمول به وسیله دستگاه هایی مثل دوربین ها، آینه ها، لنزها، تلسکوپ ها، میکروسکوپ ها و ... ساخته میشن. تصاویر دیجیتال شامل تصاویر برداری (Vector Images) و رستری (Raster Images) میشن، اما تصاویر رستر بیشتر استفاده میشن.
3.1 Pixel
در تصویر سازی دیجیتال، پیکسل (Pixel) (یا عنصر تصویر) یک نقطه در تصویر رستری هست. پیکسل ها روی یک شبکه (Grid) منظم دو بعدی قرار گرفته اند، و اغلب به وسیله نقطه یا مربع بیان میشن. هر پیکسل یک نمونه (Sample) از تصویر اصلی هست، و نمونه های بیشتر طبیعتاً تصویر دقیق تری از عکس اصلی به دست میده. شدت هر پیکسل متفاوته، در سیستم رنگ، هر پیکسل به طور معمول سه جزء مثل قرمز، سبز و آبی دارد.
3.2 Graphics
گرافیک ها (Graphics) ارائه های بصری بر روی سطوحی مثل صفحه نمایش کامپیوتر است. عکس ها، نقاشی ها، طراحی های گرافیکی، طراحی های مهندسی، نقشه ها یا تصاویر مثال هایی از این دست هستند. گرافیک ها اغلب متن و تصویر رو ترکیب میکنن. طراحی های گرافیکی ممکنه شامل انتخاب، خلق یا قراردهی آگاهانه تایپوگرافی تنها، مثل یک بروشور، آگهی، پوستر، وبسایت و یا کتاب بدون هیچ عنصر دیگه ای باشه. هدف میتونه وضوح یا برقراری ارتباط موثر باشه، ارتباط با سایر عناصر فرهنگی دیگه باشه، یا به تنهایی، خلق یک سبک متفاوت باشه.

3.3 Rendering
رندگیری تولید تصویری 2D از یک مدل 3D به وسیله یک برنامه های کامپیوتری است. یک فایل صحنه شامل اشیایی در زبان برنامه نویسی کاملاً تعریف شده یا ساختار داده است؛ که میتونه شامل اشیای هندسی، پنجره نمایش (viewpoint)، بافت (texture)، نورپردازی، یا اطلاعات سایه پردازی (shading) به عنوان توصیفی برای صحنه مجازی باشه. داده های داخل فایل صحنه سپس به برنامه رندرگیری (rendering program) داده میشن تا پردازش شده و به شکل تصویر دیجیتال یا فایل تصویری گرافیک رستری خروجی تولید کنه. برنامه رندرگیری معمولاً به صورت داخلی (built in) در نرم افزار گرافیک کامپیوتری قرار داره، اما بعضی دیگه به عنوان پلاگین (plug-in) یا نرم افزارهای کاملاً مجزا هستند. واژه "rendering" میتونه شبیه "ارائه هنرمند" از صحنه باشه. با اینکه جزییات تکنیکی روش های رندرگیری متفاوت هست، چالش های کلی غلبه بر تولید تصویر 2D از ارائه 3D ذخیره شده در فایل صحنه شامل Graphics Pipeline (مراحل کار گرافیکی) در کنار دستگاه رندرگیری، مثل GPU هست. GPU دستگاهیه که قادر به کمک کردن به CPU در محاسبات هست. اگر صحنه ای باید واقعی به نظر برسه و تحت نورپردازی مجازی نتیجه قابل پیش بینی داشته باشد، نرم افزار رندرگیری باید معادله رندرگیری را حل کند. معادله رندر برای تمام اثرات نور محاسبه نمیشه، بلکه یه مدل نورپردازی کلی برای تصاویر تولید کامپیوتر (CGI) هست. واژه Rendering همینطور برای توصیف پردازش محاسباتی افکت ها درادیت یک ویدیو برای تولید ویدوی خروجی نهایی به کار میره.

3.3.1 3D Projection
3D Projection روشی برای نگاشت نقاط سه بعدی، روی صفحه ای دو بعدیست. به دلیل این که بیشتر روش های نمایش داده های گرافیکی در حال حاظر روی سطوح مسطح دو بعدیه، استفاده از این نوع پروژکشن عمومیت داره، به ویژه در گرافیک های کامپیوتری، مهندسی و طراحی.

3.3.2 Ray tracing
Ray tracing (رهگیری پرتو) تکنیکی برای ایجاد تصویر با رهگیری مسیر نور از میان پیکسل ها در یک تصویر هست. این تکنیک توانایی تولید photorealism (فتورئالیسم، واقع نمایی) بالا رو داره؛ معمولاً بیشتر از انواع روشهای معمول scanline rendering (رندر اسکن-خطی)، اما با هزینه محاسباتی بسیار بیشتر.

3.3.3 Shading
Shading (سایه زنی) به به تصویر کشیدن عمق در مدلهای 3D یا تصاویر با استفاده از مقادیر مختلف تاریکی گفته میشه. این فرایندیه که در نقاشی برای به تصویر کشیدن مقادیر مختلف تاریکی روی کاغذ با اعمال بیشتر فشار یا با رنگ های تیره تر برای مناطق تاریک تر، و شدت کمتر یا رنگ های روشن تر برای مناطق روشن تر استفاده میشه. روش های مختلفی برای سایه زنی وجود داره شامل cross hatching (سایه زنی تقاطعی) که خطوط عمود بر هم با نزدیکی های متفاوت، با الگوی مشبک برای ایجاد سایه روی یک منطقه کشیده میشن. هرچه خط ها به هم نزدیک تر بشن، منطقه تیره تر خواهد شد. برعکس، هر چه فاصله خط ها بیشتر باشه، منطقه روشن تر خواهد شد. این واژه اخیراً در معنای عمومی "سایه زنی اعمال شده است" به کار میره.
3.3.4 Texture mapping
Texture mapping (نگاشت بافت) روشی برای اضافه کردن جزئیات، بافت سطوح، یا رنگ به گرافیک ها یا مدلهای 3D ساخت کامپیوتر هست. اولین استفاده از اون در گرافیک 3D توسط Dr Edwin Catmull در سال 1974 بود. یک نگاشت بافت به سطح یک شکل یا چند ضلعی اعمال (mapped یا نگاشته) میشه. این فرایند مشابه اعمال یک کاغذ طرح دار روی یک جعبه ساده و سفید هست. Multitexturing (چند بافتی) به استفاده بیش از یک بافت در یک زمان روی یک چند ضلعی (polygon) گفته میشه. Procedural textures (بافت های تابعی) (ساخته شده به وسیله تغییر مقادیر یک الگوریتم که یک بافت خروجی رو تولید میکنه)، و bitmap texture (بافت نگاشت بیتی) (ساخته شده در یک نرم افزار ادیت عکس یا وارد شده از یک دوربین دیجیتال)، به طور کلی روش های به کار گیری جزئیات بافت روی مدلهای 3D در نرم افزارهای گرافیک کامپیوتری هستند، در حالی که نحوه قرار گیری بافت روی سطح مدل اغلب نیازمند تکنیکی است که با نام UV mapping (نگاشت UV) (تنظیم دلخواه مختصات بافت) برای Polygon surface (سطوح چند ضلعی) شناخته میشه، در حالی که NURBS surfaces (سطوح نربز) مقداردهی ذاتی خودشون رو دارن که به عنوان مختصات دهی بافت استفاده میشه. نگاشت بافت همچنین به عنوان یک اصل، تکنیک هایی برای ساخت normal maps (نگاشت های طبیعی) و bump maps (نگاشت های برآمدگی) که با بافت تطابق داده میشه تا ارتفاع رو شبیه سازی کنه و specular maps (نگاشت های بازتابی) برای کمک به شبیه سازی درخشش و بازتاب نور، و environment mapping (نگاشت محیطی) برای شبیه سازی انعکاس آینه مانند که gloss (صیقلی) نامیده میشود، رو شامل میشه.

3.3.5 Anti-aliasing
رندرگیری موجودیت های غیر وابسته به تفکیک پذیری (resolution-independent) (مثل مدلهای 3D) برای نمایش روی یک دستگاه رستر (بر پایه پیکسل) مانند نمایشگر کریستال مایع (LCD) یا تلویزیون های CRT به طور غیر قابل اجتناب ایجاد aliasing artifacts (مصنوعات دندانه ای) میکنه که بیشتر در لبه های اشکال و مرزهای جزئیات بافت اتفاق میفته؛ این مصنوعات به طور غیر رسمی jaggies نامیده میشن. روش های Anti-aliasing (ضد دندانه ای) چنین مشکلاتی رو اصلاح میکنه، که نتیجش تصاویری لذت بخش تر برای بینندست، اما میتونه تا حدی از لحاظ محاسباتی پر هزینه باشه. الگویتم های anti-aliasing متفاوتی (مانند supersampling) میتونن به کار گرفته بشن، و سپس برای بهترین عملکرد رندرگیری در مقابل کیفیت تصویر نهایی سفارشی سازی بشن؛ یک هنرمند گرافیکی باید این دو مورد اگر از روش های anti-aliasing استفاده میشه در نظر داشته باشه.نمایش یک bitmap texture (بافت نگاشت بیتی) که pre-anti-aliased (از قبل anti-aliased شده) باشه روی صفحه نمایشی (یا مکانی از اون) که در تفکیک پذیری تصویری از خود بافت تفاوت داره (مانند مدل بافت دهی شده ای که از دوربین مجازی فاصله دارد) مصنوعات دندانه ای رو ایجاد میکنه، در حالی که هر بافت تعریف شده به وسیله تابع همیشه مصنوعات دندانه ای رو ایجاد میکنه، چرا که وابسته به تفکیک پذیری تصویر نیست؛ تکنیکهایی مانند mipmapping و texture filtering به حل مشکلات دندانه ای شدن مربوط به بافت کمک میکنه.

3.4 Volume rendering
رندر حجمی (Volume rendering) تکنیکی هست که برای نمایش یک پروژکشن 2D از مجموعه داده های نمونه برداری شده پراکنده 3D استفاده میشه. یه مجموعه داده 3D معمولی گروهی از تصاویر 2D برش خورده هستند که با یک اسکنر CT یا MRI به دست اومده اند. معمولاً اینها به وسیله الگوهای منظم به دست میاد (برای مثال یک برش در هر میلیمتر) و معمولاً در یک الگوی منظم تعداد پیکسلهای تصویر منظمی وجود داره. این مثالی از یک شبکه حجمی منظم هست، با هر عنصر حجم، یا voxel نمایش داده شده با یک مقدار که با نمونه گیری مناطق کناری که voxel رو احاطه کرده به دست میاد.

3.5 3D Modeling
3D modeling (مدلسازی سه بعدی) فرایند توسعه ارائه ای ریاضی و قالب سیمی (wireframe) به نام 3D model (مدل سه بعدی) از هر شیء سه بعدی هست، که با نرم افزارهای ویژه ساخته میشه. مدلها ممکنه خودکار یا دستی ساخته بشن؛ فرایند مدلسازی دستی برای آماده سازی داده های شیء برای گرافیک کامپیوتری سه بعدی مشابه با هنرهای پلاستیکی (plastic arts) مثل مجسمه سازی (sculpting) هست. مدلهای 3D میتونن به چندین روش ساخته بشن: استفاده از منحنی های NURBS برای ساخت تکه های نرم و دقیق سطح، polygon mesh modeling (مدلسازی شبکه ای چند ضلعی) (دستکاری شکل چند وجهی)، یا polygon mesh subdivision (شبکه چند ضلعی تقسیم شده) (موزاییک کاری پیشرفته چندضلعی ها، که در نتیجه اون سطوح نرم تر مشابه با مدلسازی NURBS تولید میشه). یک مدل 3D میتونه از طریق فرایند 3D Rendering به صورت تصویری دو بعدی نمایش داده بشه، در یک شبیه سازی کامپیوتری پدیده های فیزیکی استفاده بشه، یا به طور مستقیم برای اهداف دیگه متحرک سازی بشه. همچنین میشه مدل رو به وسیله دستگاه های 3D Printing (پرینترهای سه بعدی) ساخت.


4. پیشگامان گرافیک کامپیوتری
3.1 Charles Csuri
Charles Csuri پیشگامی در انیمیشن کامپیوتری و هنر دیجیتال هست و اولین هنر کامپیوتری رو در سال 1964 ساخته. Csuri توسط Smithsonian به عنوان پدر هنر دیجیتال و انیمیشن کامپیوتری ، و توسط Museum of Modern Art (موزه هنرهای معاصر یا MoMA) و Association for Computing Machinery-SIGGRAPH (انجمن ماشین های کامپیوتری) به عنوان پیشگام انیمیشن کامپیوتری شناخته شده است.

4.2 Donald P. Greenberg
Donald P. Greenberg یک پیشروی نوآوری در گرافیک کامپیوتری هست. Greenberg صدها مقاله نوشته و به عنوان معلم و استاد برای بسیاری از هنرمندان برجسته گرافیک کامپیوتری، انیماتورها و محققانی چون Robert L. Cook، Marc Levoy، Brian A. Barsky و Wayne Lytle بوده. بسیاری از شاگردان سابق اون برای دستاوردهای تکنیکی برنده Academy Awards (جایزه اسکار) و بسیاری دیگر برنده SIGGRAPH Achievement Award (جایزه دستاورد SIGGRAPH) شدند. Greenberg مدیر مؤسس NSF Center for Computer Graphics and Scientific Visualization (مرکز NSF برای گرافیک کامپیوتری و بصری سازی علمی) بوده است.

4.3 Aaron Marcus
Aaron Marcus یکی از اولین طراحان گرافیکی دنیاست که با گرافیک کامپیوتری کار کرده. او بیش از 250 مقاله و نویسنده/ جزو نویسندگان شش کتاب بوده. او بیش از 40 سال در سطح بین المللی به نشر پرداخته، سخنرانی کرده، آموزش داده و مشورت داده و از او به عنوان سخنران اصلی در همایش هایی مثل ACM/SIGCHI، ACM/SIGGRAPH، Usability Professionals Association (UPA) دعوت به عمل آمده. در سال 2007 به عنوان AIGA Fellow نام گرفت و در سال 2008 برای CHI Academy انتخاب شد. او مؤسس Aaron Marcus and Associates, Inc. ، یک شرکت طراحی تخصصی پیشگام و شناخته شده در سطح جهانی در زمینه توسعه برنامه های رابط کاربری/تجربه کاربری بوده است.

4.4 A.Michael Noll
Noll یکی از اولین محققاتی بود که از یک کامپیوتر دیجیتال برای ساخت الگوهای هنری و رسمی سازی استفاده از پردازش های تصادفی در ساخت هنرهای بصری استفاده کرد. او در سال 1962 شروع به خلق هنرهای کامپیوتری کرد، که او رو تبدیل به یکی از اولین هنرمندان کامپیوتر دیجیتال میکنه. در سال 1965، Noll به همراه Frieder Nake و Georg Nees اولین کسانی بودند که نمایشگاه عمومی برای هنر کامپیوتری خود برگذار کردند. در آپریل 1965، گالری Howard Wise نمایشگاهی از هنر کامپیوتری Noll به همراه الگوهای نقاط تصادفی از Bela Julesz برگذار کرد.

4.5 سایر پیشگامان
Pierre Bezier – Jim Blinn – Jack Bresenham – John Carmack – Paul de Casteljau – Ed Catmull – Frank Crow – James D. Foley – William Fetter – Henry Fuchs – Henry Gouraud – Nadia Magnenat Thalmann – Benoit B. Mandelbort – Martin Newell – Fred Parke – Bui Tuong Phong – Steve Russell – Daniel J. Sandin – Alvy Ray Smith – Bob Sproull – Ivan Sutherland – Daniel Thalmann – Andries van Dam – John Warnock – Lance Williams

4.6 سازمان های مهم
SIGGRAPH – SIGGRAPH Asia - Bell Telephone Laboratories – Unites States Armed Forces ، به ویژه Whirlwind computer و SAGE Project – Boeing – IBM – Renault – دپارتمان علوم کامپیوتر دانشگاه Utah – Lucasfilm و Industrial Light & Magic – Autodesk – Adobe Systems – Pixar – Silicon Graphics, Khronos Group & Open GL – دپارتمان DirectX از Microsoft – Nvidia و AMD

5. رشته گرافیک های کامپیوتری
رشته گرافیک های کامپیوتری زیر شاخه ای از علوم کامپیوتر هست که به مطالعه روش هایی برای سنتز دیجیتال و دستکاری محتوای بصری میپردازه. گرچه این اصطلاح اغلب به گرافیک کامپیوتری سه بعدی اشاره دارد، اما گرافیک دو بعدی و پردازش تصویر رو هم در بر میگیره.
به عنوان یک رشته دانشگاهی، گرافیک کامپیوتری به وسیله تکنیک های محاسباتی به مطالعه و دستکاری اطلاعات بصری و هندسی میپردازه. به جای اینکه فقط به مباحث زیبایی شناسی بپردازه روی اصول ریاضی و محاسباتی ساخت و پردازش تصویر تمرکز داره. گرافیک های کامپیوتری اغلب از رشته بصری سازی (Visualization) تفکیک میشه، گرچه هر دو رشته تشابهات زیادی دارن.

6. موارد استفاده
گرافیک کامپیوتری در این زمینه ها ممکنه مورد استفاده قرار بگیره:

محاسبات زیست شناسی – محاسبات فیزیکی – طراحی به کمک کامپیوتر – شبیه سازی کامپیوتری – هنر دیجیتال – آموزش – طراحی گرافیکی – اینفوگرافیک – بصری سازی اطلاعات – طراحی منطقی دارو – بصری سازی علمی – جلوه های ویژه برای سینما – بازی های ویدویی – حقیقت مجازی – طراحی وب

No comments:

Post a Comment

کاملترین مجموعه پاسخ های بازی دانا

جواب بازی دانا