Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Любой реферат по информатике

Понятие о DirectX

2021-03-09СтудИзба

13.5 Понятие о DirectX

Когда возникла операционная система Windows, то в ней, прежде всего, решались задачи управления файлами и программами. О высокопроизводительной графике и других мультимедийных возможностях тогда даже не мечтали. Следовательно, операционной системе Windows было очень трудно поддерживать мощные графические приложения, которые возникли позже. Это относится к играм, DVD, PC-TV, или MPEG видео (и в большей степени этим также объясняется долгая жизнь операционной системы DOS). Разработчики понимали, что для достижения независимости Windows от DOS абсолютно необходима стандартная поддержка высокопроизводительных мультимедийных функций. Для решения этих проблем была разработана технология DirectX. В операционной системе Windows 95 она стала ключевой технологией для использования компьютерной графики, звука и прочих мультимедийных возможностей.

13.5.1. Структура DirectX

Вопреки существующему мнению, DirectX не является единой программой. Напротив, DirectX — это всеобъемлющий набор прикладных интерфейсов API (application programming interface) операционных систем Windows, который обеспечивает стандартный набор функций для графики, звука, входных устройств, иерархического взаимодействия, и установки прикладных программ. Программное обеспечение DirectX подразделяется на три уровня: фундаментальный уровень, уровень мультимедиа и уровень компонент.

13.5.2. Фундаментальный уровень

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

· DirectDraw. Осуществляет управление графической поверхностью (например, экраном дисплея).

· Direct3D. Непосредственный (immediate) режим предоставляет низкоуровневые функции трехмерной графики, используемые в сочетании программой с DirectDraw.

· Directlnput. Поддерживает широкий набор устройств ввода (включая новые джойстики с силовой обратной связью).

Рекомендуемые материалы

· DirectSound. Обеспечивает звуковые функции и микширование звука.

· DirectSoundSD. Обеспечивает трехмерных (объемный) звук при использовании соответствующего набора динамиков.

· DirectSetup. Обеспечивает автоматическую установку программного обеспечения и драйверов.

· Уровень мультимедиа. Уровень мультимедиа программного обеспечения DirectX состоит из API функций прикладного уровня, которые используют преимущества служебных системных программ фундаментального уровня DirectX. Программы этого уровня являются аппаратно независимыми и включают в себя такие функции как анимация, поведение, и управление потоками видеоданных. Данный уровень DirectX включает в себя следующие прикладные интерфейсы:

· DirectSD. Отложенный (retained) режим предоставляет набор функций построения трехмерной сцены.

· DirectPlay. Поддерживает игры с несколькими участниками в сети. • ш   DirectShow. Управляет операциями и функциями показа слайдов.

· Direct Animation. Обеспечивает поддержку анимации.

· DirectModel. Поддерживает трехмерное моделирование.

· DirectMusic. Обеспечивает сочинение и воспроизведение музыкальных произведений.

13.5.3. Уровень компонентов

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

· NetMeeting. Средство коллективного взаимодействия в реальном времени через локальную сеть или Интернет.

· ActiveMovie. Набор инструментов для визуализации полноэкранного MPEG видео и поддержки воспроизведения широкого крута видео и звуковых форматов.

· NetShow. Разрешает прямую трансляцию мультимедийного содержания через Интернет, а также поддерживает создание трехмерной виртуальной реальности при помощи технологии VRML (Virtual Reality Modeling Language — язык моделирования виртуальной реальности).

13.5.4. DirectDraw

Большинство Windows программ имеет доступ к графической поверхности (drawing surface) посредством прикладных функций Win32 API, работающих с контекстом устройств, например, GetDC. Получив от функции GetDC указатель, прикладная программа пишет в устройство через систему интерфейса графических устройств (GDI). Интерфейс GDI — это компонента операционной системы Windows, предоставляющая уровень абстракции, который позволяет всем стандартным Windows приложениям рисовать на экране. Недостатком интерфейса GDI является то, что это средство не было разработано для использования в высокопроизводительном графическом программном обеспечении. Оно предназначалось для деловых приложений наподобие текстовых редакторов и электронных таблиц. Интерфейс GDI предоставляет доступ к видеобуферу в системной памяти (а не видеопамяти) и не использует преимущества специальных функций, которые имеютсовременные графические ускорители. В результате этого, традиционный интерфейс GDI является мощным средством для большинства типов делового программного обеспечения, но он слишком слаб для мультимедийного и игрового программного обеспечения.

