DirectX - сукупність технологій, розроблених корпорацією Microsoft з метою перетворити Windows в оптимальну платформу для мультимедійних додатків і комп'ютерних ігор з повнокольоровим графікою, відео, тривимірною анімацією і об'ємним звуком. Технологія DirectX стане складовою частиною майбутніх версій ОС корпорації Microsoft - Windows 98 і Windows NT 5.0, а також браузера Internet Explorer 4.0. Уже сьогодні DirectX дає можливість розробникам ігрових програм і додатків мультимедіа створювати продукти, не прив'язані жорстко до тих чи інших апаратних засобів, користувачі можуть купувати ігри і програми мультимедіа для Windows, не турбуючись про їх несумісність з апаратурою свого комп'ютера.

До появи DirectX практично всі ігри для комп'ютерів PC реалізовувалися на платформі MS-DOS. Кожну програму розробникам доводилося комплектувати безліччю відео- і аудіодрайвер (з тим, щоб охопити якомога більше встановлених у користувачів апаратних компонентів) і при цьому застосовувати розширювачі DOS для подолання бар'єру в 640 Кбайт. Середовище Windows, спростила взаємодію користувачів з ПК завдяки зручному графічному інтерфейсу, не полегшило життя програмістів: в Windows графічні програми функціонували надто повільно. Як не пародоксально це звучить, Windows, будучи графічним середовищем, була пристосована для виконання швидких графічних операцій.

Намагаючись виправити ситуацію, Microsoft розробила для творців комп'ютерних ігор і графічних додатків технологію WinG, яка забезпечувала більш швидке виконання графічних операцій, ніж інтерфейс GDI (Graphics Device Interface) Windows (див. Врізку "WinG або DirectDraw?"). У той же час корпорація не обмежувалася тільки рішенням проблем продуктивності. Розробники прагнули до того, щоб програмісти могли створювати ігрові та прикладні програми, не замислюючись про те, які апаратні компоненти є у конкретного користувача. Сама операційне середовище мала містити всі необхідні драйвери і взяти на себе взаємодію програми з апаратурою ПК, такий як аудіо-, відеоплати і принтери.

Тим часом навіть після виходу в світ ОС Windows 95 платформа Microsoft як і раніше не відповідала заявленим обіцянкам. Тільки сьогодні з появою вдосконалених технологій, які отримали узагальнену назву DirectX, положення починає змінюватися.

Технологія DirectX, тепер уже версії 5.0 (версія 6.0 проходить бета-тестування), що змінила DirectX 3.0, дозволяє програмістам створювати в Windows 95 (і в майбутніх ОС Windows 98 і NT 5.0) додатка з вбудованим доступом до апаратних засобів. При цьому їм не потрібно знати специфіку апаратної конфігурації певного комп'ютера - явного програмування конкретної плати не потрібно. Фактично DirectX виконує роль проміжної ланки між програмою і драйвером, перетворюючи узагальнені команди в команди, специфічні для того чи іншого пристрою.

Якщо спочатку DirectX була орієнтована на перетворення Windows 95 в повноцінну платформу для комп'ютерних ігор, завжди стимулювали розвиток апаратних засобів ПК, то в міру проникнення в масові додатки технологій мультимедіа комплект програмних інтерфейсів DirectX стає важливою частиною операційної системи. Нагадаємо, що в браузері Internet Explorer 4.0 застосовується п'ять компонентів DirectX 5.0: DirectDraw, DirectSound, Direct3D, DirectShow і DirectAnimation.

Технологія DirectX 6.0 стане невід'ємною частиною нових ОС Microsoft - Windows 98 і Windows NT 5.0, що дозволить їй остаточно завоювати ринок масових додатків.

Базовий шар DirectX

Базовий шар (DirectX Foundation) надає розробникам єдиний набір API-інтерфейсів, що забезпечують прямий доступ до апаратних засобів - прискорювачів 3D-графіки, звуковим платам. Ці API виконують так звані функції нижнього рівня, зокрема управління пристроями введення (такими, як джойстики, миша і клавіатура), микшированием і відтворенням звуку. Зазначені функції підтримуються чотирма компонентами, складовими DirectX Foundation: DirectDraw, Direct3D, DirectInput і DirectSound.

