Directx api что это

Обновлено: 29.06.2024

Microsoft DirectX - это набор интерфейсов прикладного программирования (API) для обработки задач, связанных с мультимедиа , особенно с программированием игр и видео, на платформах Microsoft . Первоначально все названия этих API-интерфейсов начинались с «Direct», например Direct3D , DirectDraw , DirectMusic , DirectPlay , DirectSound и т. Д. Название DirectX было придумано как сокращенное обозначение для всех этих API ( X заменяет конкретные имена API) и вскоре стало названием коллекции. Когда Microsoft позже решила разработать игровую консоль, X использовался в качестве основы для названия Xbox, чтобы указать, что консоль основана на технологии DirectX. Первоначальный X был перенесен в именование API-интерфейсов, разработанных для Xbox, таких как XInput и Cross- Platform Audio Creation Tool (XACT), в то время как шаблон DirectX был продолжен для API-интерфейсов Windows, таких как Direct2D и DirectWrite .

Direct3D (API трехмерной графики в DirectX) широко используется при разработке видеоигр для Microsoft Windows и линейки консолей Xbox . Direct3D также используется другими программными приложениями для задач визуализации и графики, таких как проектирование CAD / CAM. Поскольку Direct3D является наиболее широко разрекламированным компонентом DirectX, часто встречаются взаимозаменяемые названия «DirectX» и «Direct3D».

Комплект разработки программного обеспечения DirectX (SDK) состоит из библиотек времени выполнения в распространяемой двоичной форме, а также сопроводительной документации и заголовков для использования при кодировании. Первоначально среды выполнения устанавливались только играми или явно пользователем. Windows 95 не запускалась с DirectX, но DirectX был включен в Windows 95 OEM Service Release 2. Windows 98 и Windows NT 4.0 поставлялись с DirectX, как и все версии Windows, выпущенные с тех пор. SDK доступен для бесплатной загрузки. Хотя среды выполнения являются проприетарным программным обеспечением с закрытым исходным кодом, исходный код предоставляется для большинства образцов SDK. Начиная с выпуска Windows 8 Developer Preview, DirectX SDK был интегрирован в Windows SDK.

СОДЕРЖАНИЕ

История развития

В конце 1994 года Microsoft была готова выпустить Windows 95 , свою следующую операционную систему . Важным фактором, определяющим ценность, которую будут придавать потребители, были программы, которые на нем можно было бы запускать. Сотрудник Microsoft Алекс Сент-Джон обсуждал с различными разработчиками игр, какова вероятность того, что они перенесут свои игры MS-DOS в Windows 95, и нашел ответы в основном отрицательными; программисты сочли, что среда Windows более трудна для разработки по сравнению с MS-DOS или другими игровыми платформами. Также были сильные опасения по поводу совместимости; Примечательным примером этого является «Анимированная книга рассказов Диснея: Король Лев», основанная на программном интерфейсе WinG . Из-за множества несовместимых графических драйверов от новых компьютеров Compaq , которые не тестировались с интерфейсом WinG, поставляемым вместе с игрой, он так часто вылетал на многих настольных компьютерах, что родители переполняли службы поддержки Disney .

Сент-Джон осознал, что сопротивление разработке игр под Windows будет ограничением, и нанял еще двух инженеров, Крейга Эйслера и Эрика Энгстрома , чтобы разработать лучшее решение, которое позволит большему количеству программистов разрабатывать игры для Windows. Проект получил кодовое название «Манхэттенский проект», поскольку в отношении одноименного проекта времен Второй мировой войны идея заключалась в замене разработанных в Японии игровых консолей персональными компьютерами под управлением операционной системы Microsoft. Первоначально он использовал символ радиации в качестве своего логотипа, но Microsoft попросила команду изменить логотип. Руководство не согласилось с проектом, поскольку они уже списали Windows как игровую платформу, но все трое взяли на себя обязательства по развитию этого проекта. Их бунтарский характер привел к тому, что Брэд Сильверберг , старший вице-президент по офисным продуктам Microsoft, назвал трио «Beastie Boys».