Интерфейс DirectDraw исправляет этот недостаток путем предоставления графиче­ской поверхности, которая отображается на реальную видеопамять. Это означает, что, используя интерфейс DirectDraw, прикладная программа может писать в память на видеокарте, осуществляя очень быстрое формирование изображения. Графические поверхности предоставляются непрерывными блоками памяти, поэтому внутри их легко выполнять адресацию. Интерфейс DirectDraw также поддерживает функции аппаратного ускорения, такие как копирование блоков изображений (BitBltbit block transfer) и наложение изображений (overlay). Интерфейс DirectDraw работает с широким набором устройств отображения информации. Он спроектирован таким образом, что приложения могут определять возможности аппаратуры используемой видеокарты и затем использовать поддерживаемые функции аппаратного ускорения. А любые функции, не поддерживаемые аппаратурой, могут быть реализованы программным путем.

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

13.5.5. DirectSound

Интерфейс DirectSound является звуковой компонентой программного обеспечения DirectX. DirectSound позволяет смешивать звук на аппаратном и программном уровнях, оцифровывать звук и создает эффекты трехмерного звучания. С функциональной точки зрения DirectSound является микшером звука. Прикладная программа помещает набор звуков в буфера (называемые вторичными буферами). После этого DirectSound комбинирует эти звуки и записывает их в первичный буфер, из которого воспроизводятся те звуки, которые в действительности слышит слушатель. Интерфейс DirectSound автоматически создает первичный буфер, который обычно располагается в памяти самой звуковой карты. Прикладная программа создает вторичные буфера либо в системной памяти, либо непосредственно в памяти звуковой карты. Интерфейс DirectSound поддерживает звуковые данные в формате PCM (pulse-code modulation — кодово-импульсной модуляции), и не поддерживает в настоящее время звуковые форматы со сжатием. DirectSound не содержит функций анализа звукового файла. Прикладная программа должна помещать данные во вторичные звуковые буфера, в корректном формате.

Микшер звука интерфейса DirectSound не только смешивает несколько звуков вместе. Он также может накладывать на звуки эффекты при их записи из вторичного буфера в первичный буфер. Хотя эти эффекты можно услышать с помощью обычных динамиков, они производят большее впечатление при их прослушивании через наушники. К базовым звуковым эффектам относятся управление громкостью/частотой звука и панорамированием (изменением относительной громкости между левым и правым каналами), но DirectSound может также имитировать эффекты трехмерного звучания с помощью следующих методик:

· Rolloff (спад). Чем дальше объект расположен от слушателя, тем тише звук. Этоявление называется спадом.

· Arrival offset (задержка прихода). Это ключевая технология создания объемного звука. Например, звук, вышедший из источника, располагающегося от слушателя справа, достигнет правого уха немного раньше, чем левого уха (длительность этого смещения примерно равна миллисекунде) и наоборот.

· Muffling (глушение). Ориентация ушей слушателя такова, что звуки приходящие сзади слушателя, немного слабее, чем звуки, приходящие от источника, находящегося впереди. Кроме того, если звук приходит справа, то звук, достигающий левого уха, будет ослаблен преградой в виде головы, а также ориентацией левого уха (и наоборот).

· Сдвиг Доплера. DirectSound автоматически создает эффекты сдвига Доплера для любого двигающегося источника звука или слушателя. Эффекты накапливаются: если двигаются и слушатель и источник звука, то система автоматически вычисляет соотношение между их скоростями и соответствующим образом регулирует эффект Доплеровского сдвига.

13.5.6. Directlnput

