3D графіка
Вступ
Питання про те, що ж є двигуном усієї комп'ютерної індустрії, давно турбує багатьох користувачів. Чи то це фірма Intel, що, не перестаючи, випускає і випускає нові процесори. Але хто тоді змушує їх купувати? Може, в усьому винуватий Microsoft, що безупинно робить свої вікна більше і краше? Так ні, можна адже задовольнятися старими версіями програм - тим більше спектр їхніх можливостей практично не змінюється. Висновок напрошується сам собою - в усьому винуваті ігри. Так, саме ігри прагнуть усе більш і більш уподібнитися реальному світу, створюючи його віртуальну копію, хочуть усе більш могутніх ресурсів.
Вся історія комп'ютерної графіки на PC є тому підтвердженням. Згадаєте, на початку були тетріси, діггери, арканоїди. Уся графіка полягала в перемальовуванні невеликих ділянок екрана, спрайтів, і нормально працювала навіть на XT. Але пройшли ті часи. Зійшла зірка симулятрів.
З виходом таких ігор, як F19, Formula 1 і т.п., у яких приходилося вже перемальовувати весь екран, попередньо заготовлюючи його в пам'яті, усім нам довелося обзавестися, принаймні, 286 процесором. Але прогрес на цьому не зупинився. Бажання уподібнити віртуальний світ у грі реальному світу підсилилося, і з'явився Wolf 3D.
Це, можна сказати, перша 3D-гра, у якій був змодельований який-ніякий, але все-таки реалістичний світ. Для його реалізації довелося використовувати верхню (більш 640 Кб) пам'ять і загнати програму в захищений режим. Для повноцінної гри довелося установити процесор 80386. Але і світ Wolf 3D страждав недоліками. Хоча стіни і були не просто одноколірними прямокутниками, але для їхнього зафарбування використовувалися текстури з невеликим дозволом, тому поверхні виглядали пристойно лише на відстані. Звичайно, можна було піти по шляху нарощування дозволу текстур, згадаємо, наприклад, DOOM. Тоді нам довелося знову перейти на більш новий процесор і збільшити кількість пам'яті. Правда, усе рівно, хоча зображення і покращилося, але йому були присущи всі ті ж недоліки. Та й плоскі об'єкти і монстри - кому це цікаво.
Отут те і зійшла зірка Quake. У цій грі був застосований революційний підхід - z-буфер, що дозволив додати об'ємність всім об'єктам. Однак уся гра все рівно працювала в невисокому дозволі і не відрізнялася високою реалістичністю.
Назрівало нове апаратне рішення. І рішення це виявилося, узагалі ж, що лежить на поверхні. Раз користувачі хочуть грати в тривимірному віртуальному світі, то процес його створення (згадаємо хвилини чекання, проведені за 3D Studio перед появою чергової картинки) треба кардинально прискорити. А раз центральний процесор з цією задачею справляється з рук геть погано, було прийнято революційне рішення - зробити спеціалізований.
Отут те і виліз виробник ігрових автоматів 3Dfx, що зробив цю казку минулим за допомогою свого графічного процесора Voodoo. Людство зробило ще один крок у віртуальний світ.
А оскільки операційної системи на PC з текстурними вікнами, що спливають назад, у туман, поки ні, і не передбачається, весь апарат тривимірної графіки можна поки застосувати тільки до ігор, що успішно робить усе цивілізоване людство.
Модель
Для зображення тривимірних об'єктів на екрані монітора потрібно проведення серії процесів (звичайно називаних конвеєром) з наступною трансляцією результату в двовимірний вид. Спочатку, об'єкт представляється у виді набору крапок, чи координат, у тривимірному просторі. Тривимірна система координат визначається трьома осями: горизонтальної, вертикальної і глибини, звичайно називаних, відповідно осями x, y і z. Об'єктом може бути будинок, людина, машина, чи літак цілий 3D світ і координати визначають положення вершин (вузлових крапок), з яких складається об'єкт, у просторі. З'єднавши вершини об'єкта лініями, ми одержимо каркасну модель, називану так через те, що видимими є только краї поверхонь тривимірного тіла. Каркасна модель визначає області, що складають поверхні об'єкта, що можуть бути заповнені кольором, текстурами і висвітлюватися променями світла.
Рис. 1: Каркасна модель куба
Навіть при такім спрощеному поясненні конвеєра 3D графіки стає ясно, як багато потрібно обчислень для промальовування тривимірного об'єкта на двовимірному екрані. Можна представити, наскільки збільшується обсяг необхідних обчислень над системою координат, якщо об'єкт рухається.
Рис. 2: Модель літака з зафарбованими поверхнями
Роль API
Програмувальний інтерфейс додатків (API) складається з функцій, керуючих 3D конвеєром на програмному рівні, але при цьому може використовувати переваги апаратної реалізації 3D, у випадку наявності цієї можливості. Якщо мається апаратний прискорювач, API використовує його переваги, якщо ні, то API працює з оптимальними настроюваннями, розрахованими на самі звичайні системи. Таким чином, завдяки застосуванню API, будь-яка кількість програмних засобів може підтримуватися будь-якою кількістю апаратних 3D прискорювачів.
Для додатків загального і розважального напрямку, існують наступні API:
Microsoft Direct3D
Criterion Renderware
Argonaut BRender
Intel 3DR
Компанія Apple просуває свій власний інтерфейс Rave, створений на основі їх власного API Quickdraw 3D.
Для професійних додатків, що працюють під керуванням WindowsNT домінує інтерфейс OpenGL. Компанія Autodesk, найбільший виробник інженерних додатків, розробила свій власний API, називаний Heidi.
Свої API розробили і такі компанії, як Intergraph - RenderGL, і 3DFX - GLide.
Існування і приступність 3D інтерфейсів, що підтримують безліч графічних підсистем і додатків, збільшує потреба в апаратних прискорювачах тривимірній графіці, що працюють у режимі реального часу. Розважальні додатки, головний споживач і замовник таких прискорювачів, але не варто забувати і про профессиональні додатки для обробки 3D графіки, що працюють під керуванням Windows NT, багато хто з який переносяться з високопродуктивних робочих станцій, типу Silicon Graphics, на PC платформу. Інтернет додатка сильно