Большая часть работы этих троих была проделана среди других назначенных проектов, начиная с конца 1994 года. В течение четырех месяцев и при участии нескольких производителей оборудования команда разработала первый набор интерфейсов прикладного программирования (API), который они представили на конференции. 1995 Конференция разработчиков игр . В SDK входили такие библиотеки, как DirectDraw для графических программ, DirectSound для аудио и DirectPlay для сетевых коммуникаций. «Прямая» часть библиотеки была названа, поскольку эти процедуры обычно обходили основные процедуры Windows 95 и напрямую обращались к аппаратному обеспечению компьютера. Хотя команда назвала его «Game SDK» ( комплект для разработки программного обеспечения ), имя «DirectX» пришло от одного журналиста, который высмеивал схему именования различных библиотек. Команда решила продолжить использовать эту схему именования и назвать проект DirectX.

Первая версия DirectX была выпущена в сентябре 1995 года как Windows Games SDK. Это была замена Win32 для API DCI и WinG для Windows 3.1 . DirectX позволял всем версиям Microsoft Windows, начиная с Windows 95, включать высокопроизводительные мультимедиа. Эйслер написал в своем блоге об безумном стремлении создать DirectX 1–5.

Чтобы получить больше разработчиков на борту DirectX, Microsoft подошел ID Software «s Джон Кармак и предложил порт Гибели и Doom 2 из MS-DOS в DirectX, бесплатно, с идентификатором сохраняя все издательские права на игру. Кармак согласился, и Гейб Ньюэлл из Microsoft возглавил проект по переносу. Первая игра была выпущена как Doom 95 в августе 1996 года, первая опубликованная игра DirectX. Microsoft активно продвигала игру, и Билл Гейтс появлялся в рекламе этой игры.

DirectX 2.0 стал компонентом самой Windows с выпуском Windows 95 OSR2 и Windows NT 4.0 в середине 1996 года. Поскольку сама Windows 95 была еще новой и для нее было выпущено мало игр, Microsoft активно продвигала DirectX среди разработчиков, которые в целом не доверяли способности Microsoft создать игровую платформу на Windows. Алекс Сент-Джон, проповедник DirectX, устроил тщательно продуманное мероприятие на конференции разработчиков компьютерных игр 1996 года, которую разработчик игр Джей Барсон описал как римскую тему, включая настоящих львов , тоги и что-то похожее на карнавал в помещении. Именно на этом мероприятии Microsoft впервые представила Direct3D и DirectPlay и продемонстрировала многопользовательский режим MechWarrior 2, в который можно играть через Интернет.

Перед командой DirectX стояла непростая задача тестирования каждой версии DirectX на множестве компьютерного оборудования и программного обеспечения . В каждой бета-версии и финальной версии тестировалось множество различных видеокарт, звуковых карт, материнских плат, процессоров, устройств ввода, игр и других мультимедийных приложений. Команда DirectX также разработала и распространила тесты, которые позволили индустрии оборудования подтвердить, что новые конструкции оборудования и выпуски драйверов будут совместимы с DirectX.

До DirectX Microsoft включала OpenGL в свою платформу Windows NT . В то время OpenGL требовал "высококлассного" оборудования и был ориентирован на разработку и использование САПР . Direct3D задумывался как контролируемая Microsoft альтернатива OpenGL, изначально ориентированная на использование в играх. По мере роста 3D-игр OpenGL был разработан, чтобы включить лучшую поддержку методов программирования для интерактивных мультимедийных приложений, таких как игры, предоставляя разработчикам выбор между использованием OpenGL или Direct3D в качестве API 3D-графики для своих приложений. С этого момента началась «битва» между сторонниками кроссплатформенного OpenGL и Direct3D только для Windows. Между прочим, OpenGL поддерживался в Microsoft командой DirectX. Если разработчик решил использовать API трехмерной графики OpenGL, другие API-интерфейсы DirectX часто объединяются с OpenGL в компьютерных играх, поскольку OpenGL не включает в себя все функции DirectX (например, поддержку звука или джойстика).

