КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Програмне забезпечення для 3D-акселераторівДля ефективного використання 3D-акселераторів, що мають власні системи команд, необхідно використовувати ці команди. З іншого боку, для того, щоби позбавити розробника програмного забезпечення від необхідності працювати з низькорівневими командами 3D- акселератора, використовуються інтерфейси прикладного програмування API (Application Program Interface), які займають проміжне положення між високорівневими прикладними програмами і низькорівневими командами акселератора, які генеруються його драйвером. Існує декілька API, області застосування яких досить чітко розділені: § DirectX, розроблений Microsoft, використовується в ігрових аплікаціях що працюють під керівництвом Windows 95/98. § OpenGL, використовується в основному в професійних аплікаціях (CAD, системи тривимірного моделювання, симулятори та ін.), що працюють під Windows NT (хоча є і ігри, орієнтовані на OpenGL). § Рідні (Native) API, що створюються виробниками 3D-акселераторів виключно для своїх чіпсетів з метою найбільш ефективного використання їх можливостей. DirectX містить декілька вузьконаправлених API: § DirectDraw - забезпечує використання апаратних засобів прискорення звичайної двовимірної графіки; § Direct3D - відповідає за роботу графічної системи в режимі створення тривимірних зображень; § DirectInput - забезпечує апаратно-незалежний ввід інформації в PC через клавіатуру, мишу та джойстик; § DirectPlay - використовується при сумісній грі на декількох комп’ютерах, об’єднаних в мережу або з’єднаних безпосередньо через паралельний або послідовний порти; § DirectSound - керує використанням ресурсів звукової системи PC. DirectX є жорстко регламентованим, закритим стандартом, який не допускає змін до виходу чергової нової версії. Це значно обмежує можливості розробників програм і особливо виробників відеоакселераторів, однак значно полегшує користувачу настройку програмного та апаратного забезпечення для 3D. Архітектура DirectX основана на перевірці функціональних можливостей встановленого апаратного забезпечення. Згідно цього принципу, прикладна програма спочатку запитує Direct3D-сумісний драйвер про апаратно підтримувані даним 3D-акселератором функції, а потім, в залежності від відповіді активізує підтримувані функції. OpenGL побудований на основі концепції відкритого стандарту, що має невеликий базовий набір функцій і множину розширень, які реалізують більш складні функції. Виробник чіпсета повинен створити BIOS і драйвери, які виконують базові функції OpenGL, але не повинен забезпечувати підтримку всіх розширень. Це породжує ряд проблем, пов’язаних з написанням виробниками драйверів для своїх виробів, що поставляються як в повному, так і в усіченому вигляді: § ICD (Installable Client Driver - драйвер аплікації-клієнта) - повна версія OpenGL-сумісного драйвера. Забезпечує максимальну швидкодію, оскільки містить низькорівневі коди, що забезпечують підтримку не тільки базового набору функцій, але і його розширень. § MCD (Mini Client Driver) - усічена версія OpenGL-сумісного драйвера. Містить оптимізований код лише для деяких етапів 3D-конвейєра, тому акселератор під його керуванням працює повільніше. § Мініпорт - спеціалізований OpenGL-сумісний драйвер, розроблений для роботи з деякою однією програмою (грою). § Раппер (Wrapper) - працює шляхом переводу інструкцій OpenGL в інструкції Direct3D. Є найповільнішим драйвером. § Game Engine- драйвер, розроблений для конкретної 3D-плати і орієнтований надосягнення максимальної продуктивності за рахунок безпосереднього використаннянизькорівневих команд акселератора в обхід API.
|