HAL і HEL

До появи DirectX творцям додатків мультимедіа для платформи Windows доводилося налаштовувати свої продукти для роботи на широкому спектрі пристроїв і конфігурацій. DirectX Foundation передбачає так званий рівень абстрагування апаратних засобів HAL (Hardware Abstraction Layer). HAL функціонує як проміжна ланка між програмним забезпеченням і апаратурою, дозволяючи розробникам звертатися до тих чи інших компонентів, не знаючи їх марки, моделі та інших деталей. В результаті вони отримують можливість писати лише одну версію програми, що взаємодіє з DirectX.

Крім того, DirectX Foundation надає в розпорядження розробників інструментальні засоби для досягнення найвищої продуктивності. Даний базовий шар визначає можливості апаратури комп'ютера і встановлює відповідні параметри програми. Він забезпечує також виконання мультимедіа-додатків, що використовують функції, які не підтримуються в системі на апаратному рівні. Це досягається за рахунок рівня HEL (Hardware Emulation Layer), за допомогою якого DirectX програмно емулює функції, не реалізовані самим пристроєм. Якщо апаратне забезпечення не сумісне із запитуваною програмою сервісом, рівень HEL намагається емулювати його найкращим можливим чином. Найчастіше емулюються кошти 3D-графіки. Хоча емуляція і не так ефективна, як апаратна реалізація, зате розробнику не доводиться писати кілька версій однієї і тієї ж програми.

DirectDraw

Інтерфейс DirectDraw надає розробникам кошти більш прямого доступу до апаратних компонентів, ніж це можливо в системі Windows 95 з її віртуальними драйверами пристроїв, а це в свою чергу призводить до істотного прискорення графічних операцій. З появою DirectDraw розробники стали нарешті розглядати Windows 95 як серйозну платформу для комп'ютерних ігор та інших мультимедійних додатків. Багато засобів DirectDraw прямо або побічно застосовуються в Direct3D.

Саме DirectDraw - єдиний компонент DirectX, взаємодіє з HAL. Використовують DirectDraw додатки взаємодіють тільки з DirectDraw і не можуть звертатися безпосередньо до HAL. Цей інтерфейс підвищує продуктивність додатків за рахунок підтримки функцій 2D-графіки, швидкого виконання операцій з растровими зображеннями, пересилання бітових блоків (blitting), прозорого накладення об'єктів і управління декількома шарами анімації.

По суті, DirectDraw є диспетчер відеопам'яті. Він дозволяє програмісту зберігати текстури і маніпулювати ними безпосередньо в відеопам'яті, використовуючи переваги пересилання блоків, реалізованої на апаратному рівні. Така пересилання з однієї області відеопам'яті в іншу здійснюється набагато швидше, ніж передача з системної пам'яті в відеопам'ять (особливо в разі використання 64-розрядних відеоплат). До того ж дані операції виконуються незалежно від ЦП. Тим самим процесор звільняється для іншої роботи. Крім того, DirectDraw підтримує інші механізми апаратного прискорення, що реалізуються видеоплатой, такі як спрайт і Z-буферизація.

DirectDraw реалізує інтерфейс з відеопам'яттю, використовуючи чотири об'єкти: DirectDraw, DirectDrawSurface, DirectDrawPalette і DirectDrawClipper. Об'єкт DirectDraw, плата адаптера дисплея, є основним. Об'єкт DirectDrawSurface представляє відеопам'ять, куди поміщаються відображаються дані. Зазвичай DirectDrawSurface використовується наступним чином. У пам'яті створюються два буфера (для зміни зображень). Відображені фрагменти записуються в перший буфер (а не виводяться на екрані безпосередньо), а ті, що мають бути відображені наступними - у другій. Потім відбувається перемикання буферів - другий буфер стає поточним, і зображення оновлюється. Direct3D дозволяє виконувати програму в режимі повного екрану або в вікні, а також оперативно налаштовувати в програмі дозвіл дисплея.