В версии для консоли DirectX использовался в качестве основы для консольных API Microsoft Xbox , Xbox 360 и Xbox One . API был разработан совместно Microsoft и Nvidia , которые разработали специальное графическое оборудование, используемое в оригинальной Xbox. Xbox API был похож на DirectX версии 8.1, но не подлежал обновлению, как и другие консольные технологии. Кодовое название Xbox было DirectXbox, но было сокращено до Xbox из-за его коммерческого названия.

В 2002 году Microsoft выпустила DirectX 9 с поддержкой использования гораздо более длинных шейдерных программ, чем раньше, с пиксельными и вершинными шейдерами версии 2.0. С тех пор Microsoft продолжала обновлять пакет DirectX, представив Shader Model 3.0 в DirectX 9.0c, выпущенном в августе 2004 года.

В апреле 2005 года DirectShow был удален из DirectX и вместо этого перемещен в Microsoft Platform SDK .

Было подтверждено присутствие DirectX в Microsoft Windows Phone 8 .

Трассировка лучей в реальном времени была объявлена ​​как DXR в 2018 году.

Логотипы

Оригинальный логотип напоминал деформированный предупреждающий знак радиации . Как ни странно, первоначальное название проекта DirectX было «Манхэттенский проект», отсылка к инициативе США по созданию ядерного оружия . Алекс Сент-Джон , глава евангелизации Microsoft DirectX в то время, утверждает, что коннотация окончательного результата Манхэттенского проекта ( ядерная бомбардировка Японии ) является преднамеренной, и что DirectX и его родственный проект Xbox (который разделяет подобный логотип), были призваны вытеснить японских производителей видеоигр с их доминирующего положения в индустрии видеоигр . Однако Microsoft публично отрицает эту учетную запись, вместо этого заявляя, что логотип является просто художественным дизайном.


Этот программный интерфейс был разработан для операционных систем начиная с Windows 95, Windows 98 и Windows NT/2000 и др. С помощью этого API увеличивается быстродействие игр, деловой графики, трехмерного звука и т.д. Несмотря на то, что DirectX был предназначен для игр, он также используется в программах NetMeeting, ActiveMovie и NetShow. Поскольку DirectX относится к уровню аппаратных абстракций (Hardware Abstraction Layer - HAL), разработчикам программного обеспечения необходимо использовать функции DirectX, а не обращаться напрямую к видеоадаптеру, звуковой карте, джойстику и другому ап­паратному обеспечению.

DirectX также относится к уровню аппаратной эмуляции (Hardware Emulation Layer - HEL), что позволяет разработчику программно эмулировать те функции, ко­торые не реализованы аппаратным обеспечением. Уровень HEL "медленнее", чем HAL, но луч­ше иметь нереализованную аппаратно функцию (пусть даже медленную), чем не иметь ничего.

Отношения между аппаратным, программным обеспечением и DirectX можно продемон­стрировать следующей схемой:

(Аппаратное обеспечение) -> (Direc+X) -> (Програм­мное обеспечение).

Обновление DirectX можно выполнять независимо от операционной системы. DirectX состоит из "основного" слоя, который обеспечивает доступ к звуковым устройст­вам, устройствам двухмерной и трехмерной графики, уст­ройствам ввода и процедурам установки. Состав программного интерфейса DirectX (версии 6.1) приведен в табл. 1. Программный интерфейс DirectX содержит слой Media, который состоит из API, приведенных в табл. 2.

Слой Media DirectX пре­доставляет сервис для разработ­чиков игр, Web и интерактивных медиа-программ. Самая последняя версия DirectX доступна для бесплатной загрузки с Web-узла фирмы Mi­crosoft. Кроме того, DirectX является частью таких продуктов, как Internet Explorer, Win­dows 2000. Некоторые производители аппаратного обес­печения поставляют вместе со своими продуктами последнюю версию DirectX. Перед инсталляцией некоторые программы проверяют номер версии установленного про­граммного интерфейса. Если установленная версия устарела, то пользователю будет предло­жено установить последнюю версию. Программный интерфейс DirectX обратно совместим, т.е. последняя версия поддерживает функции всех предыдущих. Для корректной работы всех программ необходимо использовать последнюю версию программного интерфейса DirectX.