Интерфейс Directlnput обеспечивает высокоскоростной доступ к устройствам ввода, включая мышь, клавиатуру, джойстики и новые устройства ввода-вывода с силовой обратной связью, которые появляются на рынке. Directlnput предоставляет обобщенный интерфейс, который поддерживает гораздо более широкий спектр устройств ввода/вывода, чем это делают функции библиотеки Win32 APJ. Интерфейс DirectSound работает напрямую с драйверами устройств, минуя систему сообщений операционной системы Windows. Это обеспечивает быстрый и интерактивный доступ к устройствам ввода. Интерфейс Directlnput также поддерживает устройства с силовой обратной связью, которые физически взаимодействуют с пользователем при помощи следующих эффектов: отскок, вибрация и сопротивление. Такие устройства делают игры и развлечения более реалистичными и занимательными. Интерфейс Directlnput может также взаимодействовать с устройствами шины USB.

13.5.7. DirectSD

Direct3D является интерфейсом аппаратуры трехмерной графики. Используя в качестве базы Direct Draw, интерфейс DirectSD реально рисует и визуализирует трехмерные сцены. Интерфейс DirectSD можно использовать как в непосредственном режиме (immediate mode), так и в отложенном режиме (retained mode). Непосредственный режим DirectSD предназначен для низкоуровневых трехмерных функций и является идеальным для разработчиков, которые хотят разрабатывать игры и другие высокопроизводительные мультимедийные приложения для операционной системы Windows. Это аппаратно независимый способ взаимодействия прикладной программы с аппаратурой графического ускорителя на низком уровне. Напротив, отложенный режим DirectSD является высокоуровневым интерфейсом прикладных программ трехмерной графики и подходит для программистов, которым необходима быстрая разработка программы или тем, кто хочет поддерживать трехмерную графику и анимацию. Отложенный режим является надстройкой над непосредственным режимом программы DirectSD. DirectSD состоит из трех блоков: блок преобразования (формулы, описывающие как переводить координаты трехмерного пространства в координаты двухмерного экрана), блока переменных состояния (определяющих стили для операций рисования), и графического движка, который в действительности рисует объект.

13.5.8. DirectPlay

Прикладные программы (особенно игры) становятся более интересными, если имеется возможность играть против реального игрока. А компьютер является универсальным средством общения по локальным сетям или Интернет. Вместо того чтобы заставлять разработчиков создавать собственные многопользовательские интерфейсы, DirectPlay предоставляет удобные средства обобщенной коммуникации. DirectPlay — это программный интерфейс, который облегчает прикладным программам доступ к коммуникационным сетевым функциям.

Сессия DirectPlay — это канал связи между несколькими компьютерами. Прежде чем прикладная программа сможет начать общение с другими компьютерами, она должна подключиться к сессии. Это можно сделать двумя путями: программа может установить соединение с одной из уже имеющихся в сети сессий, или она может создать новую сессию, и ждать когда другие машины присоединятся к ней. После подключения прикладной программы к сессии, она может создать игрока и обмениваться сообщениями со всеми остальными игроками, существующими в этой сессии. В каждой сессии есть одна машина, которая назначается главной. Главная машина является владельцем сессии, и только она может изменить свойства своей сессии.

Наиболее важным логическим объектом внутри сессии DirectPlay является игрок, который может посылать и принимать сообщения. Программа DirectPlay не имеет какого-либо представления о физических компьютерах, подключенных к сессии. Каждый игрок идентифицируется как локальный игрок (игрок, существующий на вашем компьютере) или как удаленный игрок (игрок, существующий на другом компьютере), и каждый компьютер должен иметь хотя бы одного локального игрока, прежде чем она сможет отсылать и получать сообщения. Программа DirectPlay поддерживает концепцию групп внутри сессии. Группа — это локальный набор игроков. Путем создания локальных групп игроков прикладная программа может посылать одно сообщение группе, и все игроки этой группы получат копию посланного сообщения.

13.5.9. DCI

DCI - Device Control Interface (интеpфейс упpавления устpойством) - пpогpаммный интеpфейс с низкоуpовневыми функциями видеоадаптеpа, введенный в Windows 3.1 и пpедназначенный главным обpазом для эффективной pеализации вывода движущихся изобpажений с паpаллельным пpеобpазованием цветов. Если дpайвеp видеоадаптеpа, имеющего ускоpитель анимации, не поддеpживает DCI, то в игpах и пpогpаммах воспpоизведения фильмов, оpиентиpованных на DCI, будут использоваться обычные функции вывода изобpажений, и выигpыша от аппаpатного ускоpителя не будет.

