Програмні засоби обробки тривимірної графіки
На персональних комп'ютерах основну частку ринку програмних засобів обробки тривимірної графіки займають три пакети. Найефективніше вони працюють на наймогутніших машинах (у двох- або чотирипроцесорних конфігураціях Pentium II/III, Xeon) під управлінням операційної системи Windows NT.
Програма створення і обробки тривимірної графіки 3D Studio Max фірми Kinetix спочатку створювалася для платформи Windows. Цей пакет вважається «напівпрофесійним». Проте його засоби цілком вистачає для розробки якісних тривимірних зображень об'єктів неживої природи. Відмітними особливостями пакету є підтримка великого числа апаратних прискорювачів тривимірної графіки, могутні світлові ефекти, велике число доповнень, створених сторонніми фірмами. Порівняльна невимогливість до апаратних ресурсів дозволяє працювати навіть на комп'ютерах середнього рівня. Разом з тим по засобах моделювання і анімації пакет 3D Studio Max поступається розвиненішим програмним засобам.
Програма Softimage 3D компанії Microsoft спочатку створювалася для робочих станцій SGI і лише порівняно недавно була конвертована під операційну систему Windows NT. Програму відрізняють багаті можливості моделювання, наявність великого числа регульованих фізичних і кінематографічних параметрів. Для рендеринга застосовується якісний і достатньо швидкий модуль Mental Ray. Існує безліч доповнень, що випущені “третіми” фірмами, значно розширюють функції пакету. Ця програма вважається стандартом «де-факто» в світі спеціалізованих графічних станцій SGI, а на платформі IBM РС виглядає дещо важкувато і вимагає могутніх апаратних ресурсів.
Найбільш революційною з погляду інтерфейсу і можливостей є програма Мауа, розроблена консорціумом відомих компаній (Alias, Wavefront, TDI). Пакет існує у варіантах для різних операційних систем, у тому числі і Windows NT. Інструментарій Мауа зведений в чотири групи: Animation (анімація), Modeling (моделювання), Dynamic (фізичне моделювання), Rendering (візуалізація). Зручний інтерфейс, що настроюється, виконаний відповідно до сучасних вимог. На сьогоднішній день Мауа є найбільш передовим пакетом в класі засобів створення і обробки тривимірної графіки для персональних комп'ютерів.
Алгоритм Брезенхема для генерації кола.
Один з найбільш ефективних і простих для розуміння алгоритмів генерації кола належить Брезенхему. Спершу відмітимо, що необхідно згенерувати тільки одну восьму частину кола. Інші її частини можуть бути отримані послідовними віддзеркаленнями, як це показано на мал. 1. Якщо згенерувати перший октант (від 0 до 45° проти годинникової стрілки), то другий октант можна отримати дзеркальним віддзеркаленням відносно прямої у = х, що дає в сукупності перший квадрант. Перший квадрант відбивається відносно прямою х = 0 для отримання відповідної частини кола в другому квадранті. Верхнє півколо відбивається відносно прямою у = 0 для завершення побудови. На рис. 1 приведені двовимірні матриці відповідних перетворень.
Рис. 1. Генерація повного кола з дуги в першому октанті.
Для виведення алгоритму розглянемо першу чверть кола з центром на початку координат. Відмітимо, що якщо робота алгоритму починається в точці х = 0, у = R, то при генерації кола за годинниковою стрілкою в першому квадранті у є монотонно убуваючою функцією за аргументом (мал. 2). Аналогічно, якщо початковою точкою є у = 0, х == R, то при генерації кола проти годинникової стрілки х буде монотонно убуваючою функцією аргументу у. У нашому випадку вибирається генерація за годинниковою стрілкою з початком в точці х = 0, у = R. Передбачається, що центр кола і початкова точка знаходяться точно в точках растру.
Мал. 2. Коло в першому квадранті Мал. 3. Вибір пікселів в першому
квадранті
Для будь-якої заданої точки на колі при генерації за годинниковою стрілкою існує тільки три можливості вибрати наступний піксел, що найкращим чином наближає коло: горизонтально управо, по діагоналі вниз і управо, вертикально вниз. На мал. 3 ці напрями позначені відповідно mH, mD, mV. Алгоритм вибирає піксел, для якого мінімальний квадрат відстані між одним з цих пікселов і колом, тобто мінімум з
mH = |(xi + 1)2 + (yi)2 -R2|
mD = |(xi + 1)2 + (yi -1)2 -R2|
mV = |(xi )2 + (yi -1)2 -R2|
Обчислення можна спростити, якщо відмітити, що в околиці крапки (xi,yi) можливі тільки п'ять типів перетинів кола і сітки растру, приведених на мал. 4.
Різниця між квадратами відстаней від центру кола до діагонального піксела (xi, + 1, уi - 1) і від центру до крапки на колі R2 рівна
Δ i = (xi + 1)2 + (yi -1)2 -R2
Як і в алгоритмі Брезенхема для відрізка, для вибору відповідного піксела бажано використову-вати тільки знак помилки, а не її величину.
При Δi < 0 діагональна крапка (xi, + 1, уi - 1) знаходиться усередині реального кола, тобто це випадки 1 або 2 на мал. 4. Ясно, що в цій ситуації слід вибрати або піксел xi, + 1, уi), тобто mH, або піксел (xi, + 1, уi - 1), тобто mD. Для цього спочатку розглянемо випадок 1 і перевіримо різницю квадратів відстаней від кола до пікселов в горизонтальному і діагональному напрямах:
Δ = |(xi + 1)2 + (yi )2 -R2| - |(xi + 1)2 + (yi -1)2 -R2|
При Δi < 0 відстань від кола до діагонального піксела більше, ніж до горизонтального. Навпаки, якщо Δ > 0, відстань до горизонтального піксела більша. Таким чином
при Δ <= 0 вибираємо mH в (xi, + 1, уi - 1)
при Δ > 0 вибираємо mD в (xi, + 1, уi - 1)
При Δ = 0, коли відстань від кола до обох пікселів однакові, вибираємо горизонтальний крок.
Кількість обчислень, необхідних для оцінки величини Δ, можна скоротити, якщо відмітити, що у разі 1
(xi + 1)2 + (yi )2 -R2 >= 0
(xi + 1)2 + (yi -1)2 -R2 < 0
оскільки діагональний піксел (xi, + 1, уi - 1) завжди лежить усередині кола, а горизонтальний (xi, + 1, уi ) - поза нею. Таким чином, Δ можна обчислити за формулою
Δ= (xi + 1)2 + (yi )2 -R2 + (xi + 1)2 + (yi -1)2 -R2
Доповнення до повного квадрата члена (yi)2 за допомогою додавання і віднімання - 2yi + 1 дає
Δ= 2[(xi + 1)2 + (yi -1)2 -R2] + 2yi - 1
У квадратних дужках стоїть за визначенням Δi і його підстановка
Δ = 2(Δi + yi) – 1, істотно спрощує вираз.
Системи координат
Існує декілька способів завдання призначеної для користувача системи координат. Положення координатної системи можна зберігати і відновлювати.
Користувач визначає призначену для користувача систему координат (КСК) з метою змінити місцеположення початкової точки 0,0,0, місцеположення і кут повороту площини XY і орієнтацію площини XY або осі Z. Користувач може розташувати і зорієнтувати КСК на будь-якому місці в 3D просторі і може визначити, зберегти і наново викликати таку кількість збережених адрес КСК, яке йому потрібне.
Якщо на екрані монітора розташовується декілька видових екранів, на кожному з них можна встановити свою КСК.
Задавання КСК
Задавання нової КСК може бути здійснене наступними способами:
Задати нову початкову точку (одну), нову вісь X (дві крапки) або нову площину XY (три крапки).
Вирівняти КСК шляхом вибору грані на об'єкті 3D тіла. Вибір може бути зроблений на грані або на ребрі тіла.
Сумістити нову КСК з існуючим об'єктом. Початкова точка КСК розташована у вершине, максимально наближеній до позиції, на якій був вибраний об'єкт.
Сумістити нову КСК з поточним напрямом погляду
Повернути поточну КСК навколо будь-якої з трьох її великих осей.
Переорієнтовувати площину XY шляхом завдання новій осі Z [2].
Декартові (прямокутні) координати. При цьому для визначення двовимірних і тривимірних координат застосовуються три взаємно перпендикулярні осі: X, Y і Z. Для введення координат вказується відстань від крапки до початку координат по кожній з цих осей, а також напрям (+ або -). При початку нового малюнка поточною системою завжди є світова система координат World Coordinate System (WCS) отже, вісь X направлена горизонтально, вісь Y - вертикально, а вісь Z перпендикулярна плоскості XY.
Полярні координати. При введенні координат вказується відстань, на якій розташовується крапка від початку координат, а також величина кута, утвореного полярною віссю і відрізком, подумки проведеним через дану крапку і початок координат. Кут задається в градусах проти годинникової стрілки. Значення 0 відповідає позитивному напряму осі ОХ.
Кожна точка в полярній системі координат може бути визначена двома полярними координатами, що зазвичай мають назву r (радіальна координата) та φ (кутова координата, полярний кут, азимут, інколи пишуть θ або t). Координата r відповідає відстані до полюса, а координата φ дорівнює куту в протигодинниковому напрямі від променя через 0° (інколи називається полярною віссю).
- Добровольський ю.Г., Прохоров г.В.
- Тема 1. Основи нарисної геометрії Лекція 1. Основні правила виконання креслень.
- Короткий історичний огляд.
- Поняття про креслення.
- Креслярські приладдя.
- Креслярські матеріали.
- Лінії креслення.
- Формати креслень.
- Основні написи.
- Нанесення розмірів на кресленнях.
- Розмірні та виносні лінії.
- Розмірні числа.
- Масштаби.
- Побудова та поділ прямих ліній.
- Побудова паралельних прямих.
- Побудова перпендикулярних прямих.
- Коло та правильні многокутники. Основні терміни.
- Спряження ліній.
- Спряження паралельних ліній.
- Спряження двох дуг кіл.
- Спряження двох кіл.
- Циркульні криві.
- Лекальні криві.
- Парабола.
- Гіпербола.
- Синусоїда.
- Загальні положення.
- Вигляди.
- Виносні елементи.
- Перерізи.
- Виготовлення креслень
- Нанесення розмірів на робочих кресленнях деталей
- Лекція 2. Виконання інженерних креслень
- Додаток 1. Класифікація конструкторських документів
- Класифікація схем та основні положення гост 2.701-84
- Комплектність конструкторської документації
- Позначення виробів і конструкторських документів
- Нормативно-технічна документація єскд
- Додаток 2. Позначення в електричних колах. Символи
- Тема 2. Концептуальні основи подання графічних зображень. Двовимірні зображення та їх перетворення Лекція 3. Предмет, методи і завдання дисципліни.
- – Додаткова:
- Предмет і область застосування комп'ютерної графіки
- Коротка історія
- Технічні засоби підтримки комп'ютерної графіки
- Лекція 4. Принципи подання графічних зображень. Світло та зображення. Поняття трасування променів. Зоровий апарат людини
- Лекція 5. Геометричні перетворення двовимірних зображень
- Геометричні перетворення (перенос, масштабування, обертання)
- Відтинання, проективне перетворення, растрове перетворення відсікання відрізків
- Двовимірний алгоритм Коена-Сазерленда
- Проективне перетворення
- Растрове перетворення графічних примітивів
- Тема 3. Растрова та векторна графіка Лекція 6. Растрова графіка
- Лекція 7. Векторна графіка
- Загальна харктеристика прогарами CorelDraw Інтерфейс програми
- Стандартна панель інструментів
- Панель інструментів
- Створення векторних об'єктів Створення простих фігур
- Малювання ліній
- Основи роботи з текстом Види тексту у CorelDraw
- Редагування тексту
- Редагування зображень Виділення об'єктів
- Накладення об'єктів один на одного
- З'єднання об'єктів
- Зміна форми стандартних об'єктів
- Тема 4. Алгоритмічні основи тривимірної графіки Лекція 8. Основні поняття тривимірної графіки
- Основні поняття тривимірної графіки
- Тривимірні примітиви
- Програмні засоби обробки тривимірної графіки
- Зв'язок між декартовими та полярними координатами
- Тривимірне розширення
- Ц иліндричні координати
- Сферичні координати
- Перехід до інших систем координат
- Афінне перетворення
- Афінні координати Афінна система координат на прямій, на площині, в просторі
- Координати векторів і крапок в афінній системі координат
- Візуалізація просторових реалістичних сцен Світло- тіньовий аналіз
- Тема 5. Комп'ютерне проектування в системі AutoCad Лекція 9. Графічна система проектування AutoCad та створення 2d об'єктів в AutoCad
- Лекція 10. Графічна система проектування AutoCad та створення 3d об'єктів в AutoCad