Интерфейс приложений DirectX и графическая библиотека OpenGL

Автор работы: Пользователь скрыл имя, 28 Марта 2011 в 22:39, курсовая работа

Описание работы

Умопомрачительные по динамизму и драйву шутеры наполнены не только наилучшими и современнейшими графическими движками, но и огромным количеством адреналина. Такие всемирно известные игровые шедевры как линейка игр «Call of Duty» совсем недавно порадовала своих фанатов очередным эпизодом под названием «Call of Duty 4: Modern Warfare». Эта игра собрала в себе не только ультрасовременнейшую графику, но и уникальную систему поведения персонажа со своими, ранее не применявшимися особенностями и нюансами.

Содержание работы

Введение ------------------------------------------------------------------------- 2

1 История развития компьютерных игр ----------------------------------- 4

2 Классификация компьютерных игр -------------------------------------- 6

2.1 Классификация игр по жанру ----------------------------------- 6

2.2 Классификация игр по количеству игроков ----------------- 9

3 Направления и тенденции развития игровой индустрии ------------ 11

3.1 Направления развития индустрии видеоигр----------------- 11

3.2 Тенденции развития компьютерных игр --------------------- 11

4 Интерфейс приложений DirectX и графическая

библиотека OpenGL -------------------------------------------------------- 15


4.1 Что такое – DirectX? -------------------------------------------- 15

4.2 DirectX 9 --------------------------------------------------------- 16

4.3 DirectX 10 -------------------------------------------------------- 17

4.4 Графическая библиотека OpenGl --------------------------- 18

4.5 DirectX, OpenGL и видеокарта ------------------------------- 19

5 Игровой движок ----------------------------------------------------------- 21

5.1 Что такое игровой движок? ----------------------------------- 21

5.2 OpenSceneGraph ------------------------------------------------- 23

5.3 GLScene ----------------------------------------------------------- 24

5.4 The Nebula Device 2 --------------------------------------------- 25

5.5 Unreal Engine 3 -------------------------------------------------- 26

5.6 Quest3D ---------------------------------------------------------- 28

Заключение ------------------------------------------------------------------ 29

Литература -------------------------------------------------------------------- 30

Файлы: 1 файл

Направления развития индустрии видеоигр.doc

— 191.00 Кб (Скачать файл)

          Этой версии разработчикам доступен HLSL (High-Level Shader Language) – высокоуровневый язык работы с шейдерами. В качестве его альтернативы можно вспомнить соответствующее предложение от NVidia, а именно Cg. Сложно предсказать дальнейшее развитие обоих языковых платформ. Скорее всего, оба языка будут существовать и продолжать развиваться, как и в случае D3D vs OpenGL. Хотя в данном случае за спиной Cg стоит только NVidia. Программно реализована поддержка второй и третьей версии пиксельных и вершинных шейдеров. Со второй версии вершинных шейдеров, поддержка которых представлена в DX 9, появился контроль над исполнением хода шейдера – условия if/else/endif, циклы loop/endloop и подпрограммы. Взаимодействие с контекстом GDI, а также IDirect3DDevice смахивает на попытку поднятия из могилы недавно положенного туда DirectDraw. Формат пикселя с 10 битным каналом на каждую цветовую компоненту и 2 битами на альфа канал может показаться временным выходом из ситуации для жаждущих 64-битного представления цвета, тем не менее, аппаратная поддержка, а также в некоторых случаях совместимость оставляют желать лучшего.