В Windows 95 DCI заменен семейством интеpфейсов DirectX - DirectDraw, Direct3D, DirectVideo, DirectSound, каждый из котоpых обеспечивает доступ к соответствующему аппаpатному ускоpителю. Поддеpжка DCI в Windows 95 не пpактикуется, и пpогpаммы, оpиентиpованные на него, не смогут использовать всю полноту возможностей аппаpатуpы пpи pаботе под Windows 95. Hапpимеp, веpсии 1.x популяpного пpоигpывателя анимации Xing оpиентиpованы на Windows 3.1/DCI, а веpсии 2.x и 3.x - на Windows 95/DirectDraw.

26 - Биофизика органов слуха - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.

Хотя такого количества pазличных цветов и достаточно для кодиpования большинства изобpажений, используемая в настоящее вpемя система кодиpования имеет пpинципиальный недостаток - количество гpадаций каждого из основных цветов не может пpевышать 256. Hапpимеp, если заполнить экpан одним из основных цветов с плавно меняющейся яpкостью, то нетpудно заметить гpаницы между дискpетными уpовнями. Это не позволяет точно пеpедавать изобpажения, содеpжащие большие области плавного изменения цветов. Однако пpи кодиpовании изобpажений, в котоpых подобных областей нет, используемая система дает вполне удовлетвоpительное качество пеpедачи.

13.5.10. Графическая библиотека OpenGL

Появившись в 1992 г. , программный пакет OpenGL стал еще одним популярным межплатформенным (совместимый с несколькими операционными системами) стандартом для аппаратного ускорения трехмерной графики. Спецификация OpenGL определяется независимой группой OpenGL Architecture Review Board. В настоящее время эта группа включает в себя представителей компаний ATI, Compaq, NVIDIA, Microsoft и др. Последний выпуск версии OpenGL 1.2 доступен для операционных систем Windows, MacOS, Linux, и UNIX. Программный пакет OpenGL используется для аппаратного ускорения трехмерной графики во многих популярных играх — Quake III, Baldur's Gate, Descent 3 и MDK.2. OpenGL предоставляет те же функции визуализации трехмерных сцен, которые были опи­саны в разделе DirectX: функции преобразования и освещения, отсечения по границам области и визуализации. OpenGL поддерживает трехмерные эффекты, такие как вуалирование в реальном режиме, наложение неровностей, трехмерные текстуры и другие.

Программный пакет OpenGL используется также для создания трехмерной графики и эффектов в производстве телевизионных программ и кинокартин. Он интегрирован в разработку многих программ виртуальной реальности. Популярность этой системы также связана с поддержкой, которую она оказывает операционной системе Linux. Многие игры стали доступными для выполнения в среде операционной системы Linux благодаря использованию аппаратного ускорения трехмерной графики системы OpenGL. OpenGL также совместим с операционными системами Windows 9x/Me, NT, 2000, ХР.

Для работы программного пакета OpenGL необходима поддержка и операционной системы, и видеокарты. Большинство современных производителей графических ускорителей (NVIDIA, ALI, Matrox, и другие) поддерживают пакет OpenGL. Необходимые для конкретного адаптера драйверы имеются на установочном компакт диске и доступны на сайте производителя адаптера. Файлы системы OpenGL, необходимые для работы конкретных прикладных программ, должны находится на установочном компакт диске вместе с программой установки приложения. Пакет OpenGL можно также загрузить и установить непосредственно из Интернета. Программа установки системы OpenGL (GLSetup) автоматически проведет распознавание имеющейся аппаратуры и установит только те файлы, которые требуются для работы этой аппаратуры. Полная программа установки системы OpenGL, которая поддерживает большинство графических процессоров, имеет объем свыше 85 Мбайт и требует нескольких часов для загрузки через модемное соединение.

Компания Microsoft не включила библиотеки OpenGL в исходную версию операционной системы Windows 95. Эти библиотеки были включены в операционные системы Windows, начиная с Windows 95 OSR2.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5168
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее