- •Конспект лекцій
- •Теми лекцій
- •Лекція 1: загальне введення в комп'ютерну графіку
- •Предмет і область застосування комп'ютерної графіки
- •Коротка історія
- •Технічні засоби підтримки комп'ютерної графіки
- •Питання й вправи
- •Лекція 2 сучасні апаратні засоби растрової графіки
- •2.1.Основні поняття
- •2.2. Пристрою уведення Сканери
- •Цифрові фотоапарати й відеокамери
- •2.3. Пристрою виводу Дисплеї
- •Дисплеї на елт
- •Жидкокристаллические дисплеї
- •Інші типи дисплеїв
- •Проектори
- •Принтери
- •Матричні принтери
- •Струминні принтери
- •Лазерні принтери
- •2.4. Архітектура графічної підсистеми пк Архітектура
- •Подання зображень
- •Програмний інтерфейс
- •Питання й вправи
- •Лекція 2. Колір у комп'ютерній графіці
- •Про природу світла й кольору
- •Колірний графік мко
- •Колірні моделі rgb і cmy
- •Колірні моделі hsv і hls
- •Простір cie Luv
- •Питання й вправи
- •Лекція 3. Геометричні перетворення
- •Системи координат і вектори
- •Рівняння прямій і площині
- •Аналітичне подання кривих і поверхонь
- •Перетинання лучачи із площиною й сферою
- •Інтерполяція функцій однієї й двох змінних
- •Матриці
- •Геометричні перетворення (перенос, масштабування, обертання)
- •Перехід в іншу систему координат
- •Завдання обертання щодо довільної осі
- •Питання й вправи
- •Лекція 4. Подання геометричної інформації
- •Геометричні примітиви
- •Полігональні моделі
- •Воксельні моделі
- •Поверхні вільних форм (функціональні моделі)
- •Системи координат: світового, об'єктна, спостерігача й екранна
- •Однорідні координати. Завдання геометричних перетворень в однорідних координатах за допомогою матриць
- •Питання й вправи
- •Лекція 6 алгоритми растеризаЦії відрізків, окружностей і еліпсів
- •6.1. Введення в растеризацію кривих
- •6.2.Зображення відрізка із цілочисловими координатами кінців
- •Цифровий диференціальний аналізатор
- •Алгоритм Брезенхема
- •Алгоритм Кастла-Пітвея
- •6.3. Зображення відрізка з нецілочисловими координатами кінців
- •6.4. Зображення окружностей
- •Алгоритм Брезенхема
- •6.5. Зображення еліпсів
- •Побудова по неявній функції
- •Побудова шляхом стиску окружності
- •Лекція 7 відсікання (кЛіпування) геометричних примітивів
- •Алгоритм Сазерленда-Коена відсікання прямокутною областю
- •Відсікання опуклим багатокутником
- •Кліпування багатокутників
- •Питання й вправи
- •Лекція 8 видалення невидимих поверхонь і ліній
- •Видалення нелицьових граней багатогранника Алгоритм Робертса
- •Алгоритм Варнока
- •Алгоритм Вейлера-Азертона
- •Метод z-Буфера
- •Методи пріоритетів (художника, що плаває обрію)
- •Алгоритми порядкового сканування для криволінійних поверхонь
- •Метод двійкової розбивки простору
- •Метод трасування променів
- •Питання й вправи
- •Лекція 9 проектування просторових сцен
- •Основні типи проекцій
- •Паралельні проекції
- •Центральні проекції
- •Математичний апарат
- •Ортогональні проекції
- •Косокутні проекції
- •Центральні проекції
- •Спеціальні картографічні проекції. Екзотичні проекції земної сфери
- •Стереографическая проекція
- •Гномоническая проекція
- •Ортографическая проекція
- •Проекції на циліндр
- •Проекція Меркатора
- •Проекції на багатогранник
- •Незвичайні проекції
- •Питання й вправи
- •Лекція 10 растрове перетворення графічних примітивів
- •Алгоритм Брезенхема растрової дискретизації відрізка
- •Алгоритми Брезенхема растрової дискретизації окружності й еліпса
- •Алгоритми заповнення областей
- •Лекція 11 зафарбовування. Рендеринг полігональних моделей
- •Проста модель висвітлення
- •Питання й вправи
- •Зафарбування граней Плоске зафарбовування
- •Зафарбування методом Гуро
- •Зафарбування методом Фонга
- •Більше складні моделі висвітлення
- •Усунення ступінчастості (антиэлайзинг)
- •Питання й вправи
- •Лекція 12 візуалізація просторових реалістичних сцен
- •Свето- Тіньовий аналіз
- •Метод излучательности
- •Глобальна модель висвітлення із трасуванням променів
- •Текстури
- •Питання й вправи
- •Лекція 13 алгоритми стиску зображень без втрат
- •13.1. Необхідність стиску зображень
- •13.2. Неіснування ідеального алгоритму
- •13.3. Алгоритми кодування довжини повторення (rle)
- •13.4. Словникові алгоритми
- •Алгоритм lz77
- •Алгоритм lzw
- •13.5. Алгоритми статистичного кодування
- •Алгоритм Хаффмена
- •13.6. Арифметичне кодування
- •Лекція 14 стиск зображень із втратами
- •14.1. Необхідність стиску із втратами
- •14.2. Оцінка втрат
- •14.3. Зображення як функція
- •Дискретне Перетворення Фур'є
- •Дискретне косинусное перетворення
- •14.4. Алгоритм стиску зображень jpeg
- •14.5. Вейвлет-Перетворення
- •14.6. Фрактальное стиск
- •Список літератури
- •Лекція 15 алгоритми стиску відео
- •Введення
- •Основні поняття
- •Вимоги додатків до алгоритму
- •Визначення вимог
- •Огляд стандартів
- •Базові технології стиску відео Опис алгоритму компресії
- •Загальна схема алгоритму
- •Використання векторів зсувів блоків
- •Можливості по распараллеливанию
- •Інші шляхи підвищення ступеня стиску
- •Порівняння стандартів
- •Питання для самоконтролю
- •Лекція 16 основи видавничої справи
- •1. Вибір формату
- •1.1. Використання стандартних форматів
- •1.1.1. Стандартні розміри по iso
- •2. Підготовка тексту
- •2.1.2. Редагування матеріалу
- •Перевірка фактичної вірогідності матеріалу
- •Установлення власника авторських прав і одержання дозволу на видання
- •Вступна частина
- •Авантитул
- •Заключна частина
- •2.2. Оформлення книги
- •2.2.1. Принципи виміру й термінологія
- •2.2.2. Характеристики шрифту Загальні характеристики
- •Класифікація шрифтів
- •2.3. Розробка дизайну тексту
- •2.3.1. Вибір шрифту
- •2.3.2. Вибір розмірів смуги набору, полів і шрифту
- •Формати октаво.
- •2.3.3. Стилі заголовків
- •Заголовки усередині тексту
- •Постійні й змінні колонтитули
- •Колонцифри
- •Допоміжний текст і підписи до ілюстрацій
- •Вступна й заключна частини
- •Складання підсумкової специфікації
- •2.3.4. Переноси
- •2.3.5. Розділові знаки
- •2.3.6. Зауваження по розмітці сторінки
- •2.4. Підрахунок сторінок тексту
- •2.4.1. Етап 1
- •Гарний матеріал
- •Поганий матеріал
- •2.4.2. Етап 2
- •2.4.3. Етап 3
- •Лекція 17 цифрове фото
- •1. Історія фотографії
- •2. Від плівки до цифрового фото
- •3. Умовна класифікація цифрових фотоапаратів
- •4. Сенсори цифрових фотоапаратів
- •Лекція 18 подання сайту
- •Зменшення швидкості руху
- •Створення кліпу зі зменшенням швидкості руху
- •Додавання змінної швидкості руху
- •Ініціалізація руху клацанням миші
- •Додавання сліду від руху об'єкта
- •Зникнення сліду
- •Підвищення ефективності
- •Покадровое рух
- •Постійна швидкість
- •Коливальний рух
- •Зміна розмірів у русі
- •Керування рухом
- •Ковзання
- •Використання порожніх фільмів
- •Реалізація підходів на практиці
- •Оглядач зображень
Коротка історія
У цьому короткому історичному нарисі ми будемо згадувати алгоритми й методи, з якими читач зможе познайомитися в даному курсі. Ці попередні згадування не повинні бентежити при першому прочитанні. По завершенні курсу можна повернутися до цього розділу й пройти його заново.
Комп'ютерна графіка в початковий період свого виникнення була далеко не настільки ефектної, який вона стала в справжні дні. У ті роки комп'ютери перебували на ранній стадії розвитку й були здатні відтворювати тільки найпростіші контури (лінії). Ідея комп'ютерної графіки не відразу була підхоплена, але її можливості швидко росли, і поступово вона стала займати одну з найважливіших позицій в інформаційних технологіях.
Першою офіційно визнаною спробою використання дисплея для виводу зображення з ЕОМ з'явилося створення в Масачусетському технологічному університеті машини Whirlwind-I в 1950 м. Таким чином, виникнення комп'ютерної графіки можна віднести до 1950-х років. Сам же термін "комп'ютерна графіка" придумав в 1960 р. співробітник компанії Boeing У. Феттер.
Перше реальне застосування комп'ютерної графіки зв'язують із ім'ям Дж. Уїтні. Він займався кіновиробництвом в 60-х роках і вперше використовував комп'ютер для створення титрів до кінофільму.
Наступним кроком у своєму розвитку комп'ютерна графіка зобов'язана Айвену Сазерленду, що в 1961 р., ще будучи студентом, створив програму малювання, названу їм Sketchpad (альбом для малювання). Програма використовувала світлове перо для малювання найпростіших фігур на екрані. Отримані картинки можна було зберігати й відновлювати. У цій програмі було розширене коло основних графічних примітивів, зокрема, крім ліній і крапок був уведений прямокутник, що задавався своїми розмірами й розташуванням.
Спочатку комп'ютерна графіка була векторної, тобто зображення формувалося з тонких ліній. Ця особливість була пов'язана з технічною реалізацією комп'ютерних дисплеїв. Надалі більше широке застосування одержала растрова графіка, заснована на поданні зображення на екрані у вигляді матриці однорідних елементів (пикселей).
У тім же 1961 р. студент Стів Рассел створив першу комп'ютерну відеогру Spacewar ("Зоряна війна"), а науковий співробітник Bell Labs Едвард Зеджек створив анімацію "Simulation of a two-giro gravity control system".
У зв'язку з успіхами в області комп'ютерної графіки великі корпорації почали проявляти до неї інтерес, що у свою чергу стимулювало прогрес в області її технічної підтримки.
Університет штату Юта стає центром досліджень в області комп'ютерної графіки завдяки Д.Евансу й А.Сазерленду, які в цей час були самими помітними фігурами в цій області. Пізніше їхнє коло стало швидко розширюватися. Учнем Сазерленда став Э.Кетмул, майбутній творець алгоритму видалення невидимих поверхонь із використанням Z-Буфера (1978). Тут же працювали Дж.Варнок, автор алгоритму видалення невидимих граней на основі розбивки області (1969) і засновник Adobe System (1982), Дж.Кларк, майбутній засновник компанії Silicon Graphics (1982). Всі ці дослідники дуже сильно просунули алгоритмічну сторону комп'ютерної графіки.
У тім же 1971 р. Гольдштейн і Нагель уперше реалізували метод трасування променів з використанням логічних операцій для формування тривимірних зображень.
В 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, Інститут прикладної фізики, серія растрових кольорових напівтонових дисплеїв "Гама". Останні дисплеї даної серії мали таблицю кольоровості, підтримували вікна, плавне масштабування.
Таким чином, у процесі розвитку комп'ютерної графіки можна виділити кілька етапів.
В 1970-і роки вона формувалася як наукова дисципліна. У цей час розроблялися основні методи й алгоритми: відсікання, растрове розгорнення графічних примітивів, зафарбування візерунками, реалістичне зображення просторових сцен (видалення невидимих ліній і граней, трасування променів, що випромінюють поверхні), моделювання освітленості.
В 1980-е графіка розвивається більше як прикладна дисципліна. Розробляються методи її застосування у всіляких областях людської діяльності.
В 1990-е роки методи комп'ютерної графіки стають основним засобом організації діалогу " людина-комп'ютер" і залишаються такими по теперішній час.
