DirectX — це набір API функцій, розроблених для простого і ефективного вирішення завдань, пов'язаних з ігровим і відеопрограмуванням під ОС Microsoft Windows. Найширше використовується при написанні відеоігор. Пакет засобів розробки DirectX від Microsoft безкоштовно доступний на сайті Microsoft. Незважаючи на те, що зараз DirectX включений в стандартний набір ПЗ Windows, свіжі версії DirectX часто поставляються разом з іграми. Це пов'язано з регулярним оновленням API, і версія, включена в ОС Windows часто є не останньою. Найсвіжішою версією є DirectX 12.

DirectX
Тип фреймворк застосунок
Розробник Microsoft
Стабільний випуск 12 Ultimate API (10 листопада 2020; 3 роки тому (2020-11-10))
Операційна система Microsoft Windows
Мова програмування HLSL
Ліцензія EULA
Онлайн-документація learn.microsoft.com/en-us/windows/win32/directx
Вебсайт DirectX

CMNS: DirectX у Вікісховищі

DirectX API ред.

Практично всі частини DirectX API є набори COM-сумісних об'єктів.

В цілому, DirectX підрозділяється на:

  • DirectX Graphics, набір інтерфейсів, що раніше (до версії 8.0) ділилися на:
    • DirectDraw: інтерфейс виведення растрової графіки.
    • Direct3D (D3D): інтерфейс виведення тривимірних примітивів.
  • DirectInput: інтерфейс для обробки даних, що поступають з клавіатури, миші, джойстика тощо ігрових контролерів.
  • DirectPlay: інтерфейс мережевої комунікації ігор.
  • DirectSound: інтерфейс низькорівневої роботи зі звуком (формату Wave).
  • DirectMusic: інтерфейс відтворення музики у форматах Microsoft.
  • DirectShow: інтерфейс для вводу/виводу аудіо- і/або відео- даних. DirectShow містить DirectX plugin для обробки аудіо сигналу і DirectX Video Acceleration для прискорення відтворення відео.
  • 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 [Архівовано 2 вересня 2008 у Wayback Machine.]). Хоча як приклад роботи, запускається і відмінно працює Crysis з імітацією ефектів DX10, а так само зросла продуктивність в бенчмарках і деяких іграх.

Хронологія версій DirectX ред.

Версія DirectX Номер версії Операційна система Дата релізу
DirectX 1.0 4.02.0095 Windows 95a 30 вересня 1995
DirectX 2.0 / 2.0a 4.03.00.1096 Windows 95 OSR 2 и Windows NT молодші 4.0 5 червня 1996
DirectX 3.0 / 3.0a 4.04.0068 / 69 Windows 95 OSR 2.5 и Windows NT 4.0 SP3
остання підтримувана версія DirectX для Windows NT 4.0
15 вересня 1996
DirectX 4.0< не випущений    
DirectX 5.0 4.05.00.0155 (RC55) Доступний як бета для Windows NT 4.0 16 липня 1997
DirectX 5.0 4.05.01.1721 / 1998 Windows 98 5 травня 1998
DirectX 6.0 4.06.00.0318 (RC3) Windows 98 SE
остання підтримувана версія DirectX Media для Windows NT 4.0 а також він був в Dreamcast
7 серпня 1998
DirectX 6.1 4.06.02.0436 (RC0) Windows 95/98/98SE 3 лютого 1999
DirectX 7.0 4.07.00.0700 (RC1) Windows 2000 и Windows ME 22 вересня 1999
DirectX 7.0a 4.07.00.0716 (RC1) Windows 95/98/98SE/2000 1999
DirectX 8.0 4.08.00.0400 (RC10) Windows 95/98/98SE/ME/2000 30 вересня 2000
DirectX 8.0a 4.08.00.0400 (RC14) остання підтримувана версія DirectX для Windows 95 7 листопада 2000
DirectX 8.1 4.08.01.0810
4.08.01.0881 (RC7)
Windows XP 12 листопада 2001
DirectX 8.1b 4.08.01.0901   2002
DirectX 8.2 4.08.02.0134 (4.09.0000.0134)   2002
DirectX 9.0 4.09.0000.0900 Windows Server 2003 24 грудня 2002
DirectX 9.0a 4.09.0000.0901   26 травня 2003
DirectX 9.0b 4.09.0000.0902 (RC2)   13 серпня 2003
DirectX 9.0c 4.09.0000.0904 (RC0) Windows XP SP2
остання підтримувана версія DirectX для Windows 98SE і Windows Me
9 серпня 2004
DirectX 9.0c 4.09.0000.0904 Xbox 360
Сумісний зі всіма версіями ОС Windows, з якими сумісний 9.0c(RC0)
9 грудня 2005
DirectX 9.0L (включений в поставку Windows Vista) 4.09.0000.0905 (?) Надає додаткові інтерфейси IDirect3D9Ex та IDirect3DDevice9Ex з функціональністю, яка доступна лише через LDDM-драйвери ОС Windows Vista.
DirectX 10 (включений в поставку Windows Vista) 6.0.6000.16386 Перша версія для Windows Vista. Інформація по Direct3D 10
10 листопада 2006
DirectX 10.1 6.00.6001.18000 Service Pack 1 для Windows Vista, Windows Server 2008 4 лютого 2008
DirectX 11 (включений в поставку Windows 7) 6.01.7600.16385 Windows Vista Service Pack 2, Windows 7, Windows Server 2008 R2
Офіційний анонс відбувся на Gamefest 2008. Інформація по Direct3D 11
22 липня 2009
DirectX 11.1 (включений в поставку Windows 8) 6.02.9200.16384 Ручне оновлення для Windows 7 Service Pack 1 [Архівовано 19 березня 2014 у Wayback Machine.], Windows 8, Windows RT і Windows Server 2012 26 жовтня 2012
DirectX 11.2 (включений в поставку Windows 8.1) 6.03.9600.16384 Windows 8.1, Windows RT 8.1 і Windows Server 2012 R2 21 серпня 2013
DirectX 12 (включений в поставку Windows 10) 10.00.10240.16384 Windows 10, Xbox One 29 липня 2015

Сумісність ред.

Багато сучасних пристроїв мають тільки 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, Windows 7 Service Pack 1
  • Windows 8, Windows 8.1
  • Windows 10

Майбутнє DirectX ред.

Останньою поточною версією є DirectX 12, до 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 % від звичайної, некерованої версії.

DirectX 12 був представлений 20 березня 2014 року Game Developers Conference в Сан-Франциско (США).

Див. також ред.

Посилання ред.

Інформація і ресурси для розробників ред.