- •Конспект лекцій
- •Теми лекцій
- •Лекція 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 подання сайту
- •Зменшення швидкості руху
- •Створення кліпу зі зменшенням швидкості руху
- •Додавання змінної швидкості руху
- •Ініціалізація руху клацанням миші
- •Додавання сліду від руху об'єкта
- •Зникнення сліду
- •Підвищення ефективності
- •Покадровое рух
- •Постійна швидкість
- •Коливальний рух
- •Зміна розмірів у русі
- •Керування рухом
- •Ковзання
- •Використання порожніх фільмів
- •Реалізація підходів на практиці
- •Оглядач зображень
Метод трасування променів
Головна ідея цього алгоритму була запропонована в 1968 р. А.Аппелем, а перша реалізація була виконана в 1971 р.
Спостерігач бачить будь-який об'єкт за допомогою світла, що випускається якимсь джерелом, що падає на цей об'єкт, відбивається або переломлюється відповідно до законів оптики й потім якимось шляхом доходить до ока спостерігача. З величезної безлічі променів світла, випущених джерелом, лише невелика частина дійде до спостерігача. Отже, відслідковувати шляхи променів у такому порядку неефективно з погляду обчислень. Аппель запропонував відслідковувати (трасувати) промені у зворотному напрямку, тобто від спостерігача до об'єкта. У першій реалізації цього методу трасування припинялося, як тільки промінь перетинав поверхню видимого непрозорого об'єкта; тобто промінь використовувався тільки для обробки схованих або видимих поверхонь. Згодом були реалізовані алгоритми трасування променів з використанням більше повних моделей висвітлення з урахуванням ефектів відбиття одного об'єкта від поверхні іншого, переломлення, прозорості й затінення.
Рис. 8.7. Трасування паралельними променями
Рис. 8.8. Трасування із центральною крапкою
У цьому алгоритмі передбачається, що сцена вже перетворена в простір зображення. Якщо використовується ортографическая проекція, то точка зору або спостерігач перебуває в нескінченності на позитивній півосі . У цьому випадку всі світлові промені, що йдуть від спостерігача, паралельні осі (мал. 8.7). Кожний промінь проходить через пиксель растра до сцени. Траєкторія кожного променя відслідковується, щоб визначити, які саме об'єкти сцени, якщо такі існують, перетинаються з даним променем. Необхідно перевірити перетинання кожного об'єкта сцени з кожним променем. Якщо промінь перетинає об'єкт, то визначаються всі можливі крапки перетинання лучачи й об'єкта. Можна одержати велику кількість перетинань, якщо розглядати багато об'єктів. Ці перетинання впорядковуються по глибині. Перетинання з максимальним значенням представляє видиму поверхню для даного пикселя. Атрибути цього об'єкта використовуються для визначення характеристик пикселя.
Якщо точка зору перебуває не в нескінченності (перспективна проекція), алгоритм трасування променів лише незначно ускладнюється. Тут передбачається, що спостерігач як і раніше перебуває на позитивній півосі . Картинна площина, тобто растр, перпендикулярна осі , як показано на мал. 8.8.
Найбільш важливим і трудомістким елементом цього алгоритму є процедура визначення перетинань, оскільки це завдання віднімає найбільшу частину часу всієї роботи алгоритму. Тому ефективність методів пошуку особливо важлива. Об'єкти сцени можуть складатися з набору плоских багатокутників, багатогранників або тіл, обмежених замкнутими параметричними поверхнями. Для прискорення пошуку важливо мати ефективні критерії, що дозволяють виключити із процесу свідомо зайві об'єкти.
Одним зі способів скорочення числа пересічних об'єктів є занурення об'єктів в опуклу оболонку - сферичну або у формі паралелепіпеда. Пошук перетинання з такою оболонкою дуже простий, і якщо промінь не перетинає оболонки, те не потрібно більше шукати перетинань цього об'єкта із променем.
Особливо просто виконується тест на перетинання зі сферичною оболонкою (у лекції 3 були розглянуті завдання про перетинання лучачи зі сферою й площиною). Трохи більшого обсягу обчислень вимагає завдання про перетинання із прямокутним паралелепіпедом, оскільки необхідно перевірити перетинання лучачи щонайменше із трьома нескінченними площинами, що обмежують прямокутну оболонку. Оскільки крапки перетинання можуть виявитися поза гранями цього паралелепіпеда, для кожної з них треба, крім того, зробити перевірку на влучення усередину. Отже, для трьох вимірів тест із прямокутною оболонкою виявляється більше повільним, чим тест зі сферичною оболонкою.
Після виконання цих первинних тестів починається процес пошуку перетинань із об'єктами, що потрапили в список потенційно видимих. При цьому завдання формування зображення не вичерпується знаходженням самої крапки перетинання: якщо ми враховуємо ефекти відбиття й переломлення, необхідно відслідковувати подальший шлях лучачи, для чого, як правило, потрібно відновити нормаль до поверхні, а також визначити напрямок відбитого або переломленого променя. У зв'язку з усіма цими завданнями важливо вибрати досить зручні апроксимації поверхонь, що становлять сцену. Визначення атрибутів пикселя, виведеного в остаточному підсумку на екран, залежить від вибору моделі висвітлення, про що більш докладно буде розказано в наступних лекціях.
Алгоритм трасування променів для простих непрозорих поверхонь можна представити в такий спосіб.
Створити список об'єктів, що містить:
повний опис об'єкта: тип, поверхня, характеристики, тип оболонки й т.п.;
опис оболонки: центр і радіус для сфери або шість значень для паралелепіпеда
.
Для кожного трассируемого лучачи:
Виконати для кожного об'єкта тривимірний тест на перетинання з оболонкою. Якщо промінь перетинає цю оболонку, то занести об'єкт у список активних об'єктів.
Якщо список активних об'єктів порожній, то зобразити даний пиксель із фоновим значенням кольору й продовжувати роботу. У противному випадку для кожного об'єкта зі списку активних об'єктів:
Знайти перетинання з усіма активними об'єктами.
Якщо список перетинань порожній, то зобразити даний пиксель із фоновим значенням кольору.
У противному випадку в списку припинень знайти найближче до спостерігача (з максимальним значенням ) і визначити атрибути крапки.
Зобразити даний пиксель, використовуючи знайдені атрибути пересіченого об'єкта й відповідну модель освітленості.
У цей час алгоритм трасування, незважаючи на обчислювальну складність, став дуже популярний, особливо в тих випадках, коли час формування зображення не дуже істотно, але хочеться домогтися як можна більшої реалістичності зображення.