Таблица 1. Состав программного интерфейса DirectX (версии 6.1)

Название API

Функция

Поддержка двухмерной графики

Поддержка трехмерной графики

Поддержка джойстиков, игровых рулей и других устройств ввода

Основной звук и эффекты

Создание трехмерного звука

Автоматическая установка программного обеспечения и драйверов

Поддержка динамической интерактивной музыки

Таблица 2. Программный интерфейс DirectX (слой Media, который состоит из API)

Название API

Функция

Ранее известен как ActiveMovie; позволяет воспроизводить потоки медиаданных, выполнять захваты аудио- и видеоданных.

Ранее известен как анимация ActiveX; создание анимации, с помощью Dynamic HTML, аплетов Java и сценариев.

Позволяет манипулировать одним или несколькими изображениями для Web и приложений.

Работа DirectX с конкретным аппаратным обеспечением описывается в его документации или на Web-узле этого производителя. Для определения номера версии программного интерфейса DirectX необходимо посмот­реть номер версии файла Ddraw.dll. Для этого щелкните на кнопке Пуск (Start) и выбери­те команду “Найти Файлы” и папки (Find=>File and Folders). В поле “Имя” введите Ddraw.dll и щелкните на кнопке “Найти” (Find). После выполнения поиска щелкните правой кнопкой мыши на найденном файле и из контекстного меню выберите команду “Свойства” (Properties). Активизируйте вкладку “Версия” (Version) и выделите в левом столбце пара­метр “Версия продукта” (Product Version). При установке DirectX (начиная версии 6.1 и выше) в папку \Windows\ System копируется файл Dxdiag.exe , с помощью которого можно узнать номер версии программного интерфейса, а также протестировать его основные функции. Чаще всего проблемы возникают с устаревшими версиями DirectX. He забывайте посещать Web-узел фирмы Microsoft и регулярно загружать и устанавливать новые версии DirectX. Также особое внимание обращайте на предложение заме­нить системные файлы при установке программ. Если установленная версия DirectX будет заме­нена устаревшей, многие программы и игры перестанут запускаться.

Как уже было упомянуто выше, DirectX является совокупностью интерфейсов прикладного программирования - Application Programming Interface, API, он предназначен для удобного программирования приложений под операционные системы Microsoft Windows (главным образом, для программирования игр). Разнообразные библиотеки API из комплекта DirectX, представляют собой готовые наборы функций для облегчения труда программистов, которым теперь не нужно каждый раз создавать ряд типичных процессов для работы со звуком, видео и т.п., в комплекте DirectX для этого имеется ряд стандартных процедур и инструментов упрощающих создание мультимедийных приложений и игр под Windows. Хронология развития основных версий DirectX (с 1999 года) представлена в табл. 3.

Начиная с версии DirectX 8.0 в состав DirectX входили такие API как:

- DirectDraw - 2D растровая графика и Direct3D - D3D, 3D графика;

- DirectPlay - сетевые коммуникации в играх;

- DirectInput - обработка данных клавиатуры, мышки, джойстика и других игровых контроллеров;

- DirectSound - запись и воспроизведение звука;

- DirectSound3D - DS3D, 3D звук и DirectMusic - воспроизведение саундтреков из DirectMusic Producer;

- DirectX Media - сочетание DirectAnimation, DirectShow, DirectX Video Acceleration, Direct3D Retained Mode и DirectX Transform, соответственно, для анимации, воспроизведения мультимедиа и потоковых приложений, 3D и интерактива;

- DirectX Media Objects - поддержка объектов потоковой обработки - кодировщиков, декодеров, эффектов;

- DirectSetup - инсталляция компонентов, не реализованных в API DirectX.

Версия DirectX

Операционная система

Год выпуска

DirectX 6.1

DirectX 7.0

