Питання всі (5) PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document contains questions on computer graphics. It covers topics such as the components of computer graphics, applications, principles, history, types, resolution and algorithms. It's suitable for an undergraduate-level computer science course or a similar program.
Full Transcript
1. Складові комп’ютерної графіки. моделювання анімація рендеринг комп’ютерний зір Комп’ютерна графіка – це наука, яка вивчає методи створення, обробки та відображення графічних зображень за допомогою комп'ютерного обладнання 2. Застосування комп’ютерної графіки. Медицина...
1. Складові комп’ютерної графіки. моделювання анімація рендеринг комп’ютерний зір Комп’ютерна графіка – це наука, яка вивчає методи створення, обробки та відображення графічних зображень за допомогою комп'ютерного обладнання 2. Застосування комп’ютерної графіки. Медицина (розробка тривимірних моделей органів для планування операцій та діагностики.) Ігрова індустрія (створення комп'ютерних ігор та анімаційних фільмів) Реклама та маркетинг (розробка рекламних банерів, логотипів та відеороликів) Архітектура (створення візуалізацій будівель та дизайну приміщень) Наука та дослідження (моделювання фізичних процесів та дослідження математичних моделей) 3. Основні принципи комп’ютерної графіки. використання математичних моделей та алгоритмів. використання графічних примітивів для створення зображень. використання текстур для створення реалістичних зображень 4. Історія виникнення та розвитку комп’ютерної графіки. 1951- в Массачусетському технологічному інституті Джей Форрестер розробив перший дисплей для комп'ютера 1960-ті рр Дж.Уїтні використовував комп'ютер для створення титрів до кінофільму 1961- Айвен Сазерленд створив програму малювання Sketchpad Стів Рассел створив першу комп'ютерну відеогру Space War 1971- Гольдштейн і Нагель вперше реалізували метод трасування променів з використанням логічних операцій для формування тривимірних зображень 1974- Е.Кетмул створює перші алгоритми текстурування криволінійних поверхонь 1974- Описано метод зафарбовування поверхонь Фонга 1977- Дж.Блін пропонує алгоритми реалістичного зображення шорстких поверхонь Ф.Кроу розробляє методи усунення ступінчастого ефекту при зображенні контурів (антиелайзинг). 1980- Т.Уїттед розробляє загальні принципи трасування променів, що включають віддзеркалення, заломлення, затінювання і методи антиелайзингу 5. Різновиди комп’ютерної графіки. Розрізняють 4 види компʼютерної графіки - растрова графіка, векторна графіка, фрактальна графіка та тривимірна. Вони відрізняються принципами формування зображення при відображенні на екрані монітора або при друці на папері. Векторний спосіб кодування зображень полягає в тому, що зображення складають геометричні фігури: криві і прямі лінії, які зберігаються в памʼяті компʼютера у вигляді математичних формул і геометричних примітивів - кіл, еліпсів, квадратів і так далі. Растрові ж зображення мають інший спосіб кодування, який полягає в тому, що зображення розкладається на точки дуже маленького розміру, пікселі. При наближенні растрового зображення ці точки буде видно більш чітко. Фрактальна графіка- технологія створення зображень на основі фракталів. Фрактальна графіка базується на фрактальній геометрії. Найвідомішими фрактальними обʼєктами є дерева: від кожної гілки відходять менші, схожі на неї, від них - ще менші. За окремою гілкою математичними методами можна відслідкувати властивості всього дерева. Фрактальні властивості мають такі природні обʼєкти, як: сніжинка, що при збільшенні виявляється фракталом; за фрактальними алгоритмами ростуть кристали та рослини. Тривимірна графіка оперує з обєктами в тривимірному просторі. Зазвичай результати є плоскою картинкою, проєкцією. У тривимірній компʼютерній графіці всі обʼєкти зазвичай представляються як набір поверхонь. Мінімальну поверхню називають полігоном. Як полігон зазвичай вибирають трикутники. Трикутники - це найпростіші геометричні фігури, які легко обробляти і відображати. 6. Класифікація комп’ютерної графіки. За способом побудови та кодування растрова векторна фрактальна тривимірна За способом подання кольорів чорно-біла кольорова За призначенням інженерна наукова кольорова web-графіка комп’ютерна поліграфія 7. Растрова графіка. Роздільна здатність. Файли растрової графіки. Растрова графіка Растрова графіка представляє зображення як комбінацію точок, які називають пікселями. Кожен піксель має свій колір і яскравість. Зображення формується у вигляді сітки пікселів, упорядкованих рядками та стовпцями, що називається растром. Растрова структура є дискретною, тобто її можна поділити на окремі елементи. Роздільна здатність Роздільна здатність характеризує кількість пікселів на одиницю площі (наприклад, дюйм). Вона визначає чіткість і детальність зображення. Основні одиниці виміру: PPI (Pixels Per Inch): Визначає роздільну здатність монітора, тобто кількість пікселів на дюйм. DPI (Dots Per Inch): Визначає роздільну здатність друку, вимірюючи кількість точок на дюйм. Чим вище роздільна здатність, тим більше пікселів на одиницю площі і тим детальніше зображення. Зображення з низькою роздільною здатністю при збільшенні демонструють "ступінчастий ефект" через збільшення розміру пікселів. Якість растрового зображення Якість залежить від: Розміру зображення: Кількість пікселів у висоту та ширину. Бітової глибини кольору: Кількість бітів, що використовується для кодування кольору кожного пікселя. Більша бітова глибина забезпечує реалістичніше відображення кольорів. Кількості кольорів: Від кількості доступних кольорів залежить рівень деталізації зображення. Файли растрової графіки можуть займати значний обсяг пам'яті, і їх розмір залежить від: Розміру зображення: Файли растрової графіки займають велику кількість пам’яті комп’ютера. Найбільше впливають на кількість пам’яті, зайнятої растровим зображенням, три факти: розмір зображення (кількість пікселів). Бітової глибини кольору: Бітова глибина кольору визначає кількість кольорів, які можна використовувати для кожного пікселя. Чим більше бітова глибина, тим більше кольорів можна відобразити, що призводить до більш реалістичного зображення. Формату файла: Формат файла, що використовується для зберігання зображення, також впливає на розмір файла. Деякі формати, такі як JPEG, використовують стиснення, щоб зменшити розмір файла, але це може призвести до втрати якості зображення. 8. Векторна графіка. Векторна графіка – це метод представлення зображень за допомогою математичних формул. У складі зображення можуть бути відрізки, кола, овали, точки, криві Безьє, які визначаються математичними рівняннями. (Крива Безьє задається контрольними точками. Їх кількість може варіюватися (2, 3, 4 і більше). Наприклад, крива з двома точками утворює просту лінію, а з більшою кількістю точок – складнішу форму.) Векторні зображення можна масштабувати до будь-якого розміру без втрати якості. Це робить їх ідеальними для використання в друці та цифрових медіа. 9. Фрактальна графіка Фрактальна графіка – це один із видів комп'ютерної графіки, що базується на використанні математичних рівнянь для створення візуальних зображень. Основна особливість фрактальної графіки полягає в тому, що об'єкти не зберігаються в пам'яті комп'ютера як традиційні зображення (на кшталт растрових чи векторних), а генеруються на основі формул. Зміна коефіцієнтів в рівняннях дозволяє створювати абсолютно різні фрактальні візерунки та картини. Ця властивість робить фрактальну графіку ефективною для створення складних і масштабованих зображень, які зберігають деталізацію незалежно від рівня масштабування. 10.Тривимірна графіка. Тривимірна графіка — це вид комп'ютерної графіки, що оперує об'єктами у тривимірному просторі. Її основною задачею є створення зображень, що імітують об'єкти з реального світу чи уяви, з урахуванням перспективи, освітлення та текстур. Основні елементи тривимірної графіки: 1. Тривимірний простір: Об'єкти розташовуються у просторі з трьома координатними осями (X, Y, Z). 2. Поверхні та полігони: Об'єкти моделюються як набір поверхонь. Найпоширенішими елементами є трикутники, що використовуються для утворення поверхонь об'єкта. 3. Текстури: Зображення або візерунки, які накладаються на поверхні для створення деталізованого вигляду. 4. Освітлення: Впливає на відображення кольорів, тіней та блискіток. 5. Камери: Визначають перспективу, під якою об'єкт буде зображений на двовимірному екрані. Етапи роботи з тривимірною графікою: 1. Моделювання: Створення геометричних форм та структур об'єкта. 2. Текстурування: Накладення текстур на поверхні для деталізації. 3. Освітлення: Налаштування джерел світла, які визначають тіні та відблиски. 4. Рендеринг: Генерація двовимірного зображення з тривимірної сцени. Приклади застосування тривимірної графіки: Ігрова індустрія: Створення персонажів, середовищ та спецефектів. Кіно та анімація: Генерація реалістичних візуалізацій та спецефектів. Архітектура та дизайн: Візуалізація будівель, інтер'єрів та меблів. Наукові дослідження: Моделювання фізичних явищ, молекулярних структур. Тривимірна графіка дозволяє створювати фотореалістичні зображення або стилізовані візуалізації залежно від цілей проекту. 11.Сучасні апаратні засоби растрової графіки. Сучасні апаратні засоби растрової графіки включають фізичні пристрої, що використовуються для створення, обробки та відображення цифрових зображень та відео. Серед основних компонентів виділяють: 1. Пристрої введення Сканери: Оцифровують друковані зображення або документи, перетворюючи їх у цифрові файли. Дигітайзери: Дозволяють малювати та редагувати зображення шляхом переміщення пера по спеціальній поверхні. Цифрові фотоапарати та відеокамери: Використовуються для зйомки фотографій та відео, зберігаючи світло у цифровій формі. 2. Пристрої виведення Монітори: Відображають растрові зображення у високій роздільній здатності. Принтери: Створюють фізичні копії растрових зображень. Проектори: Відображають зображення на великі поверхні, зберігаючи якість. 3. Спеціалізовані апаратні засоби VR-гарнітури: Створюють тривимірні растрові зображення для віртуальної реальності. Контролери руху та датчики: Забезпечують інтерактивність, відслідковуючи рухи користувача. Ці пристрої підтримують розвиток растрової графіки, дозволяючи досягати високої якості візуалізації та інтерактивності 12.Пристрої введення. Засоби діалогу для систем віртуальної реальності. Пристрої виведення. Пристрої введення — це апаратні засоби, які перетворюють дані з реального світу в цифрову форму, дозволяючи створювати й редагувати зображення: Сканери: Оцифровують друковані зображення чи документи в цифрові файли. Дигітайзери: Використовуються для малювання та редагування шляхом переміщення пера по спеціальній поверхні. Цифрові фотоапарати та відеокамери: Фіксують світло й перетворюють його у цифровий формат. Засоби діалогу для систем віртуальної реальності Системи віртуальної реальності (VR) дозволяють взаємодіяти з цифровим середовищем завдяки спеціалізованим засобам: VR-гарнітури: Виводять тривимірні зображення для кожного ока, створюючи ефект занурення. Контролери руху: Забезпечують інтерактивність, дозволяючи користувачеві взаємодіяти з об'єктами віртуального середовища. Датчики руху: Відслідковують рухи користувача, передаючи інформацію про положення й орієнтацію у просторі. Пристрої виведення Пристрої виведення використовуються для відображення або друку цифрової інформації: Монітори: Найпоширеніший засіб для відображення графічної інформації в режимі реального часу. Принтери: Забезпечують фізичний вивід графічної інформації, включаючи зображення високої роздільної здатності. Проектори: Виводять зображення на великі поверхні, використовуючи технології масштабування та адаптації до освітлення. Ці засоби створюють інтерактивний та ефективний зв'язок між користувачем та цифровим середовищем 13.Колірні моделі. 1. RGB Тип: Адитивна модель (червоний, зелений, синій). Застосування: Монітори, веб-графіка. 2. CMYK Тип: Субтрактивна модель (блакитний, пурпурний, жовтий, чорний). Застосування: Поліграфія, друк. 3. HSB Опис: Відтінок (Hue), насиченість (Saturation), яскравість (Brightness). Застосування: Редагування зображень. 4. CIE Lab Опис: Яскравість (L), вісь зеленого-червоного (a), вісь синього-жовтого (b). Застосування: Універсальна модель для перетворень кольорів. 5. HSL Подібна до HSB, але враховує легкість кольору. Вибір моделі залежить від задач: RGB — екрани, CMYK — друк, HSB/HSL — редагування. 14.Математичні та алгоритмічні основи двовимірної графіки Математичні основи 1. Геометричні перетворення: o Паралельне перенесення (трансляція): Зміщення фігури на певний вектор, зберігаючи її розміри та форму. o Обертання: Обертання об'єкта навколо точки на заданий кут. o Масштабування: Пропорційна зміна розмірів об'єкта. o Відображення: Дзеркальне відображення відносно осі або точки. o Зсув (зсув паралельності): Рівномірне зміщення у заданому напрямку. 2. Рівняння основних графічних примітивів: o Рівняння прямої: y=mx+by = mx + by=mx+b. o Рівняння кола: (x−x0)2+(y−y0)2=R2(x - x_0)^2 + (y - y_0)^2 = R^2(x−x0)2+(y−y0)2=R2. o Канонічне та параметричне рівняння еліпса. Алгоритми 1. Алгоритми креслення відрізків: o DDA (Digital Differential Analyzer): Визначає пікселі для відтворення прямої за рівними інтервалами. o Алгоритм Брезенхема: Оптимізований для роботи з цілими числами, виконується швидше. 2. Алгоритми побудови кіл: o Використовуються дискретні методи для визначення найближчих пікселів до кола. 3. Замальовування багатокутників: o Застосовуються для створення враження суцільних об'єктів шляхом заповнення областей кольором. Практичне застосування Математичні моделі та алгоритми дозволяють створювати графічні інтерфейси, анімації, графіки, а також моделювати фізичні процеси у 2D- середовищі 15. Афінне перетворення об’єктів на площині (поворот, відображення, масштабування, перенесення). Афінні перетворення — це геометричні трансформації на площині, які зберігають прямолінійність і паралельність прямих, але можуть змінювати відстані та кути. До них належать такі операції: 1. Паралельне перенесення (трансляція) Зміщує кожну точку об'єкта на певний вектор, зберігаючи його форму та розміри. 2. Обертання Повертає об'єкт навколо заданої точки (центру обертання) на певний кут. 3. Масштабування Змінює розмір об'єкта шляхом пропорційного збільшення чи зменшення його розмірів відносно заданої точки або осі. 4. Відображення (відбиття) Дзеркально відображає об'єкт відносно прямої або точки. 5. Зсув Зміщує об'єкт у визначеному напрямку, не змінюючи його розмірів у перпендикулярному напрямку. Ці перетворення можуть бути записані у вигляді матричних операцій, де точка представлена вектором-стовпчиком, а перетворення — матрицею розміром 2×2 або 3×3 (залежно від координатного простору. 16.Однорідні координати точки та матриці повороту, відображення, масштабування та перенесення третього порядку. Однорідні координати точки та матриці для афінних перетворень (повороту, відображення, масштабування та перенесення) у тривимірному просторі описуються за допомогою матриць розмірності 4×4. Нижче наведено основні принципи, які можна знайти в документі: 1. Однорідні координати точки: Точка у тривимірному просторі представлена як вектор стовпчик[x, y, z, 1]^Т. Значення 1 додається для виконання матричних операцій перетворення. 2. Матриця повороту: o Поворот навколо осі xxx: Аналогічні формули існують для осей y та z, де змінюються розташування елементів cosθ та sinθ. 3. Матриця масштабування: Діагональні елементи sx, sy,sz відповідають за зміни масштабу вздовж кожної осі. 4.Матриця перенесення (трансляції) Тут tx,ty,tz — зміщення вздовж відповідних осей. 5.Матриця відображення Наприклад, відображення щодо площини xy Ці матриці можуть комбінуватися, щоб отримати складні перетворення. 17. Методи і алгоритми тривимірної графіки. Методи і алгоритми тривимірної графіки — це набір математичних і програмних підходів, які дозволяють створювати, обробляти та відображати об’єкти в тривимірному просторі. Для цього використовують однорідні координати, які додають четвертий вимір до точки [x,y,z]. Це дозволяє легко поєднувати різні операції, як масштабування, зсув і обертання, в єдину універсальну форму Головний інструмент – це матриці 4×4, кожна з яких виконує певне перетворення, наприклад, змінює розмір, переміщує або обертає об’єкт. Типи методів: (про це детальніше наст питання) 1. Масштабування: зміна розмірів об'єкта в кожному напрямку. 2. Зсув: переміщення об'єкта в просторі. 3. Обертання: поворот об'єкта навколо осей. 4. Проекції: перехід від 3D до 2D для відображення. 5. Просторове перенесення: змінює положення об'єкта у просторі. Для цього використовують матрицю перенесення, яка додає певні значення до координат об'єкта. 18. Тривимірні перетворення. Тривимірна зміна масштабу, зсув, обертання. Тривимірне обертання навколо довільної осі. Тривимірні перетворення — це операції над координатами об'єктів для їх масштабування, переміщення, обертання або відображення. Масштабування виконується шляхом множення однорідної матриці на коефіцієнти, які розташовані на діагоналі матриці 4×4. Ці коефіцієнти відповідають зміні розмірів об'єкта по осях x, y, z. Наприклад, збільшення куба втричі досягається множенням кожної координати на 3. Зсув: Для виконання зсуву використовуються недіагональні елементи матриці. Вони додають певні величини до кожної координати об’єкта, що дозволяє переміщувати його у просторі без змін форми чи розмірів. Обертання навколо стандартних осей (x, y, z) виконується через відповідні матриці, в яких використовуються тригонометричні функції (cos та sin) для обчислення нових координат. Наприклад: Обертання навколо осі xxx змінює координати y та z, залишаючи x незмінним. Аналогічно для осей y та z. Обертання навк довільної очі Цей процес складніший і включає кілька кроків: 1. Перенесення об'єкта так, щоб довільна вісь стала однією зі стандартних осей. Це роблять за допомогою матриці перенесення, яка переміщує об’єкт у потрібне положення. 2. Обертання навколо цієї осі за допомогою стандартної матриці. 3. Після обертання об’єкт повертають у початкове положення, виконуючи зворотнє перенесення за допомогою відповідної матриці. 19. Тривимірні проекції. Це метод перетворення тривимірних об'єктів на двовимірну площину. Вона використовується для створення зображень, які можуть передавати реалістичну глибину та пропорції або спрощувати вигляд для технічних цілей. Види: паралельна (ортографічна і косокутна) та перспективна. Розбіжність між паралельною та перспективною проєкціями визначається співвідношенням між центром проекції і проекційною площиною. (про перспективну і ортографічну пише в наст завд) Коксокутна- це вид тривимірної проекції, у якій проектувальні промені залишаються паралельними, але не перпендикулярними до площини проекції. Два важливі види косокутних проекцій — це проекції кавальє (горизонтальна косокутна ізометрія 1. Напрям проектування складає з площиною кут 45°. 2. Проекція відрізка, перпендикулярного до проекційної площини, має ту ж довжину, що й сам відрізок, тобто скорочення відсутнє.) і кабіне (фронтальна косокутна диметрія, глибина скорочується наполовину, що робить зображення більш реалістичним. Кут нахилу визначається як arccos(1/2).). 20. Основні елементи перспективної проекції Перспективна проєкція показує, що об'єкти які є на відстані здаються менше, ніж об'єкти поруч (перспективне скорочення), що забезпечує додатковий реалізм. Серед основних елементів є: Точка зору - це точка, з якої ми дивимося на об'єкт. Лінія горизонту - це уявна лінія, яка проходить через точку зору та паралельна землі. Лінія горизонту визначає напрямок, в якому ми дивимося і розділяє видимий простір на верхню та нижню частини. Точки зникнення – це точки, куди сходяться паралельні лінії, коли їх продовжити до горизонту. Точка зникнення є ключовим елементом, що створює відчуття глибини та реалізму в перспективній проекції. (то додатково з джпт шо є правдою але нема в її лекціяхПроекційна площина: Площина, на якій будується зображення тривимірного об'єкта. Відстань між точкою зору та цією площиною впливає на масштаб зображення. Перспективне скорочення: Об'єкти, що знаходяться ближче до точки зору, здаються більшими, а ті, що далі — меншими.) 21. Ортографічні проєкції Ортографічна проєкція — це спосіб зображення тривимірного об'єкта на двовимірній площині, при якому всі промені проектування йдуть перпендикулярно до проекційної площини. Цей метод дозволяє точно зображувати правильні розміри та форми однієї плоскої грані об’єкта Оскільки кожна проєкція відображає лише одну грань об'єкта, відтворити його повну просторову структуру може бути складно, навіть при наявності кількох проєкцій. Ортографічні проєкції широко застосовуються в інженерних кресленнях для точного зображення об’єктів. Трьома типами ортографічної проєкції є ізометрична проєкція, диметрична проєкція та триметрична проєкція, залежно від точного кута, під яким вигляд відхиляється від ортогонального 1. Ізометрична проєкція: У цьому типі проєкції всі три осі виглядають однаково скороченими, і між ними утворюється кут 120°. Спотворення однакове по всіх осях, що дозволяє зберегти пропорційність розмірів об'єкта. 2. Диметрична проєкція: У такій проєкції два з трьох напрямків виглядають однаково скороченими, а один – має окремий масштаб. Це дає можливість більш точно передати вигляд об'єкта, проте на таких кресленнях часто використовують наближення. 3. Триметрична проєкція: В усіх трьох напрямках скорочення є різним, а масштаби і кути між осями визначаються окремо. Це дозволяє точніше передати пропорції, але також часто використовуються наближення для зручності. 22. Алгоритми растеризації відрізків, кіл та еліпсів. Растеризація - це процес, у якому визначають, які пікселі на екрані найкраще відповідають заданій лінії чи фігур Растеризація відрізків: Алгоритм з рівнянням прямої: Використовує базове рівняння лінії y=mx+by, де m — нахил. Для кожного значення x обчислюється y і визначається, який піксель нам потрібен. Недоліком такого алгоритму є те, що в циклі виконується множення та використовуються операції з плаваючою крапкою. А це зменшує швидкість виведення графічного зображення. Цифровий диференціальний аналізатор (ЦДА): Ґрунтується на використанні диференціального рівняння Δy/Δx=const. На кожному кроці обчислюється приріст для X або Y залежно від нахилу. Крок за кроком додаємо прирости Δx або Δy, обираючи найближчі пікселі. Цей алгоритм простий у реалізації, використовує лише додавання, але через дробові числа накопичуються похибки, і він працює повільніше, ніж алгоритм Брезенхема. Алгоритм Брензехема для відрізків Цей алгоритм розраховує, які пікселі потрібно ввімкнути, щоб намалювати найточніший відрізок між двома точками: Спершу обчислюється нахил відрізка, але замість роботи з числами з плаваючою крапкою (наприклад, дробами), алгоритм використовує лише цілі числа.Кожного разу обирається піксель, найближчий до реальної лінії. Щоб зробити це, він оцінює похибку між поточною позицією лінії та ідеальним положенням. Якщо похибка перевищує певне значення, змінюється координата по осі X чи Y.Результат: відрізок виглядає прямим, малюється швидко й точно. Алгоритм Брезенхема для кіл Алгоритм малює лише одну восьму частину кола, а решту відтворює за принципом симетрії. Наприклад, якщо відома точка (x, y), алгоритм одразу обчислює координати ще семи точок.Він використовує похибку для визначення наступного пікселя: чи зменшувати Y, чи збільшувати X, залежно від того, яка точка ближча до реального контуру кола. Інкрементний метод Жордана: Прямує вздовж кривої, підбираючи найближчі цілочисельні точки.Рух базується на обчисленні дотичних до контуру. Інкрементний алгоритм для еліпса: Обчислює точки лише для першої чверті еліпса. Кожна нова точка визначається на основі знаку функції похибок S(x,y). Якщо S(x,y)< 0, змінюється X; якщо S(x,y)> 0, змінюється Y. Алгоритм Брезенхема для еліпса: Базується на подібному принципі, як і для кіл, але враховує нерівність півосей. На кожному кроці обирається одна з двох сусідніх точок залежно від похибки. 23. Загальні вимоги до алгоритмів креслення відрізків Відрізки мають виглядати прямими, без "сходинок" чи викривлень. Це означає, що пікселі повинні розташовуватися так, щоб відображати рівномірну лінію. Початок і кінець відрізка завжди повинні точно відповідати заданим координатам. Якщо потрібно з’єднати точки (x1, y1) та (x2, y2), жодна з них не може бути змінена. Яскравість лінії має залишатися постійною по всій довжині, незалежно від її нахилу чи довжини. Алгоритм має бути швидким, щоб забезпечувати швидке відображення графіки, особливо у випадках складних зображень. 24. Цифровий диференціальний аналізатор Ґрунтується на використанні диференціального рівняння Δy/Δx=const. Він розраховує, як змінювати координати X і Y, щоб пікселі наближалися до реальної лінії. Насамперед визначається напрям: Якщо ∣m∣≤1 (нахил не крутий, лінія майже горизонтальна), кожен крок збільшує x на 1, а y обчислюється як yнове=yпоточне+m Якщо ∣m∣>1 (лінія крута), кожен крок збільшує y на 1, а x обчислюється як xнове=xпоточне+m Ініціалізація: Алгоритм починає з першої точки (x1,y1). Розраховується приріст Δx і Δy, які визначають, як змінюватимуться координати на кожному кроці. Обчислення наступних точок: Поступово додаються значення Δx та Δy до поточних координат. Наприклад, якщо x збільшується, нове значення y обчислюється як дробове число, і обирається найближчий піксель на основі округлення. ЦДА підходить для задач, де потрібна простота реалізації, адже там використовується тільки додавання, але через дробові числа накопичуються похибки, і він працює повільніше, ніж алгоритм Брезенхема. 25. Алгоритм Брезенхема для відрізку. Мета алгоритму — визначити, які пікселі найкраще апроксимують відрізок на растровій сітці. Основна ідея: Алгоритм крокує від початкової точки до кінцевої, обираючи пікселі таким чином, щоб вони якомога ближче наближалися до ідеальної лінії. Замість складних операцій (як множення чи ділення) використовуються лише додавання і віднімання, що прискорює обчислення. Вибір наступної точки визначається знаком функції похибки SSS: якщо S>0S > 0S>0, обирається точка, що знаходиться вище; якщо S≤0S \leq 0S≤0, обирається точка праворуч. Рекурентна формула: S=S+2mS = S + 2mS=S+2m, якщо S≤0S \leq 0S≤0, або S=S−2nS = S - 2nS=S−2n, якщо S>0S > 0S>0. 26. Алгоритм Брезенхема для кола Алгоритм ґрунтується на симетрії кола. Для побудови достатньо визначити точки однієї восьмої частини кола, решту точок обчислюють симетрично. Основні кроки: 1. Встановлення початкових координат x=0,y=Rx = 0, y = Rx=0,y=R і обчислення початкового значення функції d=3−2Rd = 3 - 2Rd=3−2R. 2. Для кожної точки перевіряється ddd: якщо d xmax); Біт 4: лівіше (x < xmin) 3. Обчислення видимості: ○ Якщо обидві точки мають код 0000 – відрізок повністю видимий. ○ Якщо побітове AND кодів точок ≠ 0000 – відрізок повністю невидимий. ○ Якщо інші випадки – обчислюється перетин відрізка з межами вікна, і зовнішня точка замінюється на точку перетину. 4. Повторення: Процес триває, поки відрізок не стане повністю видимим або повністю невидимим. Приклад: Відрізок із точками поза вікном спочатку обрізається по межі, а нова точка входить у видиму область. 41. Тривимірне відсічення. Відсічення багатокутників. У тривимірній графіці процес складніший через додатковий вимір. Основні форми відсікачів: 1. Прямокутний паралелепіпед: Використовується для паралельного або аксонометричного проектування. Визначається шістьма межами: ○ Ліва, права, верхня, нижня, ближня, дальня. 2. Зрізана піраміда: Для центрального проектування. Часто використовується у камерах у 3D-іграх. Етапи: 1. Перевірка вершин багатокутника: чи лежать вони у межах видимої області. 2. Якщо вершина поза межами – обчислюється перетин ребер багатокутника з межами відсікача. 3. Нові вершини формують обрізаний багатокутник. Елементи моделі сцени включають геометричні примітиви: точки або вершини; відрізки ліній або ребра; багатокутники або грані; більш абстрактні модельні об’єкти: криві, сплайни, поверхні та навіть текст. 42. Алгоритми усунення невидимих ліній та поверхонь. Алгоритми усунення невидимих ліній та поверхонь є ключовими в тривимірній комп’ютерній графіці для визначення видимих об'єктів і елементів сцени щодо точки спостереження. Вони вирішують проблему видимості, одну з перших великих задач у цій галузі. Алгоритми завжди включають сортування об'єктів за їх віддаленістю від точки спостереження. Чим далі об'єкт, тим більша ймовірність, що він буде частково чи повністю закритий ближчими об'єктами. Існує компроміс між швидкістю алгоритму та рівнем деталізації результатів. Види задач 1. HSR (Hidden-Surface Removal): Усунення прихованих поверхонь. 2. VSD (Visible-Surface Determination): Визначення видимих поверхонь. Основні алгоритми 1. Z-буферинг: Зберігає Z-координати (глибину) кожного пікселя; Відображає піксель, якщо його Z-значення менше, ніж у Z-буфері. ○ Переваги: простота реалізації, ефективність для сцен із багатьма перекриттями. ○ Недоліки: значний обсяг пам’яті для буфера. 2. Алгоритм художника: Полігони сортуються за Z-координатою (глибиною); Відображення починається з найдальших до найближчих об'єктів. ○ Недоліки: проблеми з циклічним перекриттям (A перекриває B, B перекриває C, C перекриває A). 3. Видалення задніх граней (Back-Face Culling): Грані, звернені «задньою» стороною до спостерігача, ігноруються; Використовується нормаль грані для визначення її орієнтації. 4. Алгоритм трасування променів (Ray Tracing): Для кожного пікселя обчислюється всі перетини променя з об'єктами сцени; Відображається найближчий до камери об'єкт. ○ Переваги: висока реалістичність (тіні, віддзеркалення). ○ Недоліки: велика обчислювальна складність. Жоден алгоритм не досягає одночасно високої швидкості та деталізації. Залежно від потреб, обирається компромісний варіант: швидкість для реального часу (ігри) або якість для рендерингу (анімації, графічні фільми). 43. Класифікація алгоритмів усунення невидимих ліній або поверхонь Класифікація алгоритмів усунення невидимих ліній або поверхонь за системою координат: 1. Фізична система координат: - точність результатів обмежується точністю обчислень; - отримані результати можна вільно масштабувати; - Кількість обчислень N2, де N– кількість граней об'єкта; 2. Простір зображення і система координат екрану візуалізації: - точність обчислень обмежена роздільною здатністю екрану; - змасштабовані результати можуть не відповідати початковій сцені; - об'єм обчислень: М² × N, де М – роздільна здатність екрану М × М, N– кількість граней об'єкта Класифікація за вибором частин, що видаляють: - невидимих ліній; - невидимих ребер; - невидимих поверхонь; - невидимих об’єктів. Класифікація за порядком вибору елементів сцени: - видалення у довільному порядку; - видалення у порядку, визначеному процесом візуалізації; Алгоритми видалення невидимих поверхонь за типами видимості 1. Визначення видимості в об’ємному просторі - Співставлення точки з поверхнею - Знаходження перетину ребер - Співставлення поверхні з поверхнею 2. Визначення видимості у просторі зображення - Знаходження перетину ребер (Алгоритм Галімберті і Монтанарі) - Співставлення поверхні з поверхнею (алгоритм Варнока) - Співставлення точки з поверхнею(Метод скануючої сітки) - Знаходження пробних інтервалів (алгоритм Уткоінса) 44. Еталонні об'єкти у тривимірній комп'ютерній графіці Юта-чайник, або чайник Ньюелла, є культовою комп'ютерною 3D- моделлю, яка широко використовується у сфері тривимірної графіки. Він має просту, частково циліндричну та опуклу форму, що робить його зручним для створення базових 3D-сцен. Чайник служить своєрідним аналогом програми "Hello, World!" у комп'ютерній графіці, допомагаючи налаштовувати геометрію та освітлення сцени. Стенфордський кролик — це полігональна 3D-модель, створена Грегом Терком і Марком Левоєм у 1994 році в Стенфордському університеті. Її використовують для перевірки ефективності алгоритмів комп'ютерної графіки, таких як зменшення кількості полігонів, стиснення даних і згладжування поверхонь. Стенфордський дракон — це ще одна тестова 3D-модель, створена за допомогою кольорового 3D-сканера. Вона складається з 871 414 трикутників і використовується для тестування алгоритмів, що обробляють багатокутники, зокрема їх спрощення, стиснення та згладжування поверхонь. 45. Алгоритм усунення невидимих ліній та поверхонь, що використовує z-буфер Алгоритм, що використовує z-буфер (Z-Buffering) - метод усунення прихованих поверхонь, що використовує глибину кожного пікселя для визначення, чи повинен він бути видимим. Працює цей алгоритм у просторі зображення. Кроки алгоритму: Ініціалізація: Усі значення Z-буфера встановлюються на максимальну глибину (наприклад, нескінченність). Обчислення глибини: Для кожного пікселя визначається Z-координата. Порівняння: Якщо нове значення Z менше, ніж у буфері, воно оновлюється, а колір пікселя замінюється. Ігнорування: Пікселі з більшою глибиною не відображаються. 46. Алгоритм художника Алгоритм художника, або пріоритетне заповнення, є одним з найпростіших розв'язань проблем які виникають в комп'ютерній 3D графіці. Цей підхід сортує всі поверхні за їхньою глибиною і відображає їх від найдальшої до найближчої. Кроки алгоритму: - Сортувати всі полігони за значеннями глибини (z-координати). - Почати відображення з найдальших поверхонь. - Накладати ближчі поверхні, перекриваючи попередні. Циклічне перекриття багатокутників — виникає, коли три або більше багатокутників частково перекривають один одного, утворюючи замкнутий цикл (A → B → C → A). У такому випадку сортування за Z- координатою не може визначити правильний порядок відображення. Розв'язання циклічного перекриття: Використовується алгоритм Ньюелла: Ключові етапи алгоритму Ньюелла : Сортування багатокутників: Багатокутники впорядковуються за їхньою середньою глибиною (координатою Z). Це сортування використовується як початковий етап для обробки поверхонь. Перевіряється наявність циклів з перекриття, коли порядок за Z- координатою не може повністю визначити, який многокутник ближчий (наприклад, A частково перекриває B, B частково перекриває C, а C перекриває A). Якщо виявлено цикл, багатокутник, що створює конфлікт, розбивається на менші частини. Це дозволяє коректно впорядкувати їх. 47. Алгоритм видалення задніх граней Алгоритм полягає у визначенні, які поверхні або грані об'єкта не видно з певної точки спостереження. Задні грані видаляються для зменшення обчислювальної складності рендерингу та підвищення продуктивності. Одним з популярних методів є використання нормалей поверхонь, щоб порівняти їхнє напрямлення із точкою зору. Якщо нормаль спрямована від спостерігача, грань є задньою і може бути виключена. 48. Алгоритм Варнока. Принцип алгоритму Уоткінса Алгоритм Варнока: Ефективний для складних сцен. Сцена розбивається на невеликі області (пікселі чи групи пікселів). Якщо в області є лише одна поверхня, вона заповнюється одразу. Якщо є декілька поверхонь, область ділиться на менші підобласті, і процес повторюється. Принцип алгоритму Уоткінса: Застосовується для вирішення проблеми видимості багатокутників, що перекриваються. Він використовує буфер глибини (Z-buffer), який зберігає значення відстані до кожного пікселя. Це дозволяє визначити, який об'єкт має бути видимим у певній точці. (Він допомагає визначити, який із об'єктів на екрані ближче до нас. Для цього використовується спеціальний "список відстаней" – що ближче, те видно, а те, що далі, – перекривається.) 49. Алгоритм трасування променів Трасування променів (Ray Tracing) — це метод, який моделює поведінку світла в комп'ютерній графіці. Алгоритм працює таким чином: кожен піксель зображення відповідає певному променю, який відправляється від камери (або ока спостерігача) та проходить через сцену. Промінь перевіряє, чи перетинає він об'єкти сцени. Якщо так, розраховується, як світло взаємодіє з об'єктами, враховуючи відбиття, заломлення, поглинання та розсіювання. Для кожного перетину промінь може створювати нові промені, щоб відслідковувати відбиття або заломлення на поверхнях. Крім того, алгоритм включає відслідковування тіней, визначаючи, чи потрапляє точка на поверхні під дію джерела світла або знаходиться в тіні. Розрахунок світла враховує не тільки прямі промені, але й складніші ефекти, такі як глобальне освітлення, що створює реалістичні переходи між світлом і тінню. Глибина трасування — це кількість таких взаємодій, які відслідковуються (скільки разів промінь буде відбитий або заломлений). Більша глибина трасування дає більш детальні та реалістичні результати, але й збільшує час обчислень. 50. Проста модель освітлення. Основні компоненти моделі освітлення Проста модель освітлення — це базова модель, яка описує, як світло взаємодіє з поверхнями об'єктів в 3D-графіці, використовуючи основні компоненти: Ambient light (навколишнє освітлення): Постійний рівень освітлення для всіх об'єктів сцени, що імітує розсіяне світло. Diffuse light (дифузне освітлення): Залежить від кута падіння світла на поверхню. Імітує рівномірно розподілене світло, відбите від матових поверхонь. Specular reflection (дзеркальне відбиття): Моделює яскраві блиски на поверхнях, таких як метал або пластик, залежить від кута спостереження тут досить інформації? Ця модель дозволяє створювати прості, але реалістичні ефекти освітлення. 51. Корнеллська коробка Корнеллська коробка - це тест, спрямований на визначення точності програмного забезпечення для рендерингу шляхом порівняння візуалізованої сцени з реальною фотографією тієї ж сцени і є широко використовуваною тестовою 3D-моделлю. Фізична модель коробки створюється і фотографується камерою. Вимірюються точні параметри сцени: спектр випромінювання джерела світла, спектри відображення поверхонь, очне положення та розмір всіх об'єктів, стін, джерела світла та камери. Сцена-рендер і вихідний файл порівнюється з фотографією. Базова сцена складається з: Одне джерело білого світла у центрі стелі Зелена стіна праворуч Червона стіна ліворуч Біла задня стіна Біла підлога 52. Зафарбування граней методами Гуро, Фонга Метод Гуро: Кольори між вершинами багатокутника інтерполюються лінійно. Кожній вершині присвоюється колір, розрахований за допомогою моделі освітлення, а потім цей колір змінюється між вершинами. Основний недолік — можливі різкі переходи між багатокутниками, що може призвести до помітних артефактів. Метод Фонга: Нормалі між вершинами багатокутника інтерполюються, а кожній вершині присвоюється нормаль для обчислення освітлення на кожній точці поверхні. Це забезпечує більш плавний та реалістичний вигляд, оскільки освітлення розраховується з урахуванням нормалі в кожній точці, а не лише у вершинах. 53. Що таке ступінчастість. Усунення ступінчастості. Ступінчастість, або алайсінг, - це візуальний ефект, коли плавні лінії та криві зображаються у вигляді чітких сходинок на цифрових пристроях. Це відбувається через недостатню роздільну здатність пристрою. Основні методи усунення ступінчастості Згладжування кольорів. Використання різних фільтрів для інтерполяції кольорів між пікселями, що зменшує ефект ступінчастості. Супертекстурація. Накладання декількох текстур або проходів рендерингу для досягнення більш плавного і детального зображення. Згладжування форм. Застосування алгоритмів, що обробляють контури об'єктів для усунення гострих кутів та чітких ліній