В целом  охарактеризовать DX 9 это акцент на графику как наиболее стремительно развивающуюся область и оптимизация в других компонентах как мне кажется, является правильным направлением на данный момент. 

          4.3 DirectX 10 

          DirectX 10, как мы уже говорили, разработан специально для операционной Windows Vista. Он изначально включен в комплект поставки всех версий операционной системы. Разумеется, для того, чтобы DirectX 10 работал в полную силу своих возможностей, вам понадобится Windows Vista, видеокарта с поддержкой DirectX 10 и новейшие игры, включающие в себя возможности программы.

     Итак, рассмотрим, что же нового ожидает  нас в играх, поддерживающих технологии десятой версии DirectX и разработанных специально для Windows Vista. Основные достижения DirectX 10:

    • Более реалистичная анимация шерсти меха и растений
    • Более мягкие и более чёткие тени
    • Более насыщенные ландшафты с более сложной окружающей обстановкой
    • Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий
    • Более динамичные и чаще меняющиеся по ходу событий сценарии игр
    • Больший реализм и уменьшение смазывания движущихся объектов
    • Объёмные эффекты
    • Уточнённый, более реалистичный дым и облака
    • Более реалистичные отражения и преломления на отражающих поверхностях - воде, автомобилях, стекле и др.
    • Снижение загрузки CPU, перераспределение обсчёта ряда процессов на GPU, снижение вероятности подтормаживания и зависания системы при сложном геймплее

     Таким образом, благодаря такому полезному  явлению, как DirectX 10, рядовым пользователям  ПК доступны новые возможности и  прелести графики игрового мира, в то время, как нагрузка на процессор заметно снижена, возложив обязанности прорисовки и детализации на видеокарту и DirectX. DirectX 10 позволяет имитировать процессы реальной жизни в игровом времени, позволяя заменять статичное окружение динамичным.  

          4.4 Графическая библиотека OpenGl 

          OpenGL является одним из самых популярных прикладных программных интерфейсов (API – Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.   

          Стандарт OpenGL (Open Graphics Library – открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc.   

          Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений.   

         На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux.   

          Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:

    • Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.    
    • Надежность и переносимость. Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.    
    • Легкость применения. Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.

      Наличие хорошего базового пакета для работы с трехмерными приложениями упрощает понимание студентами ключевых тем курса компьютерной графики – моделирование трехмерных объектов, закрашивание, текстурирование, анимацию и т.д. Широкие функциональные возможности OpenGL служат хорошим фундаментом для изложения теоретических и практических аспектов предмета.

   

          4.5 DirectX, OpenGL и видеокарта 

          Полагаю, вы не раз видели при установки DirectX богатый набор файлов (d3d9.dll, ddraw.dll, dinput.dll, dsound.dll, и др.). Они содержат в себе основные компоненты DirectX: Direct3D (3D), DirectDraw (2D), DirectInput (ввод/вывод), DirectSound (звук) и др., встраивающиеся в систему через COM-интерфейс. Библиотека OpenGL представляет собой всего один файл, opengl32.dll, расположенный в системной директории.

          Но как же тогда обновляются или совершенствуются возможности библиотеки, если файл не изменяется? DirectX, напротив, обновляется чуть ли не каждый месяц. Дело в том, что DirectX и OpenGL, в основном, не общаются с видеокартой напрямую, а используют в качестве надежного посредника ее драйвер. Вот, например, схема взаимодействия приложения и монитора компьютера с видеокартой ATI Radeon:    

 

      Рисунок 1 – взаимодействия приложения и  монитора компьютера с видеокартой 

          Отсюда видно, что DirectX и OpenGL являются аппартно-независимыми, т.к. общаются с драйверами, которые у каждой видеокарты свои (и, естественно, являются аппартно-зависимыми).  

        

         5 Игровой движок 

          5.1 Что такое игровой движок? 

          Игровой движок – это центральный программный компонент компьютерных и видео игр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows. Основную функциональность обычно обеспечивает игровой движок, включающий движок рендеринга («визуализатор») для 2D или 3D графики, физический движок или обнаружение столкновений (и реакцию на столкновение), звук, скриптинг, анимацию, искусственный интеллект, networking, streaming, управление памятью, threading и граф сцены. Часто на процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.

          В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки – все критические факторы в сильноконкурирующей индустрии видеоигр.

         Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok – для физики, FMOD – для звука или SpeedTree – для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения.

          Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены – объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.

          Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также обычно используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты.                           

          До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования, для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры. 

    5.2 OpenSceneGraph 

          Разработчики называют OpenSceneGraph кроссплатформеным пакетом для создания графических приложений, в частности, компьютерных игр. Иными словами, движок заточен под игры, но на его основе можно делать еще много чего – например, неигровые программные модули, презентации и другой трехмерный контент.

          OpenSceneGraph (далее OSG) – это open source-проект, то есть любой желающий может изменить исходный код инструментария и выложить творение своих рук в интернете. Благодаря этому движок постоянно развивается, чуть ли не ежемесячно в Сети появляются новые модули для OSG. Технология на полную катушку использует возможности OpenGL, который в последнее время набирает все большую и большую популярность среди игростроевцев.

          OSG очень быстр, а картинка, которую можно создать даже без использования дополнительных модулей (то есть только при помощи базовых функций движка), вполне может потягаться по красоте с Unreal Engine первого поколения.

          Откомпилировать движок можно в Visual Studio 6.0, Cygwin, Mingw и OSX. OSG умело работает с трехмерными моделями форматов .lwo, .obj, .geo, .3ds, .x, .wrl, то есть свободно оперирует с объектами, созданными в любом современном редакторе трехмерной графики (3DS Max, Maya и Lightwave 3D)

          Что касается работы с 2D-изображениями, то и тут у движка все в полном порядке: поддерживается большинство распространенных графических форматов, от стандартных .bmp и .jpg до передовых .dds и .tga. Помимо этого, в OSG встроено несколько библиотек для работы со спецэффектами, системами частиц, шейдерами, ландшафтами и навигационными точками освещения.

          На основе этого движка можно сделать неплохую трехмерную RPG, несложную пошаговую стратегию, залихватскую аркаду или даже космический симулятор.  

         5.3 GLScene 

          Рассмотрим основные возможности движка. Рендеринг осуществляется через библиотеку OpenGL, которая не только в несколько раз превосходит по скорости Direct3D, но и значительно проще в освоении. По сути, вам не нужно профессионально знать программирование, вы просто берете различные компоненты, которые уже спрограммированы за вас, и перетаскиваете их на форму программы. Впрочем, многие команды, функции, переменные и значения атрибутов по-прежнему вбиваются вручную.

Информация о работе Интерфейс приложений DirectX и графическая библиотека OpenGL