- Артикул:00201463
- Автор: Есенин С.
- ISBN: 5-94157-867-9
- Обложка: Мягкая обложка
- Издательство: БХВ-Петербург (все книги издательства)
- Город: СПб
- Страниц: 512
- Год: 2006
Рассмотрена разработка приложений с использованием технологии DirectX в среде программирования Borland Delphi. Подробно описаны все основные компоненты, входящие в состав DirectX: DirectX Graphics, DirectShow, DirectInput, DirectSound и DirectMusic. Показано создание собственных наборов классов, облегчающих работу с различными компонентами DirectX. На практических примерах рассмотрена работа с двумерной и трехмерной графикой, шейдеры и язык HLSL, различные цветовые эффекты, работа с текстурой, освещением и так далее. Уделено внимание выводу изображения в оверлейном режиме, механизмам захвата изображения (на примере работы с web-камерой) и захвата звука. Представлены механизмы воспроизведения мультимедиаданных в различных форматах: AVI, MPEG, MP3 и другие. Прилагаемый компакт-диск содержит исходные коды примеров, рассмотренных в книге, а также набор классов.
Для программистов.
Введение
Данная книга вышла в свет благодаря моральной поддержке и помощи со стороны моей жены Ольги и родителей, к которым я и приехал от суеты городской в деревню, дабы в спокойной обстановке закончить то, что начал. Также благодарю за помощь своего товарища по работе, Хворова Василия. Его советы и замечания оказались очень ценными.
Конечно же, стоит отметить и роль сотрудника издательства "БХВ-Петер-бург" Шишигина Игоря, всеми правдами и неправдами заставившего меня проделать эту работу. За что ему отдельное спасибо!
Работая за компьютером с установленной операционной системой Microsoft Windows, мы, не задумываясь, можем запустить какую-либо трехмерную игру, в которой будем управлять, к примеру, самолетом при помощи джойстика или мыши и клавиатуры. Или решим послушать музыку, или просмотреть какой-то интересный фильм. Можем пообщаться по сети в режиме реального времени, да еще при этом получая изображения собеседника с Web-камеры или иного устройства захвата. И все это и даже больше нам помогает проделать система DirectX.
Свою книгу я решил посвятить описанию приемов разработки графических и мультимедиа приложений с использованием системы DirectX применительно к среде разработке Borland Delphi. Почему именно Delphi, а не Borland C++ Builder или, скажем, Microsoft Visual Studio? Да хотя бы потому, что книг по программированию с использованием DirectX в Delphi не так много. А отдельные компоненты DirectX, такие как DirectShow, вообще мало освещены.
В книге я постарался раскрыть такие аспекты разработки программного обеспечения с использованием DirectX, как работа с двумерной и трехмерной графикой, работа со звуком, устройствами ввода и мультимедиапотоками. Описание работы с графикой (подсистема DirectX Graphics) состоит из двух частей - описание подсистемы Direct3D и подсистемы DirectDraw. Несмотря на то, что подсистема DirectDraw считается несколько устаревшей, она все равно не утратила своей актуальности, и ее интерфейсы будут поддерживаться в DirectX и в дальнейшем. Работа со звуком будет изучена в главах, описывающих работу с DirectSound и DirectMusic; работа с устройствами ввода, такими как клавиатура, мышь и джойстик, будет рассмотрена в главе, посвященной Directlnput. А в последней части книги мы проанализируем работу с мультимедиапотоками: научимся воспроизводить такие муль-тимедиаформаты, как AVI, MPEG, MP3 и т. д. Научимся получать изображение и звук с устройств захвата и сохранять на диске.
На кого рассчитана книга
Книга в первую очередь рассчитана на людей, знакомых со средой разработки Delphi и имеющих представление о технологии СОМ, которые хотят изучить систему DirectX и такие ее возможности, как работа с графикой, устройствами ввода, работа с мультимедиаданными и т. д.
Предполагается, что читателю не нужно объяснять всех тонкостей работы в среде Delphi и всех тонкостей технологии СОМ. Тем не менее, в первой части книги среда разработки и возможности СОМ будут кратко описаны, и даже будет приведен пример разработки СОМ-сервера и клиентской части.
Как построена книга
Книга состоит из данного введения, шести частей, заключения, двух приложений, списка литературы и предметного указателя. В свою очередь шесть частей содержат пятнадцать глав.
Часть I книги является вводной. В ней представлены основные сведения о системе DirectX, расписаны компоненты, входящие в ее состав. Дается сравнение DirectX с OpenGL. Кратко описывается среда разработки Borland Delphi. Рассматриваются возможности библиотеки СОМ. Дается описание интерфейсов и СОМ-объектов, уникальных идентификаторов и результата вызова методов. В заключение приводится пример: пишем СОМ-сервер и клиентскую часть.
Часть II содержит описание графической подсистемы DirectX Graphics. Первая половина предлагает описание работы подсистемы Direct3D. Мы обсудим работу в оконном и полноэкранном режимах. Научимся рисовать различные примитивы, строить различные фигуры из примитивов на плоскости и в пространстве. Подробно изучим работу с матрицами и разберем, какие типы матриц используются в Direct3D, и для чего каждая из них предназначена. На практике научимся строить трехмерные объекты из примитивов на примере куба, изучим свойства освещения и материалов, научимся использовать туман и работать с текстурой. Изучим различные типы фильтрации текстур, такие как линейная фильтрация, анизотропная и многоуровневая фильтрации. Выясним возможности библиотеки утилит D3DX и рассмотрим mesh-объекты. Научимся работать с текстом на плоскости и в пространстве, накладывать на объект несколько текстур, а также изучим мультитекстурирование на примере. Обсудим возможность создания прозрачных объектов различными способами и научимся использовать эффект размытия при движении (Motion Blur). Разберем" что такое шейдеры, и научимся писать их на языке HLSL.
Вторая половина этой части вкратце описывает возможности и приемы работы с подсистемой DirectDraw. Будет проведен обзор библиотеки, ее возможностей, достоинств и недостатков. Мы изучим порядок работы с данной подсистемой, научимся работать е ней в полноэкранном и оконном режимах, рассмотрим различные типы поверхностей DirectDraw. Узнаем, что такое цветовой ключ и зачем он нужен, обсудим работу с палитрой, научимся работать с поверхностью напрямую и разберемся, как работать с оверлейными поверхностями.
Основным отличием этой части от последующих является то, что изучение подсистем Direct3D и. DirectDraw построено по принципу примеров, т. к. это наиболее простой и удобный способ изучения работы с графикой. В дальнейшем, в каждой части книги для описываемой подсистемы будут созданы собственные классы и примеры их использования. Часть III описывает работу с подсистемой DirectSound. Мы рассмотрим область применения данной подсистемы, ее достоинства и недостатки, изучим принцип работы. Разберем, что такое уровни взаимодействия и потеря буферов. Научимся воспроизводить WAV-файлы и накладывать на звук различные эффекты. Будет представлен класс, упрощающий работу с DirectSound, под названием TdxSoundManager, и рассмотрен пример его использования. Затем мы изучим способы захвата звука и записи в WAV-файл. Для этого нами будет рассмотрен класс Tdxsoundcapture вместе с примером.
Часть IV расскажет нам о подсистеме DirectMusic и ее отличиях от DirectSound. С помощью нее мы научимся воспроизводить MIDI- и WAV-файлы. Будут Представлены классы TdxMusicSegment И TdxMusicManager, описывающие звуковой сегмент и менеджер воспроизведения соответственно.
Часть дописывает работу с устройствами ввода. Мы изучим режимы работы и уровни взаимодействия и разберем общий алгоритм работы. Рассмотрим класс TdxinputManager, упрощающий работу с клавиатурой, мышью и джойстиком, и пример его использования.
Часть VI содержит информацию о подсистеме DirectShow. Это архитектура, позволяющая управлять потоками мультимедиаданных. Сначала мы рассмотрим область применения данной архитектуры и поддерживаемые форматы потоков данных. Изучим такие понятия, как фильтр, граф фильтров и менеджер графа фильтров. Рассмотрим способы воспроизведения таких мультимедиаформатов^ как AVI, MPEG, MP3 и др. Разберем работу интерфейсов управления фильтром, контактом, работу интерфейса графа фильтров и интерфейса управления графом фильтров. Рассмотрим интерфейсы управления позиционированием в потоке,'управления выводом звука, управления механизмом событий, управления выводом видер-данных и интерфейс перехвата кадра из потока видео. Для работы с подсистемой DirectShow будет представлен класс TdxMediaPiayer, который фактически инкапсулирует набор свойств и методов, характерных для мультимедиапроигрывателя, а пример использования класса и будет тем самым проигрывателем.
Затем перейдем к изучению архитектуры захвата изображения и звука и разберем работу всех нужных нам интерфейсов. Научимся перечислять устройства определенных классов. Рассмотрим режимы предварительного просмотра и захвата потоков данных. Изучим возможность захвата изображения и звука одновременно, а также научимся сжимать полученные данные. Обсудим возможность настройки устройств с помощью страниц свойств и рассмотрим общую последовательность шагов, необходимых для получения данных с различных устройств захвата. Класс TdxCaptureManager, который будет рассмотрен нами в конце части, обеспечивает возможность захвата и предварительного просмотра видеопотока и потока аудио одновременно. В заключении будет подведен краткий итог книги, а также представлена информация, как можно связаться с автором книги.
Приложения, которые представлены в конце книги, содержат информацию о наиболее интересных интернет-ресурсах, которыми, так или иначе, пользовался в свое время автор книги и пользуется сейчас, и описание прилагаемого к книге компакт-диска.
В книге также присутствует список литературы, который поможет читателю найти дополнительную информацию.
Ну и последнее - это предметный указатель. Он представляет собой наиболее удобный инструмент для поиска в книге по ключевым словам.
Требования к компьютер и программному обеспечению
Для обеспечения корректной работы всех примеров, приведенных в книге, рекомендуется следующая конфигурация компьютера: О процессор Intel Pentium III 1000 МГц и выше;
? видеокарта 32 Мбайт (1024x768) и более производительная, поддерживающая работу с DirectX 8.0 и выше;
? оперативная память 128 Мбайт и выше;
? жесткий диск объемом 10 Гбайт' и более; О CD/DVD-привод;
? операционная система Microsoft Windows 2000/XP/Server 2003;
О DirectX 9.0;
?установленная среда разработки Borland Delphi 7 и старше.
Не следует считать приведенную конфигурацию компьютера окончательной. Примеры будут работать и на компьютере с меньшей производительностью.
Однако требования к DirectX на компьютере не меняются - должна быть установлена версия не ниже версии DirectX 9,0.
На прилагаемом к книге компакт-диске (см. приложение 2) располагаются необходимые для сборки примеров заголовочные файлы DirectX, а также библиотеки, необходимые для работы с графической подсистемой Direct3D.
Все примеры были протестированы, как минимум, на трех компьютерах следующей конфигурации:
О Intel Pentium IV 2,4 ГГц\512 Мбайт DDR\128 NVidia FX 5200\120 Гбайт HDD Maxtor\DVD-RW Nec\Windows XP SP2\DirectX 9.0c;
О Intel Pentium IV 3,0 ГГц\1024 Мбайт DDR\128 ATI Radeon 9250\80 Гбайт HDD Seagate\DVD-Rom Toshiba\Windows XP SP2\DirectX 9.0c;
О ноутбук BLISS 507S: Intel Pentium M 1,73 ГГц\512 Мбайт DDR\128 ATI Radeon X700\60 Гбайт HDD\DVD-RW\Windows XP SP2\DirectX 9.0c.
Для корректной работы примеров вы должны указать в настройках среды Borland Delphi путь к папке с заголовками DirectX, которые находятся в каталоге DirectX прилагаемого к книге компакт-диска. А в папке Lib хранятся библиотеки, необходимые для работы примеров с подсистемой Direct3D. Вам необходимо переписать библиотеки в такой каталог у себя на компьютере, к которому прописан путь в настройках Windows, например, Windows\ System32