DirectX
Матеріал з Вікіпедії — вільної енциклопедії.
| DirectX | |
|---|---|
![]() Сучасний DirectX |
|
| Тип: | фреймворк застосунків |
| Розробник: | Microsoft |
| Стабільний випуск: | 6.00.6001.18000 / 4 лютого 2008 |
| ОС: | Microsoft Windows |
| Ліцензія: | EULA |
| Сайт: | DirectX Homepage |
DirectX — це набір API функцій, розроблених для простого і ефективного вирішення завдань, пов'язаних з ігровим і відеопрограмуванням під Microsoft Windows. Найширше використовується при написанні комп'ютерних ігор. Пакет засобів розробки DirectX під Microsoft Windows безплатно доступний на сайті Microsoft. Раніше DirectX вкладався розробниками в дистрибутиви ігор, але зараз він включений в стандартний набір ПЗ Windows. На даний момент найсвіжішою версією є DirectX 10.1. Часто, свіжі версії DirectX поставляються разом з іграми, оскільки DirectX API оновлюється досить часто, і версія, включена в ОС Windows часто є не найновішою.
Зміст |
[ред.] DirectX API
Практично всі частини DirectX API є набори COM-сумісних об'єктів.
В цілому, DirectX підрозділяється на:
- DirectX Graphics, набір інтерфейсів, що раніше (до версії 8.0) ділилися на:
- DirectDraw: інтерфейс виведення растрової графіки.
- Direct3D (D3D): інтерфейс виведення тривимірних примітивів.
- DirectInput: інтерфейс для обробки даних, що поступають з клавіатури, миші, джойстика тощо ігрових контроллерів.
- DirectPlay: інтерфейс мережевої комунікації ігор.
- DirectSound: інтерфейс низькорівневої роботи із звуком (формату Wave)
- DirectMusic: інтерфейс відтворення музики у форматах Microsoft.
- DirectShow: інтерфейс для вводу/виводу аудіо- і/або відео- даних.
- DirectSetup: частина, відповідальна за установку DirectX.
- DirectX Media Objects: реалізує функціональну підтримку потокових об'єктів (наприклад, енкодери/декодери)
[ред.] Історія
Відпочатку націлений на розробку відеоігор, DirectX став популярний і в інших областях розробки програмного забезпечення. Наприклад, DirectX, разом з OpenGL, набув дуже широкого поширення в інженерному/математичному ПЗ.
У 1994 році Microsoft був практично готовий випустити наступну версію Windows — Windows 95. Головним чинником, що визначає наскільки популярною буде нова ОС, був набір програм, які можна буде запускати під її управлінням. У Microsoft пришли до висновку, що, поки розробники бачать DOS більш відповідною для написання ігрових застосунків, комерційний успіх нової ОС вельми сумнівний.
DOS дозволяла розробникові дістати прямий доступ до відеокарти, клавіатури/миші/джойстика і інших частин системи, тоді як Windows 95, з її захищеною моделлю пам'яті, надавала більш стандартизованний, але в той же час вельми обмежений доступ до пристроїв. Microsoft потребував нового способу дати розробникові все, що йому необхідне. Eisler, St. John, and Engstrom вирішили цю проблему, назвавши саме рішення DirectX.
Перший реліз DirectX був випущений у вересні 1995 року, під назвою «Windows Game SDK».
Ще до появи DirectX, Microsoft включила OpenGL в ОС Windows NT. Direct3D позиціонувався як заміна OpenGL в ігровій сфері. Звідси бере свій початок «священна війна» між прихильниками крос-платформової OpenGL і доступною лише в Windows Direct3D. Решта частин DirectX часто комбінується з графікою OpenGL в комп'ютерних іграх, оскільки OpenGL є лише графічним API і не має аналогів до інших можливостей DirectX (наприклад, доступ до клавіатури/джойстика/миші, підтримка звуку, ігри у мережі тощо).
DirectX є базою для Xbox API. Xbox API схожий з DirectX 8.1, але оновлення версії, як і на інших консолях, неможливе.
У 2002 році, Microsoft випустив DirectX 9 з покращеною і розширеною підтримкою шейдерів. З 2002 року DirectX неодноразово оновлювався. У серпні 2004 року в DirectX була додана підтримка шейдерів версії 3.0 (DirectX 9.0c).
У квітні 2005 інтерфейс DirectShow був переміщений в Microsoft Platform SDK.
З січня 2008 в інтернеті відкрився проект присвячений розробці DirectX10 для Windows XP і по теперішній час на нім ведеться редагування і оптимізація DLL файлів DX10 для їх сумісності з Windows XP. Проте помітного результату це не дало (докладне пояснення див. Знайомимся з DirectX 10). Хоча як приклад роботи, запускається і відмінно працює Crysis з імітацією ефектів DX10, а так само виросла продуктивність в бенчмарках і деяких іграх.
[ред.] Сумісність
Багато сучасних пристроїв мають тільки DirectX-сумісні драйвера, іншими словами, користувач повинен встановити DirectX для використання всіх можливостей пристрою. На даний момент система оновлення драйверів Windows Update дозволяє завантажувати тільки необхідні бібліотеки, а не весь драйвер цілком.
DirectX сумісний назад з попередніми версіями. Якщо застосунок або гра використовує DirectX 6.0, вони працюватимуть і при встановленому DirectX 9.0. Кожна подальша версія DirectX включає всі попередні.
Підтримувані операційні системи:
- Windows 98, Windows 98 Second Edition;
- Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition, Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4;
- Windows Server 2003, Windows Server 2003 Service Pack 1, Windows Server 2003 Datacenter x64 Edition, Windows Server 2003 Enterprise x64 Edition, Windows Server 2003 Standard x64 Edition, Windows Small Business Server 2003;
- Windows XP, Windows XP 64-bit, Windows XP Home Edition, Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1, Windows XP Service Pack 2, Windows XP Starter Edition, Windows XP Tablet PC Edition;
- Windows Vista.
- Windows 7
[ред.] Майбутнє DirectX
Останньою поточною версією є DirectX 10.1, до Service Pack 1 на Windows Vista стояв DirectX 10, що спочатку називався «Windows Graphics Foundation», але пізніше він був перейменований. DirectX 10 є частиною ОС Windows Vista і використовує відмінну від DirectX 9.0 модель управління. DirectX 10 надає набір вимог до апаратної частини, мінімальний стандарт функціональності, необхідної для того, щоб апаратний пристрій був DirectX-сумісним. Microsoft не так давно випустив Service Pack 1 для Windows Vista, в який включений DirectX 10.1, зміни в DirectX 10.1 на відміну від DirectX 10 стосуються графічної складової — Direct3D.
Компанія Microsoft планує, що DirectX 11 буде готовий до моменту виходу Service Pack 2 для Windows Vista в кінці 2008 року. У цю версію не буде включений метод трасування променів. Сумісність з картами DirectX 10 і 10.1, а також підтримка карт на базі DirectX 11 (на даний момент не існує)
- Повна підтримка (включаючи всі функції DX11-карт) в Windows Vista, а також майбутніх версіях Windows
- Нова технологія прорахунку шейдерів версії 5.0, що дозволяє використовувати GPU як паралельний процесор
- Багатонитевої обробки ресурсів, що дозволяє максимально задіяти багатоядерні системи
- Підтримка тесселляції, яка розмиває лінію між високоякісним передвізуалізованими сценами, що візуалізуються в реальному часі, це дозволяє розробникам ігор створювати більш згладжені моделі, які поблизу виглядають привабливіше для очей
Також в DirectX 11 буде включена можливість використання шейдерів відеокарти для арифметичних розрахунків, тобто буде включена технологія, подібна nVidia CUDA
XNA — інший інструмент розробки від Microsoft, що спрощує розробку ігрових і мультимедіа-застосунків, надає зручний шлях інтеграції з DirectX, HLSL і іншими інструментами, зібраними в єдину систему.
Починаючи з 2002 року, Microsoft випускає версії DirectX, сумісні з Microsoft .NET. Це дозволяє використовувати всі переваги керованих мов (C# або Visual Basic.Net) при розробці застосунків, які використовують DirectX. Цей API відомий як «Managed DirectX». Заявлена продуктивність — 98 % від звичайної, некерованої версії.
[ред.] Дивись також
- GDI
- OpenGL
- Simple DirectMedia Layer
- X (DirectX) — формат файла для зберігання 3D об'єктів, розроблений Microsoft для DirectX
[ред.] Посилання
- Знакомимся с DirectX 10 (рос.)
- Microsoft’s DirectX site
- Microsoft’s MSDN documentation & resource center for DirectX (для разработчиков)
- GameDev’s FAQ on DirectX
- FAQ on XNA
- DirectX 11 не будет в следующей версии Windows 7 (рос.)
- DirectX 10: история появления и новые возможности(рос.)
[ред.] Інформація і ресурси для розробників
- Gamedev.net’s DirectX Articles section
- DirectX World — C++ DirectX 9 lessons for game programming. Learn how to build a graphic engine.
- Direct3D.net — Сайт Wolfgang Engel’а (Direct3D)
- Drunken Hyena — уроки, код, утиліти, ігри
- Andy Pike’s DirectX8 Tutorials — охоплює 2D, 3D, звук, музику, ввод
- CodeSampler.com — Приклади та уроки використання Direct3D в програмуванні ігор на C++ і C#
- Managed Direct3D — Direct3D, уроки на С#, Craig Andera.
- NeXe — Архів уроків NeXe (Direct3D 8), archive.org
- Managed Direct3D — Direct3D, уроки на С#, Pieter Germishuys
- Clootie graphics pages — Clootie graphics pages
- DirectX 10 TR — Нова версія DirectX 10 для Windows XP (рос.)
- GameDev.ru — російськомовний сайт розробників 3D програм.