Об'єкт DirectDrawPalette допускає застосування для кожного фрагмента власної палітри з 256 кольорів або використання загальних палітр, а DirectDrawClipper дозволяє додаткам, виконуваних у вікні, працювати в обхід GDI, зменшуючи затримки при виведенні графіки і надаючи прозорий доступ до апаратури графічних прискорювачів.

Direct3D

Компонент Direct3D допомагає інтегрувати з додатками Windows 3D-графіку. Він застосовується для розробки інтерактивних додатків тривимірної графіки і програм реального часу. Безперечними його перевагами є незалежність від пристроїв, загальна модель драйверів (гарантує підтримку мінімального набору засобів і можливостей), простота включення в додатки функцій тривимірної графіки. Створені за допомогою Direct3D прикладні системи можуть працювати на різних апаратних платформах, оскільки всі кошти Direct3D реалізуються "поверх" HAL. Крім того, Direct3D пропонує розробникам апаратних засобів специфікацію, що допомагає створювати плати, спочатку підтримують різні засоби Direct3D.

Одним з найбільш важливих якостей Direct3D є прозорий доступ до графічних прискорювачів. Якщо апаратна платформа не підтримує якийсь функції, Direct3D реалізує її еквівалент програмним шляхом. У процесі свого виконання додаток може визначати наявність апаратних компонентів і використовувати їх можливості. Крім того, Direct3D реалізує швидкий програмно виконується рендеринг, для чого застосовується повний конвеєр рендеринга 3D-графіки. При наявності відповідної апаратної підтримки частина операцій такого роду здійснюєтьсяапаратурою комп'ютера.

Користувачеві кошти Direct3D доступні через інтерфейси Retained Mode і Immediate Mode. Retained Mode базується на Immediate Mode і деяких засобах DirectDraw. Разом з HAL ці інтерфейси по суті і утворюють Direct3D. Direct3D Retained Mode (інтерфейс відображення об'єктів Direct3D після їх групування) дозволяє розробникам комбінувати мультимедіа-інформацію (наприклад, графіку і звук) для створення тривимірних сцен і управляти цими сценами в своїх додатках. Для коректного відтворення система файлів Direct3D зберігає інформацію, необхідну для тривимірного рендеринга, включаючи текстури, порядок розташування об'єктів, маршрут анімації та інші деталі.

Direct3D Immediate Mode (інтерфейс безпосереднього відображення об'єктів Direct3D) реалізований на рівні DirectX Foundation і надає розробникам більш прямий доступ до апаратних засобів. Він забезпечує підвищену швидкість і гнучкість, але в цьому випадку рендеринг сцени і управління нею повинні здійснюватися самим програмістом. Крім того, Direct3D працює спільно з HEL і реалізує програмну емуляцію засобів візуалізації 3D-графіки, які не підтримуються апаратурою. Цей шар тісно інтегрований з DirectDraw HAL і драйверами GDI системи Win32, що допомагає уніфікувати модель драйверів для прискорення обробки тривимірної графіки.

Один з найбільш важливих елементів Direct3D - механізм рендеринга, що відповідає за визначення сцени (як набору точок в тривимірному просторі), різні специфікації текстур, джерел світла і камер. Функціонально механізм рендеринга реалізується за допомогою трьох модулів: трансформації, освітленості і растеризации (див. Врізку "Візуалізація в Direct3D"). Виконуються кожним з них операції можна прискорити апаратними засобами, причому таке прискорення здійснюється прозоро для користувача і додатки. Розробнику лише потрібно передбачити в додатку функції розпізнавання відповідних апаратних компонентів.

Компоненти DirectInput і DirectSound DirectInput реалізує підтримку в додатках таких периферійних пристроїв управління, як джойстики. Він дозволяє розробникам програмувати взаємодія з цими пристроями, використовуючи рівень HAL або HEL. У той же час DirectInput не обмежується ігровими контроллерами і реалізує інтерфейс введення даних з таких пристроїв, як графічні планшети.

Компонент DirectSound виконує роль інтерфейсу з апаратурою, яка призначена для відтворення звуку. Він забезпечує програвання файлів .WAV і дозволяє застосовувати буфери різного типу (основні, допоміжні, статичні і потокові). В основній буфер (використовуваний в даний момент комп'ютером) поміщаються файли з допоміжних буферів (відведених для кожного файлу .WAV). Невеликі файли для прискорення доступу можна поміщати в статичні буфери, а довші - циклічно завантажувати в потокові буфери по частинах. Крім того, DirectSound надає мікшер, керуючий різними параметрами відтворення (від гучності до ефектів об'ємного звучання, що застосовуються до допоміжних буферів).

Мультимедійний шар DirectX

Над базовим рівнем DirectX (DirectX Foundation) розташований мультимедійний шар DirectX Media. Якщо DirectX Foundation реалізує функції нижнього рівня, то DirectX Media надає кошти високого рівня для підтримки анімації, потоків мультимедіа (перегляд і прослуховування відео- та аудіофайлів, що завантажуються з Internet), а також інтерактивних функцій.

DirectX Media, як і DirectX Foundation, складається з декількох інтегрованих компонентів: DirectShow, DirectModel, DirectAnimation, DirectPlay, Direct3D Retained Mode (іноді в нього включають і підтримку VRML). Зокрема, DirectShow і DirectPlay вбудовані в останні версії Microsoft Internet Explorer. За допомогою набору взаємопов'язаних фільтрів (взаємодіючих з потоком даних через диспетчер фільтрів) DirectShow виконує функції відтворення потоків аудіо та відео в різних форматах (MPEG, QuickTime, AVI і WAV). Цей компонент є одним із прикладів реалізації вбудовування в операційну систему тих коштів, які раніше пропонувалися в якості інтегрованих модулів і програмних додатків, що поставляються незалежними розробниками.

Інші компоненти мультимедійного шару забезпечують інші функції високого рівня, кожна з яких допомагає розробникам повністю скористатися наявними можливостями апаратних засобів мультимедіа. DirectModel реалізує рендеринг і взаємодія з великими об'єктами 3D-графіки. DirectAnimation дозволяє розробникам комбінувати звук з рухом двох-і тривимірних зображень і пов'язувати їх з тимчасовими і ініційованими користувачем подіями в цілях створення складних анімацій. Компонент DirectPlay спроектований в основному для діалогових ігор за участю кількох партнерів і додатків, в яких використовуються діалогові комунікації між користувачами мережі. Він дозволяє воспроизв одіть мультимедіа при роботі в мережі, здійснюючи обмін інформацією про хід гри і повідомленнями між її учасниками. Мова моделювання віртуальної реальності VRML (Virtual Reality Modeling Language) використовує DirectX для реалізації тривимірних "віртуальних світів" в Web-браузерах, що істотно збільшує швидкість їх відображення.

В цілому мультимедійний шар DirectX допомагає розробникам вирішити одну з найбільш складних завдань, що виникають при створенні високоякісних ігрових програм для Windows і мультимедіа-додатків, - координувати різні типи мультимедійних ефектів. Це робиться за допомогою набору API-інтерфейсів, що синхронізують різні ефекти в рамках однієї програми. До появи DirectX в подібній ситуації доводилося використовувати API-інтерфейси різних виробників (засобів відео, аудіо або анімації), що ускладнювало об'єднання елементів. Шар DirectX Media допомагає розробникам також синхронізувати відтворення мультимедіа, прив'язуючи його елементи до єдиної шкалою часу.

Бібліотека компонентів і інші елементи високого рівня DirectX Foundation і DirectX Media надають розробникам ще одне важливе засіб - бібліотеку компонентів, яку можна використовувати для створення комп'ютерних ігор і мультимедіа-додатків. Така бібліотека спрощує процес розробки, оскільки дозволяє програмістам застосовувати велику кількість стандартних інтерфейсів і елементів. Крім того, реалізовані DirectX Media операції високого рівня використовуються в наступному, компонентний шарі, що складається з додатків, побудованих на основі базової та мультимедійного шарів. Такими компонентами є, зокрема, ActiveMovie, NetMeeting і NetShow, що входять до складу IE 4, Windows 98 і Windows NT 5.0. DirectX дає можливість розробляти цілу систему подібних компонентів, кількість яких продовжує збільшуватися. Крім того, компоненти, складові DirectX, надають розробникам гнучку платформу для використання найсучасніших технологій.

висновок

Технологія DirectX виявилася необхідна внаслідок відкритості платформи PC, яка оснащується все новими і більш складними мультимедійними периферійними пристроями різних виробників. Хоча при наявності відповідних відео- і аудіостандартів розробники могли б створювати свої програми, орієнтуючись безпосередньо на апаратне забезпечення і не користуючись ніякої прошарком типу DirectX, це суперечило б закладеному в основу платформи Windows і Windows NT принципом виключення прямого доступу до апаратних ресурсів (для запобігання відмов ОС через неправильно написаних додатків).

DirectX надає розробникам нові можливості для творчості: їм не потрібно турбуватися про те, який адаптер дисплея, звукова плата або процесор прискорення тривимірної графіки встановлений на ПК користувача. Оскільки технологія DirectX спочатку розрахована на появу удосконалень в програмне і апаратне забезпечення, розробники і користувачі можуть бути впевнені, що їх застосування будуть оптимально використовувати нові апаратні технології.

Ориентация DirectX на платформу Windows и полный контроль со стороны Microsoft далеко не у всех вызывают восторг. Однако, несомненно, этот продукт существенно упростит реализацию мультимедиа-приложений под Windows и обеспечит еще более широкое распространение данной платформы.

Як придбати DirectX Отримати в своє розпорядження DirectX можна, ставши передплатником програми Microsoft Developer Network або придбавши одну з книг видавництва Microsoft Press (таких, як "3D Graphics Programming for Windows 95") з компакт-диском, що містить програмне забезпечення DirectX, або завантаживши його з Web-вузла Microsoft (www.microsoft.com/directx).

WinG або DirectDraw?

До появи DirectX програмісти для створення анімації в середовищі Windows використовували технологію WinG. Вона гарантує прямий доступ до растровому зображенню в системній пам'яті, що дозволяє застосовувати для виведення растрової графіки оптимізовані підпрограми. WinG забезпечує більш високу продуктивність, ніж інтерфейс GDI.

Після підготовки сцени за допомогою WinG растрове зображення поміщається в відеопам'ять і відображається на екрані. На відміну від WinG, де для виведення зображення необхідно здійснити обмін між ОЗУ і відеопам'яттю, в DirectDraw для подання на екрані сцена переписується з однією області відеопам'яті в іншу, що суттєво підвищує продуктивність. Оскільки ресурси відеопам'яті обмежені, в складних іграх або додатках технології DirectDraw і WinG можуть співіснувати і використовуватися спільно.

Що нового в DirectX 6.0

Нещодавно представлена ​​бета-версія комплекту програмних інтерфейсів DirectX 6.0 (який, можливо, буде перейменований в DirectX 98) являє собою шосте покоління API сімейства Direct корпорації Microsoft. Нова версія DirectX вперше буде реалізована в ОС Windows 98 і NT 5.0. З'явилися в неї кошти орієнтовані в основному на підготовку мультимедіа-презентацій і розширену підтримку комп'ютерних ігор. В DirectX 6.0 вдосконалені API-інтерфейси Direct3D (для підтримки плат - прискорювачів тривимірної графіки, таких як ViRGE виробництва S3 і Permedia2 від 3Dlabs). Новий набір API - DirectMusic забезпечує доступ з Windows-додатків до MIDI-файлів та інших форматів звучання музичних інструментів. У Direct3D включений більш досконалий програмний растеризатор, реалізовані & # 1087; оддержка ущільнених форматів текстур, буферів шаблонів, а також многотекстурние ефекти, управління кешуванням текстур, екструзія, оптимізація DMA-доступу. Підвищено продуктивність операцій з багатокутниками. Передбачається також вдосконалена підтримка технології DVD в компоненті DirectShow.

У наступних версіях Microsoft планує підвищити точність рендеринга, удосконалити рельєфні перетворення і операції з тривимірною середовищем, додати підтримку принтерів, яка важлива для бізнес-додатків.

DirectX і OpenGL

OpenGL, колись розроблений компанією Silicon Graphics, реалізує інтерфейс тривимірної графіки, в основному в додатках моделювання і рендеринга. Інтерфейс OpenGL буде включений в Windows 98, Windows NT 5.0 і вже доступний в існуючих версіях - Windows NT 4.0 / 3.51 і Windows 95 OSR2. В архітектурі Windows 98 / NT 5.0 він знаходиться на більш високому рівні, ніж DirectX, і використовує DirectX для оптимальної підтримки апаратних засобів. Функціонально OpenGL аналогічний такому компоненту DirectX, як Direct3D, проте деякі аналітики вважають, що в OpenGL більш продумана архітектура. Microsoft продублювала в деяких компонентах DirectX багато функцій OpenGL. Розробники не цілком розуміють, для чого це потрібно, але, за твердженнями Microsoft, Direct3D є важливим додатковим ланкою між ПО і апаратурою, забезпечуючи зі & # 1 074; местімость з широким спектром пристроїв відображення.

компоненти DirectX

DirectX - набір бібліотек і інтерфейсів для розробки додатків мультимедіа і комп'ютерних ігор для Windows 95 і Windows NT, що включає п'ять базових API-інтерфейсів: DirectDraw, Direct3D, DirectSound, DirectInput і DirectPlay.

DirectDraw забезпечує прямий побітовий доступ до відеопам'яті, дозволяє зберігати фрагменти зображення безпосередньо в ній, швидко виконувати переміщення бітових блоків і перемикання сторінок екранної пам'яті. Застосовується для виконання операцій 2D-графіки і використовується прямо або побічно компонентом Direct3D.

Direct3D - підсистема рендеринга тривимірної графіки, що надає API-інтерфейс нижнього рівня з базовими функціями рендеринга (Immediate Mode) і високорівнева API-інтерфейс для підтримки складних операцій візуалізації (Retained Mode).

DirectSound реалізує апаратно-незалежний інтерфейс для відтворення звуку і дозволяє додаткам повною мірою використовувати можливості аудіоапаратури комп'ютера. Виконує мікшування і деякі базові операції, такі як управління гучністю і частотними характеристиками.

DirectInput фактично є частиною Windows 95 і забезпечує апаратно-незалежну систему введення, реалізуючи інтерфейс з існуючими пристроями, в основному контролерами ігор, клавіатурою, мишею, джойстиками і іншими засобами управління. Підтримує до 16 джойстиків, 32 кнопок і маніпуляторів з шістьма ступенями свободи.

DirectPlay дозволяє створювати ігрові програми, розраховані на кілька учасників, комп'ютери яких взаємодіють через модем, кабель, локальні або інші мережі (включаючи Internet). У всіх випадках використовується один і той же інтерфейс, який реалізує незалежний протокол комунікацій.

П'ята версія DirectX була доповнена компонентами DirectShow, DirectAnimation і DirectModel (для управління анімацією, відео, графікою та іншими елементами інтерактивного мультимедіа), а в шостий з'явиться компонент DirectMusic.

Яку версію DirectX ви використовуєте

Щоб визначити, яка версія DirectX встановлена ​​на вашому комп'ютері з ОС Windows 95, виконайте наступні кроки:

Натисніть кнопку Start (Пуск), виберіть Find (Пошук) і Files (Файли). В поле Named діалогового вікна вкажіть Draw.dll, а в поле Look In наберіть C: (або той диск, де встановлена ​​система). Потім клацніть кнопку Find Now (Знайти).

В результаті пошуку повинен бути знайдений єдиний файл Ddraw.dll (зазвичай він знаходиться в папці C: WINDOWSSYSTEM). Якщо такий файл не виявлений, то, ймовірно, ПО DirectX у вашій системі не встановлено.

Клацніть на файлі Ddraw.dll правою кнопкою миші і виберіть в меню пункт Properties (Властивості). Перейдіть на вкладку Version (Версія).

А тепер зверніть увагу на номер версії: 4.02.0095 означає версію 1; 4.03.00.1096 - версію 2; 4.04.00.0068 - версію 3 або 3a, а будь-які інші значення вказують на те, що в системі інстальована п'ята версія DirectX.

Інформацію про оновлення DirectX можна знайти на Web-сайті корпорації Microsoft (www.microsoft.com/directx).

DirectDraw: що потрібно для програмування?

В інтерфейсі DirectX реалізовані принципи моделі COM (Component Object Model), що дозволяє оформляти необхідні функції у вигляді компонентів або об'єктів. Значне число API-інтерфейсів DirectX являє собою набір OLE-об'єктів. Всі функції, підтримувані COM-об'єктом, можна використовувати в якості інтерфейсу при взаємодії з цим об'єктом. Такий інтерфейс являє собою просто групу споріднених функцій, використовуваних для доступу до різних методів об'єкта. Застосування COM-об'єктів в DLL-бібліотеки дає ряд переваг перед експортом звичайних API-інтерфейсів. Використовувати зазначені COM-об'єкти в додатку C ++ або Object Pascal чи не сутужніше, ніж будь-який інший API-інтерфейс. Заголовки DirectDraw описує класи C ++ & # 1076; ля різних об'єктів DirectX. Примірники цих класів створюються шляхом виклику відповідних функцій create. Природно, створення Windows-додатків, що використовують DirectX, вимагає навичок роботи з інструментарієм SDK або MFC.

Що ж потрібно для компіляції і компоновки програми, що використовує DirectX? Перш за все - комплект DirectX SDK. Він поставляється разом з довідковим файлом і корисними прикладами програм. Крім того, в системі повинна бути встановлена ​​бібліотека DDRAW.DLL. Для створення або імпорту такої бібліотеки можна скористатися утилітою IMPLIB.EXE. Оскільки DirectX являє собою 32-розрядну технологію, необхідний компілятор, здатний генерувати додатки Win32 (такий, як Borland C ++ 4.52 або C ++ 5.0). Для виконання програми в системі повинні бути інстальовані драйвери DirectX.

Візуалізація в Direct3D

Компонент Direct3D виконує рендеринг 3D-графіки з допомогою модулів трансформації, прорахунку освітленості і растеризації.

Модуль трансформації здійснює геометричні перетворення за допомогою трьох матриць: перетворення уявлення, перетворення світових координат і матриці проекції. Модуль на основі цих матриць будує одну складову, яка і використовується в обчисленнях (в останніх версіях Direct3D для прискорення обчислень застосовується технологія MMX).

Модуль прорахунку освітленості використовує для роботи дані, отримані від модуля трансформації. Він враховує положення джерел світла, рівень розсіяною освітленості і оптичні властивості матеріалів. При цьому допускається реалізація двох моделей: монохромного і RGB. У монохромного моделі для кожного джерела світла враховується тільки монохромна інтенсивність і потім для даної ділянки обчислюється одне значення півтіні. Кольорові компоненти світлового потоку ігноруються. Модель RGB допомагає зробити сцену більш реалістичною за рахунок обліку колірних характеристик джерела світла і матеріалу, що освітлюється.

Модуль растеризации відповідає безпосередньо за відображення отриманих даних. Він переглядає список вершин і генерує їх трансформовані образи для остаточної візуалізації з урахуванням параметрів відсікання і наявності прихованих поверхонь.

Таким чином, механізм рендеринга зводиться до наступного: точки тривимірної моделі перетворюються модулем трансформації в еквівалентні двомірні дані, які передаються модулю, який вираховується інтенсивність падаючого на них світла, а потім направляються модулю растеризации, який визначає прозорість і накладати текстури.