КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
D-акселераціяПри відображенні ривимірних об’єктів, які динамічно рухаються, виникає задача обчислення дуже великого об’єму даних. Для забезпечення виконання цих обчислень в склад відеоконтролера включають пристрій, що називається прискорювачем тривимірної графіки або 3D-акселератором. Він виконує синтез тривимірного ображення. Основна мета синтезу 3D-зображення - це аналітичний розрахунок візуальних ефектів, які створюють відчуття об’ємності зображення і, відповідно, ілюзію його реальності. Ці ефекти відносяться до групи вторинних факторів, що визначають здатність людини до об’ємного сприйняття (первинним фактором є стереозір). До них відносяться: § оцінка відстані до предмету на основі інформації про його розміри (чим менший об’єкт, тим він дальший), § оцінка порядку накладання предметів один на одний (хто вище, той ближче), § визначення глибини простору за рахунок використання ефекту перспективи - візуального зближення паралельних ліній, що удаляються, § аналіз світлових ефектів та предметі (тіней, бликів та ін.). Всі ці особливості дозволяють використовувати для відтворення 3D-сцен звичайні двовимірні засоби відображення, наприклад монітори. Процес синтезу тривимірного зображення об’єкту (його двовимірної проекції) будується за схемою, яка називається 3D-конвейєром. До етапів 3D-конвейєра відносяться: 1) Побудова геометричної моделі поверхні об’єкту шляхом задання тривимірних координат опорних (ключових) точок, а також рівнянь ліній, що їх з’єднують. В результаті виникає каркасна модель об’єкту (wireframe). 2) Розбиття поверхні отриманого об’єкту на елементарні плоскі елементи - прямокутники або трикутники. Цей етап також називається теселяцією (Tesselation) або триангуляцією. В результаті поверхня об’єкту стає “гранованою”, тобто являє собою сукупність плоских багатокутників (трикутників або чотирикутників). Чим більше таких граней і чим менше вони за розміром, тим точніше відтворюється поверхня об’єкту. 3) Трансформація (Transformation). Моделюється рух об’єкту: його переміщення, обертання та зміна розмірів (форми). Вона зводиться до стандартного перетворення координат вершин граней (вертексів) і реалізується шляхом виконання множини різних операцій матричної (лінійної) алгебри та тригонометричних функцій. 4) Розрахунок освітленості (Lighting) та затінення (Shading) об’єкту. Розраховується освітленість кожного елементарного трикутника, приймаючи до уваги його віддаленість від джерела світла та кут падіння світлового променя (для цього елемент поверхні об’єкту повинен бути плоским). Це дозволяє імітувати реальну освітленість об’єкту, що підкреслює його об’ємність. Однак, якщо освітленість всіх точок кожного трикутника однакова, то на поверхні об’єкту вони будуть не помітні. Для усунення цього дефекту застосовують методи затінення - інтерполяції значень освітленості, що дозволяють плавно змінювати освітленість кожної грані і приховувати різкі переходи між гранями. Найчастіше використовуються методи Гуро (Gouraid Shading) та Фонга (Phong Shading). 5) Проектування отриманого тривимірного об’єкту на поверхню екрану. Відбувається перше попереднє перетворення тривимірного об’єкту і в сукупності двовимірних, однак інформація про відстань кожної з вершин елементарного трикутника до площини проектування зберігається. Це дозволить на наступних етапах коректно визначити, які частини об’єтку будуть видимі, а які ні. Сукупність даних про глибину кожної з вершин або значення їх третьої координати Z називають z-буфером. Використання z-буфера - одна з головних відмінностей роботи з 3D-графікою від 2D-графіки. 6) Обробка (настройка) даних про вершини елементарних трикутників, отриманих на попередніх етапах (Triangle Setup). Виконується перетворення форми представлення координат вершин: з дійсних чисел формуються цілі числа. Крім того відбувається сортування вершин і відкидання задніх граней (culling). 7) Видалення невидимих поверхонь (Hidden Surface Removal, HSR) - виключення з проектування тих елементів поверхні об’єкту, що виявились невидимими з точки спостереження. 8) Зафарбовування елементарних трикутників, або текстурування (Texture mapping)- виконується шляхом накладання текстур з врахуванням даних, отриманих на попередньому етапі. Накладання текстур - перший етап, що виконується над растровою графікою. В результаті кожний трикутник, що задавався тільки координатами вершин, заміняється на частину текстури. 9) Моделювання ефектів прозорості та напівпрозорості. На основі інформації про взаємну прозорість об’єктів та середовища виконується корекція кольору пікселів - альфа-змішування (alpha-blending) та затуманювання (fogging). 10) Корекція дефектів зображення, що викликані зазубреністю ліній на границях об’єктів - антіаліасінг (anti-aliasing). 11) Інтерполяція відсутніх кольорів - дизерінг (dithering) - використовується в тому випадку,якщо в біжучому відеорежимі 3D-акселератора для кодування кольору піксела використовується менше 24 біт (наприклад, режим High Color - 16 біт). Це приводить до незначного погіршення розділення (різкості), але дозволяє ефективно імітувати кольори, відсутні в палітрі. 12) Остаточне формування кадрового буфера (frame buffer) - області пам’яті 3D-акселератора, в яку розміщується спроектоване двовимірне зображення. Кадровий буфер використовується для формування вихідного аналогового відеосигналу 3D-прискорювача так само, як це робиться в звичайному VGA-відеоадаптері. Для прискорення процесу створення зображення використовується механізм подвійної буферизації, при якому виділяється пам’ять одночасно для двох суміжних кадрів: побудова наступного кадру починається ще до того, як закінчиться відображення попереднього. 13) Пост-обробка (Post-processing) - використовується в тому випадку, коли потрібно реалізувати деякі двовимірні ефекти над підготовленим кадром як єдиним цілим. Етапи 1..6 утворюють геометричну стадію 3D-конвейєра. На цій стадії інтенсивні тригонометричні обчислення виконуються центральним процесором з математичним співпроцесором або 3D-акселератором (nVidia GeForce 256, ATI Radeon 256, S3 Savage 2000). Етапи 7..13 утворюють стадію прорисовування об’єкту або стадію рендерінга. На цій стадії всі дії виконуються над растровими об’єктами. Вона є найбільш складною, багатоетапною і трудомісткою, отже 3D- акселератори були в першу чергу призначені для її реалізації.
|