DirectX 7.0a

DirectX 7.1

DirectX 8.0

DirectX 8.0

DirectX 8.0a

Последний вариант под Windows 95

DirectX 8.1

DirectX 9.0

Windows Server 2003

DirectX 9.0a

DirectX 9.0c

Windows XP SP2, Windows Server 2003 SP1, Xbox 360

DirectX 9.0c

Совместимые с DX9.0c версии Windows, впервые включены D3DX DLL

DirectX 9.0c (Shader Model 3.0)

Windows XP. Последнее обновление с поддержкой Windows 98/98 SE/ME/2000 - в августе 2005. Версии декабря 2005 и февраля 2006 - споддержкой формата XML для некоторых классов

DirectX 9.0L

DirectX 10.0

DirectX 11.0

В версии DirectX 8.0/8.0a были впервые применены программируемые пиксельные и вертексные шейдеры (Shader Model 1.0 и 1.1), и DirectX практически стал индустриальным стандартом. В DirectX 9.0 появилась поддержка Shader Model 2.0, DirectPlay, Shader Model 3.0. «Свежую» версию DirectX можно скачать с сайта Microsoft, а комплект разработчика - DirectX SDK, распространяется Microsoft на бесплатной основе. Версия DirectX9, которая неоднократно обновлялась в 2003 – 2005 годах, предоставляет более мощные по сравнению с предшественниками модели шейдерного программирования Direct3D. Версия Direct3D 9 является первичным графическим интерфейсом для Windows Vista, оставаясь API для написания 3D игр и приложений, совместимых с многими поколениями видеокарт и выпусков Windows.

Для сохранения полной совместимости со старыми версиями Windows некоторые особенности старых моделей драйвера эмулируются даже новой моделью драйвера Windows Vista. Поэтому, несмотря на поддержку новых драйверов WDDM для ряда видеокарт, Windows Vista продолжает поддерживать возможность использования старых драйверов XPDM для апгрейдов и корпоративных версий. В системах со старыми драйверами поддерживается Direct3D 9 и более старые версии интерфейсов, при этом принцип их работы будет схож с работой под Windows XP. Для работы драйвера WDDM требуется Direct3D 9Ex, Direct3D 10 или последующие версии. Интерфей Direct3D 9Ex, который является усовершенствованной версией Direct3D 9 API, имеет возможность виртуализации ресурсов и ряда других возможностей для работы под Windows Vista, но этот API работает только под Windows Vista и требует драйверов WDDM. Таким образом, использование Direct3D9 возможно с Windows XP или более ранних версий Windows, а использование Direct3D9 с XPDM драйверами требует поддержки Windows Vista для систем на базе акселераторов без поддержки Direct3D 10. Direct3D9 может работать с видеокартами для DirectX7.

DirectX10, который часто называют Direct3D 10 (D3D10) – по названию 3D API, является новой полностью переработанной версией, в которой изменен процесс взаимодействия приложений и «железа», изменено и распределение нагрузки между центральным и графическим процессорами. Это означает, что графический процессор видеокарты с поддержкой DirectX10 становится мощнее не только в способности более оперативного обсчёта ещё большего количества пикселей за то же время, но и позволяет работать с неведомыми ранее текстурами, объектами и явлениями. А избавленный от необходимости обсчёта графических эффектов, центральный процессор может теперь быстрее решать другие задачи.

DirectX10 предназначен исключительно для Windows Vista и не будет использоваться ни на какой другой платформе, так как в Windows Vista была реализована совершенно новая модель графического (дисплейного) драйвера - Windows Display Driver Model (WDDM), с этим связаны виртаулизационные и архитектурные нововведения WDDM, реализованные в API и основополагающей инфраструктуре DirectX10. Новая модель драйвера также отражает дальнейшую эволюцию видеокарт – от обработки 2D растровых операций и GDI приложений, 3D игр на графических картах с фиксированными функциями, к современным программируемым модулям обработки графики с широкой поддержкой графических приложений, за счет этого DirectX10 обеспечивает:

- более реалистичное изображение облаков и дыма;

