Історія розвитку комп’ютерної графіки,ФМК 12 група,2015 рік
Поняття комп’ютерної графіки
Визначним досягненням людства в останні десятиріччя є швидкий розвиток електроніки, обчислювальної техніки та створення на їхній основі багатопланової автоматизованої системи комп'ютерної графіки.
На початку свого розвитку комп'ютерну графіку розглядали як частину системного програмування для ЕОМ або один з розділів систем автоматизованого проектування (САПР). Сучасна комп'ютерна графіка становить ряд напрямів і різноманітних застосувань. Для одних із них основою є автоматизація креслення технічної документації, для інших – проблеми оперативної взаємодії людини й комп'ютера, а також задачі числової обробки, розшифрування та передачі зображень.
Однією з основних підсистем САПР, що забезпечує комплексне виконання проектних робіт на основі ЕОМ, є комп'ютерна графіка (КГ).
Комп'ютерною, або машинною, графікою називають наукову дисципліну, яка розробляє сукупність засобів та прийомів автоматизації кодування, обробки й декодування графічної інформації. Іншими словами, комп'ютерна графіка розробляє сукупність технічних, програмних, інформаційних засобів і методів зв'язку користувача з ЕОМ на рівні зорових образів для розв'язання різноманітних задач при виконанні конструкторської та технічної підготовки виробництва.
Вивчення комп'ютерної графіки зумовлене:
- широким впровадженням системи комп'ютерної графіки для забезпечення систем автоматизованого проектування, автоматизованих систем конструювання (АСК) та автоматизованих систем технологічної підготовки виробництва (АСТПВ) в усіх сферах інженерної діяльності;
- значним обсягом перероблюваної геометричної інформації, що становить 60 .80 % загального обсягу інформації, необхідної для проектування, конструювання та виробництва літаків, кораблів, автомобілів, складних архітектурних споруд тощо;
- необхідністю автоматизації виконання численних креслярсько-графічних робіт;
- необхідністю підвищення продуктивності та якості інженерної праці.
Мета науки - розробка формальних способів побудови двох-, трьох-, а також багатовимірних наочних зображень, максимально реалістичних або максимально точних з точки зору спостерігача. Наука тісно пов'язана з геометрією, психологією, математикою, моделюванням, комп'ютерним програмуванням. Метою комп'ютерної графіки також є підвищення продуктивності інженерної праці та якості проектів, зниження вартості проектних робіт, скорочення термінів виконання їх.
Завданням комп'ютерної графіки є звільнення людини від виконання трудомістких графічних операцій, які можна формалізувати, вироблення оптимальних рішень, забезпечення природного зв'язку людини з ЕОМ на рівні графічних зображень.
Сучасна комп'ютерна графіка - це досить складна, ґрунтовно пропрацьована і різноманітна науково-технічна дисципліна. Деякі її розділи, такі як геометричні перетворення, способи опису кривих і поверхонь, до теперішнього часу вже досліджені досить повно. Ряд областей продовжує активно розвиватися: методи растрового сканування, видалення невидимих ліній і поверхонь, моделювання кольору і освітленості, текстурування, створення ефекту прозорості і напівпрозорості та ін.
Історія розвитку комп’ютерної графіки
Комп'ютерна графіка в початковий період свого виникнення була далеко не такою ефектною, якою вона стала в нинішні дні. В ті роки комп'ютери знаходилися на ранній стадії розвитку і були здатні відтворювати тільки найпростіші контури (лінії). Ідея комп'ютерної графіки не відразу була підхоплена, але її можливості швидко росли, і поступово вона стала займати одну з найважливіших позицій в інформаційних технологіях.
Першою офіційно визнаною спробою використання дисплея для виведення зображення з ЕОМ з'явилося створення в Массачусетському технологічному університеті машини Whirlwind - I в 1950 р.. Таким чином, виникнення комп'ютерної графіки можна віднести до 1950-х років. Сам же термін "комп'ютерна графіка" придумав в 1960 р. співробітник компанії Boeing У. Феттер.
Перше реальне застосування комп'ютерної графіки зв'язують з ім'ям Дж. Уітні. Він займався кіновиробництвом в 50-60-х роках і уперше використовував комп'ютер для створення титрів до кінофільму.
Батьком-засновником 3D графіки можна назвати Івана Сазерленда - цей талановитий чоловік за часів роботи в університеті аспірантом у 1961 році створив додаток SketchPad. SketchPad - невелика, але революційна програма в світі комп'ютерних технологій, яка дозволяла виробляти на світ перші 3D об'єкти. Програма використовувала світлове перо для зображення простих фігур на екрані. Отримані картинки можна було зберігати і відновлювати. У цій програмі було розширене коло основних графічних примітивів, зокрема, окрім ліній і точок був введений прямокутник, який задавали розмірами і розташуванням. Саме SketchPad стала тим самим «поштовхом», який послужив бурхливому розвитку тривимірного зображення - саме завдяки SketchPad ми маємо таке 3D, яке воно є.
У тому ж 1961 р. студент Стів Рассел створив першу комп'ютерну відеогру Spacewar ("Зоряна війна"), а науковий співробітник Bell Labs Едвард Зеджек створив анімацію "Simulation of a two - giro gravity control system".
Захистивши свою дисертацію, що розповідає про світ, яким би він був у 3D (тоді ще ця абревіатура не застосовувалася), спільно з доктором Девідом Евансом Іван запускає в громадськість свій новий проект - першу в світі кафедру комп'ютерних технологій, а саме векторної і растрової графіки. Переслідують Еванс і Сазерленд при цьому тільки благородні цілі - прилучення талановитих вчених до розробки та вивченню сучасних комп'ютерних та інформаційних технологій. Не встигнувши розігнатися на своєму новому терені, вони знайшли нового союзника - колишнього в той час студентом Еда Катмулла (сьогодні він є технічним директором знаменитої мультиплікаційної студії Pixar). Його безумовним досягненням є те, що саме Ед вперше зміг зробити тривимірний об'єкт. Цим об’єктом була модель його власної кінцівки - кисть руки. Тоді це було дуже великим досягненням, і прираховувалося до технологій майбутнього. В 1969 році співпраця Івана з Едом виросла у їх першу власну компанію, що займається розробкою і масовим виробництвом CG (розшифровується, як computer graphics - комп'ютерна графіка). Назвали її досить просто - «Еванс і Сазерленд».
Спочатку комп'ютерна графіка була векторною, тобто зображення формувалося з тонких ліній. Ця особливість була пов'язана з технічною реалізацією комп'ютерних дисплеїв. Надалі ширше застосування отримала растрова графіка, заснована на представленні зображення на екрані у вигляді матриці однорідних елементів (пікселів).
У середині 60-х кількома талановитими фізиками була організована компанія «Вищих Математичних Технологій», яка повинна була займатися вивченням радіаційних полів. Саме вони зробили наступний широкий крок вперед - їх ПЗ Synthavision, запущене для вивчення радіації перенесло ряд змін - після глобальної адаптації, Synthavision стало можливим застосовувати для рендерингу та як основу «трасування променів» - саме способом трасування променів стало можливим прораховувати геометричні об'єкти, відображення, різні відблиски і т.д.
Євген Трубецькой і англієць Карл Людвіг внесли, мабуть, найбільший внесок у розвиток "ray-tracing", внісши велику кількість різних змін і налагодивши її роботу до дрібниць. Незважаючи на те, що тогочасні комп'ютери були колосально великими - графіка, відтворена ними, була дуже незграбною. Комп'ютери в той час відрізнялися досить скромними технічними характеристиками, що й перешкоджало просуванню і роботі 3D графіки.
Необхідний був прийнятний результат, а отже, і більш потужні робочі станції. Джим Кларк - один з професорів кафедри CG Стенфордського університету - об'єднавшись з Еббі Сільверстоуном, відкриває в Наприкінці 1981 року компанію, відому як «Силіконова графіка». Випустивши IRIS 1000 - сучасну за тими мірками і дуже потужну машину, Джим і Еббі вирішили продовжити свою діяльність. І вже через кілька місяців, у світ виходить кілька комп'ютерів, оснащених ОС Unix.
Університет штату Юта стає центром досліджень в області комп'ютерної графіки завдяки Д. Евансу і А. Сазерленду, які в цей час були найпомітнішими фігурами в цій області. Пізніше їх коло стало швидко розширюватися. Учнем Сазерленда став Е. Кетмул, майбутній творець алгоритму видалення невидимих поверхонь з використанням Z-буфера (1978). Тут також працювали Дж.Варнок, автор алгоритму видалення невидимих граней на основі розбиття області (1969) і засновник Adobe System (1982), Дж.Кларк, майбутній засновник компанії Silicon Graphics (1982). Усі ці дослідники дуже сильно просунули алгоритмічну сторону комп'ютерної графіки.
У 1970-і роки відбувся різкий стрибок в розвитку обчислювальної техніки завдяки винаходу мікропроцесора, внаслідок чого почалася мініатюризація комп'ютерів і швидке зростання їх продуктивності. І в цей же час починає інтенсивно розвиватися індустрія комп'ютерних ігор. Одночасно комп'ютерна графіка починає широко використовуватися на телебаченні і в кіноіндустрії. Дж.Лукас створює відділення комп'ютерної графіки на Lucasfilm.
У 1977 р. з'являється новий журнал "Computer Graphics World".
В середині 1970-х років графіка продовжує розвиватися у бік все більшої реалістичності зображень. Е. Кетмул в 1974 р. створює перші алгоритми текстурування криволінійних поверхонь. У 1975 р. з'являється згаданий раніше метод зафарбовування Фонга. У 1977 г. Дж.Блін пропонує алгоритми реалістичного зображення шорстких поверхонь (мікрорельєфів); Ф. Кроу розробляє методи усунення ступінчастого ефекту при зображенні контурів (антиелайзінг). Дж.Брезенхем створює ефективні алгоритми побудови растрових образів відрізків, кіл і еліпсів. Рівень розвитку обчислювальної техніки до цього часу вже дозволив використовувати "жадібні" алгоритми, що вимагають великих об'ємів пам'яті, і в 1978 р. Кетмул пропонує метод Z -буфера, в якому використовується область пам'яті для зберігання інформації про "глибину" кожного пікселя екранного зображення. У цьому ж році Сайрус і Бек розвивають алгоритми відсікання ліній. А в 1979 р. Кей і Грінберг уперше реалізують зображення напівпрозорої поверхні.
У 1980 р. Т. Уіттед розробляє загальні принципи трасування променів, що включають віддзеркалення, заломлення, затінювання і методи антиелайзингу. У 1984 р. групою дослідників (Горел, Торренс, Грінберг та ін.) була запропонована модель випромінювання, одночасно розвиваються методи прямокутного відсікання областей.
У 1980-і роки з'являється цілий ряд компаній, що займаються прикладними розробками в області комп'ютерної графіки. У 1982 г. Дж.Кларк створює Silicon Graphics, тоді ж виникає Ray Tracing Corporation, Adobe System, в 1986 р. компанія Pixar відгалужується від Lukasfilm.
У ці роки комп'ютерна графіка вже міцно впроваджується в кіноіндустрію, розвиваються додатки до інженерних дисциплін. У 1990-і роки у зв'язку з виникненням мережі Internet у комп'ютерної графіки з'являється ще одна сфера застосування.
У вітчизняній науці теж були свої розробки, серед яких можна назвати ряд технічних реалізацій дисплеїв, виконаних в різні роки:
1968, ВЦ АН СРСР, машина БЭСМ- 6, ймовірно, перший вітчизняний растровий дисплей з відеопам'яттю на магнітному барабані;
1972, Інститут автоматики і електрометрії (ИАиЭ), векторний дисплей "Символ";
1973, ИАиЭ, векторний дисплей "Дельта";
1977, ИАиЭ, векторний дисплей ЭПГ- 400;
1982, Київ, НДІ периферійного устаткування, векторний дисплей СМ- 7316, 4096 символів, роздільна здатність 2048х2048;
1979-1984, Інститут прикладної фізики, серія растрових кольорових півтонових дисплеїв "Гамма". Останні дисплеї цієї серії мали таблицю колірності, підтримували вікна, плавне масштабування.
Таким чином, в процесі розвитку комп'ютерної графіки можна виділити декілька етапів.
У 1960-1970-і роки вона формувалася як наукова дисципліна. В цей час розроблялися основні методи і алгоритми : відсікання, растрова розгортка графічних примітивів, зафарбовування візерунками, реалістичне зображення просторових сцен (видалення невидимих ліній і граней, трасування променів, випромінюючі поверхні), моделювання освітленості.
У 1980-і графіка розвивається більш як прикладна дисципліна. Розробляються методи її застосування в самих різних областях людської діяльності.
У 1990-і роки методи комп'ютерної графіки стають основним засобом організації діалогу "людина-комп'ютер" і залишаються такими по теперішній час.
У 1993 році компанією Silicon Graphics запропонований стандарт OpenGL (SGI Graphical Language), який широко використовується в даний час. У цих системах використовуються графічні формати для обміну даними, що представляють собою опис зображення у функціях віртуального графічного пристрою (у термінах примітивів і атрибутів). Графічний формат (метафайл) забезпечує можливість запам'ятовувати графічну інформацію єдиним чином, передавати її між різними системами і інтерпретувати для виведення на різні пристрої. Такими форматами стали CGM - Computer Graphics Metafile, PostScript - Adobe Systems 'Language, GEM - GEM Draw File Format та ін..
Роботи по стандартизації були спрямовані на розширення функціональності графічних мов і систем, включення до них засобів опису не тільки даних креслень і 3D- моделей, а й інших властивостей і характеристик виробів. В області автоматизації проектування уніфікація основних операцій геометричного моделювання призвела до створення інваріантних геометричних ядер, призначених для застосування в різних САПР. Найбільшого поширення набули два геометричних ядра Parasolid (продукт фірми Unigraphics Solutions) і ACIS (компанія Spatial Technology). Ядро Parasolid розроблено в 1988 р. і в наступному році стає ядром твердотільного моделювання для CAD / CAM Unigraphics, а з 1996 р. - промисловим стандартом.
Сфери застосування комп’ютерної графіки
Сфера застосування комп'ютерної графіки включає чотири основні області.
Відображення інформації
Проблема представлення накопиченої інформації (наприклад, даних про кліматичні зміни за тривалий період, про динаміку популяцій тваринного світу, про екологічний стан різних регіонів і тому подібне) краще всього може бути розв'язана за допомогою графічного відображення.
Жодна з галузей сучасної науки не обходиться без графічного представлення інформації. Окрім візуалізації результатів експериментів і аналізу цих натурних спостережень існує велика область математичного моделювання процесів і явищ, яка просто немислима без графічного виводу. Наприклад, описати процеси, що протікають в атмосфері або океані, без відповідних наочних картин течій або полів температури практично неможливо. У геології в результаті обробки тривимірних натурних даних можна отримати геометрію пластів, що залягають на великій глибині.
У медицині нині широко використовуються методи діагностики, що використовують комп'ютерну візуалізацію внутрішніх органів людини. Томографія, як і ультразвукове дослідження, дозволяє отримати тривимірну інформацію, яка потім піддається математичній обробці і виводиться на екран. Окрім цього застосовується і двовимірна графіка: енцефалограми, міограми, що виводяться на екран комп'ютера або графічний пристрій.
Проектування
У будівництві і техніці креслення давно є основою проектування нових споруд або виробів. Процес проектування з необхідністю є ітеративним, тобто конструктор перебирає безліч варіантів з метою вибору оптимального по яких-небудь параметрах. Не останню роль в цьому грають вимоги замовника, який не завжди чітко уявляє собі кінцеву мету і технічні можливості. Побудова попередніх макетів - досить довга і дорога справа. Сьогодні існують розвинені програмні засоби автоматизації проектно-конструкторських робіт (САПР), що дозволяють швидко створювати креслення об'єктів, виконувати прочностные розрахунки і тому подібне. Вони дають можливість не лише зображувати проекції виробу, але і розглянути його в об'ємному виді з різних сторін. Такі засоби також надзвичайно корисні для дизайнерів інтер'єру, ландшафту.
Моделювання
Під моделюванням в даному випадку розуміється імітація різного роду ситуацій, що виникають, наприклад, при роботі чи переміщенні будь-яких машин та механізмів. У англійській мові це краще всього передається терміном simulation. Але моделювання використовується також при створенні різного роду тренажерів. У телевізійній рекламі, в науково-популярних і інших фільмах тепер синтезуються рухомі об'єкти, візуально мало поступливі тим, які можуть бути отримані за допомогою кінокамери. Крім того, комп'ютерна графіка надала кіноіндустрії можливості створення спецефектів, які в колишні роки були просто неможливі. Останніми роками широко поширилася ще одна сфера застосування комп'ютерної графіки - створення віртуальної реальності.
Способи представлення графічної інформації
Графічні зображення бувають двох типів: векторні і растрові. Обробляються вони по-різному і за допомогою різних графічних програм.
Векторне зображення представляється у вигляді сукупності відрізків прямих (векторів), а не точок, які застосовуються в растрових зображеннях.
Векторний графічний об'єкт включає два елементи: контур і його внутрішню область, яка може бути порожньою або міняти заливку у вигляді кольору, колірного переходу (градієнта) або мозаїчного малюнка. Контур може бути як замкнутим, так і розімкненим. У векторному об'єкті він виконує подвійну функцію. По-перше, за допомогою контуру можна змінювати форму об'єкта. По-друге, контур векторного об'єкта можна оформляти (виконувати обведення), попередньо вказавши його колір, товщину лінії і стиль її оформлення. Будь-яке векторне зображення можна представити у вигляді набору векторних об'єктів, розташованих певним чином один щодо одного.
Переваги цього способу опису графіки:
· Мінімальна кількість інформації передається набагато меншому розміру файлу (розмір не залежить від величини об'єкта).
· Відповідно, можна нескінченно збільшити, наприклад, дугу кола, і вона залишиться гладкою. З іншого боку, полігон, що представляє криву, покаже, що вона насправді не крива.
· При збільшенні або зменшенні об'єктів товщина ліній може бути постійною.
· Параметри об'єктів зберігаються і можуть бути змінені. Це означає, що переміщення, масштабування, обертання, заповнення і так далі не погіршать якості малюнка. Більш того, зазвичай указують розміри в апаратно-незалежних одиницях (англ. device-independent unit), які ведуть до якнайкращої можливої растеризації на растрових приладах.
· До недоліків варто віднести, що не кожен об'єкт може бути легко зображений у векторному вигляді. Крім того, кількість пам'яті і часу на відображення залежить від числа об'єктів і їх складності.
Растрова графіка застосовується у випадках, коли графічний об'єкт представлено у вигляді комбінації точок (пікселів), яким притаманні свій колір та яскравість і які певним чином розташовані у координатній сітці. Такий підхід є ефективним у разі, коли графічне зображення має багато напівтонів і інформація про колір важливіша за інформацію про форму (фотографії та поліграфічні зображення). При редагуванні растрових об'єктів, користувач змінює колір точок, а не форми ліній. Растрова графіка залежить від оптичної роздільності, оскільки її об'єкти описуються точками у координатній сітці певного розміру. Роздільність вказує кількість точок на одиницю довжини.
Переваги растрової графіки:
· простота автоматизованого вводу (оцифрування) зображень, фотографій, слайдів, рисунків за допомогою сканерів, відеокамер, цифрових фотоапаратів;
· фотореалістичність. Можна отримувати різні ефекти, такі як туман, розмитість, тонко регулювати кольори, створювати глибину предметів.
Недоліки растрової графіки:
· складність управління окремими фрагментами зображення. Потрібно самостійно виділяти ділянку, що є складним процесом;
· растрове зображення має певну роздільність і глибину представлення кольорів. Ці параметри можна змінювати лише у визначених межах і, як правило, із втратою якості;
· розмір файлу є пропорційним до площі зображення, роздільності і типу зображення, і, переважно, при хорошій якості є великим.
Векторизація - перетворення зображення з растрового представлення в векторне. Проводиться, як правило, у випадку, якщо результат векторизації підлягає подальшій обробці виключно в програмах векторної графіки; з метою підвищення якості зображення (наприклад, логотипу); для створення зображення, придатного для масштабування без втрати якості; якщо подальша обробка зображення буде здійснюватися на специфічному обладнанні (плотери, верстати з ЧПК).
Растеризація - це переклад зображення, описаного векторним форматом в пікселі або точки, для виведення на дисплей або принтер. Процес, зворотний векторизації.