Частина інформації в цій статті застаріла.(квітень 2017) |
Тип | фреймворк застосунок |
---|---|
Розробник | Microsoft |
Стабільний випуск | 12 Ultimate API (10 листопада 2020 ) |
Операційна система | Microsoft Windows |
Мова програмування | HLSL і C++ |
Ліцензія | EULA |
Онлайн-документація | learn.microsoft.com/en-us/windows/win32/directx |
Вебсайт | DirectX |
DirectX — це набір API функцій, розроблених для простого і ефективного вирішення завдань, пов'язаних з ігровим і відеопрограмуванням під ОС Microsoft Windows. Найширше використовується при написанні відеоігор. Пакет засобів розробки DirectX від Microsoft безкоштовно доступний на сайті Microsoft. Незважаючи на те, що зараз DirectX включений в стандартний набір ПЗ Windows, свіжі версії DirectX часто поставляються разом з іграми. Це пов'язано з регулярним оновленням API, і версія, включена в ОС Windows часто є не останньою. Найсвіжішою версією є DirectX 12.
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 в Сан-Франциско (США).
Х файли
Х файлами називають файли з розширенням .x
що можуть містити меші, текстури, анімації та інші об'єкти задані користувачем. Підтримуються також ієрархії об'єктів та інстансинг[en] (багаторазові посилання на об'єкт замість збереження його копій. Вперше з'явилися у DirectX 2.0. З DirectX 3.0 була випущена також двійкова версія формату.[1]
Див. також
Зноски
- ↑ X Files (Legacy) (Direct3D 9) - Win32 apps. learn.microsoft.com (амер.). 6 січня 2021. Процитовано 26 березня 2024.
Посилання
- Знакомимся с DirectX 10 [Архівовано 2 вересня 2008 у Wayback Machine.] (рос.)
- Microsoft's DirectX site [Архівовано 13 листопада 2011 у Wayback Machine.]
- Microsoft's MSDN documentation & resource center for DirectX [Архівовано 13 листопада 2011 у Wayback Machine.](рос.) (для розробників)
- GameDev's FAQ on DirectX
- FAQ on XNA [Архівовано 14 серпня 2006 у Wayback Machine.]
- DirectX 10: история появления и новые возможности [Архівовано 29 жовтня 2007 у Wayback Machine.](рос.)
- Анонсовано DirectX 12 [Архівовано 23 березня 2014 у Wayback Machine.](рос.)
Інформація і ресурси для розробників
- 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 [Архівовано 3 червня 2013 у Wayback Machine.] — уроки, код, утиліти, ігри
- 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 [Архівовано 26 травня 2013 у Wayback Machine.] — Clootie graphics pages
- DirectX 10 WV [Архівовано 15 березня 2013 у Wayback Machine.] — Нова версія DirectX 10 для Windows XP (рос.)
- GameDev.ru [Архівовано 20 квітня 2022 у Wayback Machine.] — російськомовний сайт розробників 3D програм.
Це незавершена стаття про Microsoft Windows. Ви можете допомогти проєкту, виправивши або дописавши її. |