Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


API Microsoft DirectX.

API Microsoft DirectX.

Этот программный интерфейс был разработан для операционных систем начиная с 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

Функция

DirectDraw

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

Direct3D

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

Directlnput

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

DirectSound

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

DirectSound3D

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

DirectSetup

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

DirectMusic

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

 

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

Название API 

Функция

DirectS how

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

DirectAnimation

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

DirectX Transform

Позволяет манипулировать одним или несколькими изображениями для 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.

          Таблица 3.

Версия DirectX

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

Год выпуска

DirectX 6.1

Windows 95/98/98SE

1999

DirectX 7.0

Windows 95/98/98SE/2000

1999

DirectX 7.0a

Windows 95/98/98SE/2000

1999

DirectX 7.1

Windows 95/98/98SE/ME/2000

1999

DirectX 8.0

Windows 95/98/98SE/ME/2000

2000

DirectX 8.0

Xbox

2000

DirectX 8.0a

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

2000

DirectX 8.1

Windows 98/98SE/ME/2000/XP

2001

DirectX 9.0

Windows Server 2003

2002

DirectX 9.0a

Windows 98/98SE/ME/2000/XP

2003

DirectX 9.0c

Windows XP SP2, Windows Server 2003 SP1, Xbox 360

2004

DirectX 9.0c

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

2005

DirectX 9.0c (Shader Model 3.0)

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

2005

DirectX 9.0L

Windows Vista

2005

DirectX 10.0

Windows Vista

2006

DirectX 11.0

Windows Vista

2008

 

В версии 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 года.


Лицензия