- реалистичнее показываются отражения и преломления на отражающих поверхностях (воде, металле, стекле и др.);

- гораздо более реалистичное изображение, например, растений или меха;

- формируются чёткие и более мягкие тени;

- повышена насыщенность изображения ландшафтов с более сложной окружающей обстановкой;

- динамичнее и чаще могут меняться, по ходу событий, сценарии игр;

- более тщательно прорисовываются такие элементы как лес, и масштабные сцены боев и схваток;

- наблюдается больший реализм отображения движущихся объектов;

- улучшены объёмные эффекты;

- резко снижена нагрузка на CPU, за счет перераспределения процесса обсчёта ряда процессов на GPU, снижена вероятность затормаживания и зависания системы при сложном геймплее.

Новая модель драйвера Windows Vista Display Driver Model (WDDM), выводит на первые роли графический процессор и Direct3D, придавая совершенно иной смысл 3D рендерингу картинки экрана за счёт программируемого GPU. Благодаря использованию WDDM всё графическое «железо» теперь управляется только посредством Direct3D, и все остальные графические интерфейсы взаимодействуют с видеокартой только посредством Direct3D драйвера. Использование Direct3D 10 позволит использовать все возможности и мощности нового поколения видеокарт разработанных под Windows Vista

Direct3D 10 устраняет все узкие места прежних Direct3D API и позволяет значительным образом упростить программирование GPU и разгрузить ресурсы CPU. Теперь стала возможной организация и выполнение комплексных многопроходных операции GPU с минимальной загрузкой CPU, теперь расчет анимации выполняется один раз, а отрисовывать по этим данным можно много раз, позволяя, таким образом, реализовать замещающее текстурирование (Displacement Mapping) и предоставляя интересные возможности по альтернативной интерпретации данных. Разгрузка GPU позволяет использовать совершенно новые, более сложные и точные методы имитации кожи человека, ускорение морфинга, генерирование теней и экструзии, мельчайших деталей, физических и других эффектов. Direct3D 10 работает только с новыми поколениями графических акселераторов (GeForce 8800 и более поздними).

Компания Microsoft объявила о создании нового интерфейса программирования приложений DirectX 11. Первый видеоакселератор с его поддержкой выпустила компания AMD/ATI, успешно продемонстрировавшая видеоадаптеры серии Radeon HD 4000. Графическим ядром, которое будет нести в себе поддержку версии DirectX 11, называется RV870 (этот GPU стал следующим старшим продуктом этой компании). Временем поступления таких графических решений на массовый рынок был второй квартал 2009 года.

Пока в природе не существовало DirectX, большинство игровых программ для персональных компьютеров работали под управлением Ms Dos.
Чтобы запустить такие игры, пользователям приходилось бороться, в прямом смысле этого слова, с конфигурационными файлами системы, такими, как AUTOEXEC.BAT, CONFIG.SYS, и с настройками драйверов типа EMM386.EXE и т.д. лишь ради того, чтобы получить несколько дополнительных свободных байт из доступных 640Кб базовой памяти, даже если на компьютере установлено 16Мб оперативной памяти.

Жизнь разработчиков программного обеспечения была не сахар, потому что для преодоления ограничения в 640Кб приходилось использовать различные драйверы для каждой разновидности видеоадаптеров и звуковых карт.

С выходом в свет технологии компании Microsoft DirectX для Windows 95 все указанные выше проблемы становятся историей.

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

Но разработка игр с использованием DirectX остается все еще непростой задачей. Иногда все еще достаточно трудно найти грамотную документацию, и начинающие разработчики тратят много времени на поиск знаний о том, как использовать такие новшества, как DirectDraw, Z-буферы или DirectSound, а также многие другие сложные, но полезные инструменты.

Цель этой статьи — помочь разработчикам, использующим DirectX, несколькими советами, основанными на моем собственном опыте написания программ. Обычные пользователи смогут получить из этого обзора общее представление о том, что такое DirectX.

Что такое DirectX ?

