Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К_р_1_Ткач_вар 18.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.5 Mб
Скачать

Министерство образования Республики Беларусь

БГУИР

Факультет заочного обучения

Кафедра: Электронные вычислительные средства

Контрольная работа № 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 состоит из нескольких компонентов, каждый из которых служит для своих целей.

  1. DirectX Graphics – набор интерфейсов для работы с трехмерной графикой.

  2. DirectInput - предназначен для обработки данных, поступающих с устройств ввода – мыши клавиатуры, иных манипуляторов.

  3. DirectPlay - интерфейс поддержки сети.

  4. DirectSound - интерфейс для работы со звуком. Ранее в составе DirectX находился еще один звуковой интерфейс – DirectMusic, но с 2008 года он был исключен. По слухам та же участь ждет и DirectSound.

  5. DirectShow - интерфейс, используемый для ввода/вывода видео и аудиоданных.

  6. DirectDraw - служит для ускорения отображения и обработки двумерной графики.

  7. DirectAnimation - для создания анимационных эффектов в WEB-стриницах.

  8. 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, или как его ещё частенько называют Direct3D 10 (D3D10) – по названию 3D API, нельзя оценивать как всего лишь следующую версию DirectX. В отличие от версии DirectX 9, которая являет собой эволюционное развитие, DX10 была полностью переработана, изменив процесс взаимодействия приложений и "железа", распределение нагрузки между центральным и графическим процессорами. На практике это означает, что графический процессор видеокарты с поддержкой DX10 становится мощнее не только в смысле способности более оперативного обсчёта ещё большего количества пикселей за то же время, но также позволяет работать с неведомыми ранее текстурами, объектами и явлениями. В то же время "избавленный" от необходимости обсчёта графических эффектов, центральный процессор может теперь посвятить свою мощь более быстрому обсчёту других задач.

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

Среди ключевых нововведений, реализованных в DirectX10, любители новых игр по достоинству оценят следующие:

  • Более реалистичная анимация шерсти меха и растений.

  • Более мягкие и более чёткие тени.

  • Более насыщенные ландшафты с более сложной окружающей обстановкой.

  • Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий.

  • Более динамичные и чаще меняющиеся по ходу событий сценарии игр.

  • Больший реализм и уменьшение смазывания движущихся объектов.

  • Объёмные эффекты.

  • Уточнённый, более реалистичный дым и облака.

  • Более реалистичные отражения и преломления на отражающих поверхностях – воде, автомобилях, стекле и др.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]