Тривимірна комп'ютерна графіка
Введення
Машинна графіка в даний час вже цілком сформувалася як наука. Існує апаратне і програмне забезпечення для отримання різноманітних зображень - від простих креслень до реалістичних образів природних об'єктів. Машинна графіка використовується майже в усіх наукових та інженерних дисциплінах для наочності сприйняття і передачі інформації. Знання її основ у наш час необхідно будь-якому вченому або інженеру. Машинна графіка владно вторгається в бізнес, медицину, рекламу, індустрію розваг. Застосування під час ділових нарад демонстраційних слайдів, підготовлених методами машинної графіки та іншими засобів автоматизації конторського праці, вважається нормою. У медицині стає звичайним отримання тривимірних зображень внутрішніх органів за даними комп'ютерних томографів. У наші дні телебачення та інші рекламні підприємства часто вдаються до послуг машинної графіки та комп'ютерної мультиплікації. Використання машинної графіки в індустрії розваг охоплює такі несхожі області як відеоігри та повнометражні художні фільми.
На сьогоднішній день створено велику кількість програм, що дозволяють створювати і редагувати тривимірні сцени та об'єкти. Серед найбільш популярних можна назвати такі як 3D studio Max, яка дозволяє тривимірні комп'ютерні ролики. Область її застосування в основному реклама, мультиплікація та оформлення телевізійних передач. Інший не менш популярний пакет програм це Auto-CAD. Він застосовується в основному інженерами і проектувальниками для створення креслень і просторових моделей. Крім цих існує безліч інших спеціалізованих програмних пакетів що охоплюють практично всі сторони людського життя.
Серед різноманіття можливостей, що надаються сучасними обчислювальними засобами, ті, що засновані на просторово-образному мисленні людини, займають особливе місце. Сучасні програмно-оперативні засоби комп'ютерної графіки представляють собою досить ефективний інструмент підтримки такого мислення при виконанні робіт найрізноманітніших видів. З іншого боку саме просторово-образне мислення є неформальною творчої основою для розширення образотворчих можливостей комп'ютерів. Це важлива обставина припускає взаємно збагачує співробітництво все більш досконалої техніки і людини з усім багатством знання, накопиченого попередніми поколіннями. Око і раніше був ефективним засобом пізнання людиною світу і себе. Тому такою привабливою виявляється комп'ютерна візуалізація, особливо візуалізація динамічна, яку слід розглядати як найважливіший інструмент для навчання наукам.
Введення в машинну графіком
Сучасна машинна графіка - це ретельно розроблена дисципліна. Докладно досліджені сегменти геометричних перетворень і описів кривих і поверхонь. Також вивчені, але все ще продовжують розвиватися методи растрового сканування, відсікання, видалення ліній і поверхонь, колір, зафарбування, текстура і ефекти прозорості. Зараз найбільший інтерес представляють саме ці розділи машинної графіки.
Машинна графіка - складна і різноманітна дисципліна. Для вивчення її, перш за все, необхідно розбити на частини доступні для огляду. Перш за все необхідно розглянути методи і алгоритми растрової графіки. Це досить простий, але дуже важливий розділ машинної графіки. У цьому розділі розглядаються алгоритми малювання відрізків і кіл на екрані монітора, методи растрової розгортки, заповнення багатокутників, усунення ступінчастості або сходового ефекту. Окремо слід розглянути методи відсікання зображення, тобто відбору тієї інформації, яка необхідна для візуалізації конкретної сцени.
При побудові тривимірної сцени виникає проблема видалення невидимих ліній і поверхонь. Це одна з найбільш складних складових візуалізації тривимірних об'єктів. Способи досягнення ефектів прозорості, відображення і т.п., строго кажучи, не входять в завдання видалення невидимих частин тривимірних об'єктів і, тим не менш, деякі з них тісно пов'язані з цією проблемою. Наприклад, побудова тіней. Не дивлячись на це, в комп'ютерній графіці виділяється досить великий розділ, присвячений побудови реалістичних зображень, у якому докладно розглядаються методи створення таких ефектів як дзеркальне відображення, заломлення променів у різних середовищах, тіні, фактура об'єкта. Так само розглядаються різні джерела світла, їх спектральні характеристики і форма. Сюди ж відносяться колірні ефекти, згладжування поверхонь і багато іншого.
Як видно з вище сказаного комп'ютерна графіка це досить об'ємна дисципліна, тому я зупинюся лише на деяких її найцікавіших аспектах.
Растрова графіка
Будь-яке зображення, в тому числі і тривимірне, складається з графічних примітивів. Тому, перш за все, необхідно знати спеціальні методи створення зображення, креслення прямих і кривих ліній, зафарбовування багатокутників, що створює враження суцільних об'єктів. Розглянемо деякі з цих методів.
Алгоритми креслення відрізків
Оскільки екран дисплея можна розглядати як матрицю дискретних елементів (пікселів) , b> кожен з яких може бути підсвічений, не можна безпосередньо провести відрізок з однієї точки в іншу. Процес визначення пікселів, найкращим чином апроксимуючих заданий відрізок, називається розкладом в растр. Для горизонтальних, вертикальних b> і нахилених під кутом b> 45 °
відрізків вибір растрових елементів очевидний. При будь-якій іншій орієнтації вибрати потрібні пікселі важче.
Існують різні алгоритми виконують цю задачу. Розглянемо два з них.
Цифровий диференціальний аналізатор
Один з методів розкладання відрізка в растр полягає у вирішенні диференціального рівняння, що описує цей процес. Для прямої лінії маємо:
або н
Рішення представляється у вигляді
де x1, y1 і x2, y2 - кінці розкладаного відрізка і yi - початкове значення для чергового кроку вздовж відрізка. Фактично рівняння (2.1.) Являє собою рекурентні співвідношення для послідовних значень y уздовж потрібного відрізка. Цей метод, що використовується для розкладання в растр відрізків, називається цифровим диференціальних аналізатором (ЦБА). У простому ЦБА або , або (більше з збільшень) вибирається в якості одиниці растру. Нижче наводиться простий алгоритм, який працює у всіх квадрантах:
Процедура розкладання в растр відрізка за методом цифрового диференціального аналізатора (ЦБА)
b>
передбачається, що кінці відрізка (x1, y1) та (x2, y2) не збігаються
Integer - b> функція перетворення дійсного числа в ціле.
Примітка: у багатьох реалізаціях функція Integer означає взяття цілої частини, тобто Integer b> (--
8.5) = --
9, а не --
8. В алгоритмі використовується саме така функція.
Sign b> --
функція, що повертає --
1, 0, 1 для негативного нульового і позитивного аргументу відповідно.
if b> abs (x2 --
x1)