DirectX представляет собой набор из нескольких API (application programming interface — интерфейс программирования приложений), позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения без необходимости написания аппаратнозависимого программного кода. DirectX основан на наборе интерфейсов COM или классов. COM расшифровывается, как Component Object Model (Компонентная Модель Объектов), и представляет собой спецификацию интерфейса, в котором функции вызываются через указатели. Таким образом, объекты COM могут описываться такими языками программирования, как C/C++, Delphi или даже Basic. Все примеры, ссылка на которые была выше, написаны на C++, т.к. я пользуюсь именно этим языком. Интерфейс COM используется не только в DirectX, но и на уровне операционной системы в качестве модели объектов и является сердцем одной из самой широко применяемой технологии — OLE (Objects Linking and Embedding — связывание и встраивание объектов).

  • DirectDraw — обеспечивает доступ к аппаратным средствам, отвечающим за изображение. Предлагается возможность работать с двумерной графикой и напрямую управлять видеопамятью, оверлеями и сменой видеостраниц.
  • DirectSound — как видно из названия, этот компонент обеспечивает аппаратнонезависимый интерфейс воспроизведения звука. DirectSound позволяет приложениям полностью использовать возможности аппаратных компонентов, обеспечивающих работу со звуком, например, микширование без временных задержек.
  • DirectInput — Обеспечивает аппаратнонезависимый ввод данных в систему в режиме реального времени. События, обрабатываемые DirectInput, формируются клавиатурой, мышкой и джойстиком.
  • DirectPlay — представляет собой независимый протокол для осуществления связи между компьютерами. Может применяться для многопользовательских игр, связь в которых осуществляется через Интернет, локальную сеть или прямое последовательное соединение с помощью кабеля. Интерфейс, именуемый DirectPlay Lobby, позволяет создавать онлайновые места встреч в интернете, попадая в которые множество людей могут объединяться и совместно участвовать в играх.
  • Direct3D — это подсистема создания трехмерных графических изображений. Состоит из API низкого уровня, который обеспечивает несколько базовых возможностей создания изображения, и API высокого уровня, который осуществляет комплекс операций, образующих изображение.

DirectX 5.0 SDK (Software Development Kit — Набор разработчика программ), доступен для загрузки с сайта Microsoft.

Справочник по DirectX для начинающих

Если Вы не являетесь разработчиком игровых программ, но Вам нравиться играть на персональном компьютере, Вы точно должны были слышать о DirectX. Почему?

Потому что DirectX широко используется в современном поколении компьютерных игр. Каждая игрушка, имеющая логотип "for Windows 95", прежде, чем запуститься на Вашем компьютере, требует наличия установленного в системе DirectX. Вот почему DirectX это не просто "нечто для программистов", это принципиально необходимое нечто для игроков.

В тоже время если какая-то из таких современных игр установленна на Вашем компьютере, значит, DirectX тоже установлен, и Вы можете узнать об этом, обратив внимание на несколько новых файлов, которые появились в директории WindowsSystem, например DDRAW.DLL или DPLAY.DLL. Это компоненты DirectX, которые используются всеми играми, установленными в Вашей системе и работающими через интерфейс DirectX.

DirectX используется для обработки событий, которые должны совершаться в каждой игре, таких, как вывод изображения на экран или считывание входных данных с клавиатуры, мыши или джойстика.

  • Улучшенные многопользовательские игры
    Причина, почему хороших многопользовательских игр не так много, в том, что они очень сложны в создании. DirectPlay делает создание таких игр менее болезненной проблемой и упрощает их установку. Вот почему мы вправе ожидать увеличения количества новых классных многопользовательских игр.
  • Завораживающие 3D-игры
    Вы знаете, почему трехмерные игры идут на Вашем компьютере так медленно? Причина в том, что изображение 3D-объектов на плоском экране требует огромного количества математических вычислений. Если эти вычисления осуществляются центральным процессором системы, то такие процессы обсчитываются слишком медленно, так как процессор выполняет еще и другие системные операции. Одним из решением этой проблемы является возложение задач по обработке трехмерных процессов на специальные 3D-видеоакселераторы.

Такие карты имеются в продаже, но многие игры не используют аппаратные возможности специализированных плат, потому что создатели игры должны написать соответствующий драйвер, а иногда бывает проблематично переписать заново целые фрагменты кода для того, чтобы использовать преимущества аппаратной обработки 3D. Компонент Direct3D, впервые включенный во вторую версию DirectX, обеспечивает стандарт на использование видеоадаптеров, обеспечивающих аппаратную 3D-акселлерацию, и его применение, несомненно, заставит трехмерные игрушки работать быстрее.

Инициа́ция (лат. initiatio — совершение таинства, посвящение) — обряд, знаменующий переход на новую ступень развития в рамках какой-либо социальной группы или мистического общества.
Википедия

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

Большинство современных игр написано на зыке программирования С++ в связке с DirectX API. DirectX это разработанный компанией Микрософт интерфейс прикладного программирования (API - Application Programming Interface), который содержит в себе все структуры, константы, функции и объекты, необходимые для программирования игр вообще и трехмерной графики в частности. Ранее, до того, как Микрософт додумалась это сделать, каждому программисту приходилось писать все самостоятельно. Представляете, какой это адский труд. Хотя вряд ли представляете. Ну, можете просто поверить мне на слово.
Первая версия DirectX появилась в далеком 1995 году. На данный момент уже доступна одиннадцатая. Но поскольку официально ни 10 ни 11 версии не работают в Windows ХР, являющейся на данный момент самой распространенной операционной системой из семейства Windows, использовать мы будем DirectX 9. Все новые версии имеют полную совместимость с предыдущими, так что не переживайте на счет того, что мы взяли старую.
Еще стоит упомянуть, что для работы технология DirectX 9 должна поддерживаться видеокартой, но на данный момент это уже неактуально, поскольку вам вряд ли сейчас удастся найти видеокарту, которая его не поддерживает.

DirectX состоит из нескольких компонентов, каждый из которых служит для своих целей.

1. DirectX Graphics – набор интерфейсов для работы с трехмерной графикой.
2. DirectInput: - предназначен для обработки данных, поступающих с устройств ввода – мыши клавиатуры, иных манипуляторов.
3. DirectPlay: - интерфейс поддержки сети.
4. DirectSound: - интерфейс для работы со звуком. Ранее в составе DirectX находился еще один звуковой интерфейс – DirectMusic, но с 2008 года он был исключен. По слухам та же участь ждет и DirectSound.
5. DirectShow: - интерфейс, используемый для ввода/вывода видео и аудиоданных.

На этом знакомство закончим и перейдем к более насущным темам.






А для звука можно использовать Adobe Audition или Sound Forge.



Кроме перечисленных можно взять любые другие, просто с этими я работал и в случае чего могу что-то подсказать. В лекциях описывать методы работы с этими программами я не буду, только в крайнем случае. Если вам это нужно, воспользуйтесь дополнительной литературой.
Ну и на последок. На компьютере, на котором предполагается запуск ваших игр, должен быть установлен DirectX runtime. Это пакет библиотек, необходимых для функционирования DirectX. В вашем случае он установится вместе с SDK. Ну а другим пользователям придется скачать его с интернета, это если он у них еще не установлен, поскольку поставляется с большинством современных игр.
Не думаю, что у вас возникнут какие-то проблемы с установкой всего необходимого ПО, но один момент все же объясню. Установка DirectX SDK должна производится после установки Microsof Visual Studio, чтобы в настройках среды прописались необходимые пути к заголовочным файлам и библиотекам. Если этого по каким-то причинам не произошло(например вам не по трафику скачать полное SDK и вы смогли достать только нужные файлы), то эту работу придется проделать вручную.
Делается это так:
Открываем Microsof Visual Studio и кликаем на пункте меню Сервис→Параметры и видим вот такое окно Параметры:


Затем объявляем три переменные:
Первая - это структура, содержащая различные параметры окна(Они описаны в комментариях в исходном коде.)

Читайте также: