
Министерство образования Республики Беларусь
БГУИР
Факультет заочного обучения
Кафедра: Электронные вычислительные средства
Контрольная работа № 1
по дисциплине: «Алгоритмические основы компьютерной графики»
Вариант 18
Выполнила студентка гр. 100701 № зачетки 100701-23 Специальности ЭВС Ткач Л.И. |
|
Проверил: Оценка: ________________ ________________________ (подпись) ________________________(дата) |
|
|
|
Почтовый адрес: Брестская обл., 225710 г. Пинск, ул. Революционная, д. 18, кв. 211. т. (8-029) 961 60 87 vel (8-033) 356 16 76 mts e-mail: LidaTk@mail.ru |
|
|
2012
СОДЕРЖАНИЕ
Интерфейс прикладного программирования Direct x 3
Введение 3
DirectX 9 5
DirectX 10 5
DirectX9 и DirectX10 в сравнении 7
Создание оконного приложения 11
Задача 18 16
Список используемой литературы 17
Интерфейс прикладного программирования Direct X Введение
Большинство современных игр написано на зыке программирования С++ в связке с DirectX API. DirectX - это разработанный компанией Микрософт интерфейс прикладного программирования (API - Application Programming Interface), который содержит в себе все структуры, константы, функции и объекты, необходимые для программирования игр вообще и трехмерной графики в частности.
Первая версия DirectX появилась в далеком 1995 году. На данный момент уже доступна одиннадцатая. Официально ни 10 ни 11 версии не работают в Windows ХР, являющейся на данный момент самой распространенной операционной системой из семейства Windows.
DirectX представляет собой набор технологий и инструментов, которые позволяют создавать разработчику игры и мультимедиа приожения с неслыханным во времена MS-DOS качеством графики и звука. Кроме этого, DirectX служит для обработки клавиатуры, мыши, джойстика, а также для сетевого сообщения.
DirectX состоит из нескольких компонентов, каждый из которых служит для своих целей.
DirectX Graphics – набор интерфейсов для работы с трехмерной графикой.
DirectInput - предназначен для обработки данных, поступающих с устройств ввода – мыши клавиатуры, иных манипуляторов.
DirectPlay - интерфейс поддержки сети.
DirectSound - интерфейс для работы со звуком. Ранее в составе DirectX находился еще один звуковой интерфейс – DirectMusic, но с 2008 года он был исключен. По слухам та же участь ждет и DirectSound.
DirectShow - интерфейс, используемый для ввода/вывода видео и аудиоданных.
DirectDraw - служит для ускорения отображения и обработки двумерной графики.
DirectAnimation - для создания анимационных эффектов в WEB-стриницах.
DirectMusic - новый раздел. Служит для применения музыки в играх.
DirectX разрабатывался специально, чтобы превратить платформу Windows как в основную для разработки игр. До этого разработчики использовали только MS-DOS и лишь совсем незначительная часть игр делалась для Windows 3.xx Одной из более ранних попыток Microsoft был выпуск WinG, который позволял разработчикам не писать бесконечные поддержки для различных типов аудио-видеоадаптеров, однако появление DirectX полностью изменило дело в пользу Windows. Теперь, разработчики могли почти не отвлекаться на подержки различных карт, потому что если у карты была поддержка DirectX, то несовместимость больше не была проблемой.
Direct3D был попыткой Microsoft создать универсальный интерфейс для программрования ускорителей трехмерной графики, однако среди преимуществ Direct были и недостатки. DirectX - это интефейс довольно низкого уровня. С помощью своих API он предоставляет программисту прямой доступ к памяти адаптеров, где программист может создавать изображение, хранить графические образы, звуки и т. д. За счет непосредственной работы с памятью достигается ускорение, то есть теоретически частота, с которой программист сможет заставить прорисоваваться экран будет зависеть только от частоты, поддерживаемой монитором. Реально же, человек уже слабо воспринимает различия в частоте обновления, если она более 33 FPS (Frame Per Second - кадров в секунду).
Современные графические адаптеры позволяют доводить FPS двумерной графики до всех разумных пределов, поэтому все задержки с ее отображением от того, что компьютер не успел подготовить новое изображение, а это уже зависит от чатоты процессора и объема оперативной памяти. В трехмерной же графике все сложнее. Здесь скорость отображения зависит как и от мощности компьютера, так и от качества и способности ускорения графической карты. Разработчики видеоускорителей применяют все более и более навороченные технологии ускорения и все для того, чтобы увеличить FPS еще на десяток кадров, а также улучшить качетво картинки (устранить пикселизацию, сгладить цвета...)
Direct3D позволяет программировать для всех распространенных типов видеоускорителей, например с помощью Visual Basic. Visual Basic не был изначально инструемнтом для создания игр. Но с другой стороны, именно поэтому, программирование DirectX становится таким простым.
Естественно, на ряду с развитием технологий аппаратного обеспечения (видеокарт), развивается и программное, в лице DirectX. Выходят новые версии, оснащенные новыми возможностями, все чаще выходят дополнения, включающие незначительные изменения и так далее. Новые продукты выходят, в основном в комплекте с операционной системой Microsoft Windows. Так, в поставку Windows XP входила 9 версия DirectX, а вот в новой Windows Vista – включена 10 версия. К ее выпуску компания Microsoft готовилась очень тщательно, поэтому в нем используется отличная от DirectX 9 модель управления.
DirectX 9
Большая часть функциональности девятой и предыдущих версий DirectX строится на основе COM объектов, доступ к которым мы получаем через интерфейсы. Если коротко – COM-модель представляет собой более жесткое определение объектно-ориентированной модели. С COM-объектами мы работаем только через интерфейсы. Каждая компонента DirectX будь то, к примеру, DirectInput или DirectSound содержит некоторое количество интерфейсов с использованием функций которых мы получаем доступ к возможностям объекта. Интерфейс представляет собой класс, содержащий в себе указатели на функции, с помощью которых и происходит взаимодействие с объектом.
Этой версии разработчикам доступен HLSL (High-Level Shader Language) – высокоуровневый язык работы с шейдерами. В качестве его альтернативы можно вспомнить соответствующее предложение от NVidia, а именно Cg. Сложно предсказать дальнейшее развитие обоих языковых платформ. Скорее всего, оба языка будут существовать и продолжать развиваться, как и в случае D3D vs OpenGL. Хотя в данном случае за спиной Cg стоит только NVidia. Программно реализована поддержка второй и третьей версии пиксельных и вершинных шейдеров. Со второй версии вершинных шейдеров, поддержка которых представлена в DirectX 9, появился контроль над исполнением хода шейдера – условия if/else/endif, циклы loop/endloop и подпрограммы. Взаимодействие с контекстом GDI, а также IDirect3DDevice смахивает на попытку поднятия из могилы недавно положенного туда DirectDraw. Формат пикселя с 10 битным каналом на каждую цветовую компоненту и 2 битами на альфа канал может показаться временным выходом из ситуации для жаждущих 64-битного представления цвета, тем не менее, аппаратная поддержка, а также в некоторых случаях совместимость оставляют желать лучшего.
В целом охарактеризовать DirectX 9 это акцент на графику как наиболее стремительно развивающуюся область и оптимизация в других компонентах как мне кажется, является правильным направлением на данный момент.
DirectX 10
DirectX 10 разработан специально для операционной системы Windows Vista. Он изначально включен в комплект поставки всех версий операционной системы. Разумеется, для того, чтобы DirectX 10 работал в полную силу своих возможностей, понадобится Windows Vista, видеокарта с поддержкой DirectX 10 и новейшие игры, включающие в себя возможности программы. Простым пользователям ПК доступны новые возможности и прелести графики игрового мира, в то время, как нагрузка на процессор заметно снижена, возложив обязанности прорисовки и детализации на видеокарту и DirectX. DirectX 10 позволяет имитировать процессы реальной жизни в игровом времени, позволяя заменять статичное окружение динамичным.
О
собенности
DirectX 10
Рисунок 1 - "Живой"
мех
DirectX10 - явление, актуальное исключительно для платформы Windows Vista и не будет использоваться ни на какой другой платформе. На самом деле, такой "эксклюзив" – не прихоть разработчиков, а следствие того, что для Windows Vista реализована совершенно новая модель графического (дисплейного) драйвера - Windows Display Driver Model (WDDM), не менявшаяся до появления DirectX10 со времён Windows NT4, с этим связаны виртаулизационные и архитектурные нововведения WDDM, реализованные в API и основополагающей инфраструктуре DirectX10. Новая модель драйвера также отражает дальнейшую эволюцию видеокарт – от обработки 2D растровых операций и GDI приложений, 3D игр на графических картах с фиксированными функциями, к современным программируемым модулям обработки графики с широкой поддержкой графических приложений.
Среди ключевых нововведений, реализованных в DirectX10, любители новых игр по достоинству оценят следующие:
Более реалистичная анимация шерсти меха и растений.
Более мягкие и более чёткие тени.
Более насыщенные ландшафты с более сложной окружающей обстановкой.
Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий.
Более динамичные и чаще меняющиеся по ходу событий сценарии игр.
Больший реализм и уменьшение смазывания движущихся объектов.
Объёмные эффекты.
Уточнённый, более реалистичный дым и облака.
Более реалистичные отражения и преломления на отражающих поверхностях – воде, автомобилях, стекле и др.
Снижение загрузки CPU, перераспределение обсчёта ряда процессов на GPU, снижение вероятности подтормаживания и зависания системы при сложном геймплее.