
- •Оглавление
- •DirectX
- •Ключевые особенности версий DirectX
- •Вершинные шейдеры (Vertex Shader)
- •Геометрические шейдеры (Geometry Shader)
- •Пиксельные шейдеры (Pixel Shader)
- •Шейдерные языки
- •Профессиональный рендеринг
- •RenderMan
- •Open Shading Language
- •Рендеринг в реальном времени
- •Шейдерный язык OpenGl
- •Шейдерный язык Cg
- •Шейдерные языки DirectX Низкоуровневый шейдерный язык DirectX (DirectX asm)
- •Описание использующихся функций
- •Исходный код программы
- •Пример работы программы
- •Список литературы
ФГБОУ ВПО
«Ижевский государственный технический университет
имени М.Т. Калашникова»
Кафедра «Вычислительная Техника»
Курсовая работа по дисциплине
операционные системы
“Графика в Windows.DIRECTX. Использование возможностей ОС по выводу графики.”
Разработал: студент гр. 8-78-3,
Коробейников Н.С.
Принял: к.т.н. Вахрушева Е.А.
Ижевск 2014 г.
Оглавление
DirectX 3
Ключевые особенности версий DirectX 5
Шейдеры 6
Вершинные шейдеры (Vertex Shader) 7
Геометрические шейдеры (Geometry Shader) 7
Пиксельные шейдеры (Pixel Shader) 7
Шейдерные языки 7
Профессиональный рендеринг 8
Рендеринг в реальном времени 9
Описание использующихся функций 11
Исходный код программы 16
Пример работы программы 37
Вывод 38
Список литературы 38
DirectX
DirectX (от англ. direct — прямо, напрямую) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.
Практически все части DirectX API представляют собой наборы COM-совместимых объектов.
В целом, DirectX подразделяется на:
DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:
DirectDraw : интерфейс вывода растровой графики. (Его разработка давно прекращена)
Direct3D (D3D): интерфейс вывода трёхмерных примитивов.
DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
DirectPlay: интерфейс сетевой коммуникации игр.
DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)
DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.
DirectShow: интерфейс, используемый для ввода-вывода аудио и/или видео данных.
DirectX Instruments — технология, позволяющая на основе мультимедийного API DirectX создавать и использовать программные синтезаторы. В отличие от DX-плагинов, такие программы могут полностью управляться по MIDI и служат главным образом не для обработки, а для синтеза звука. Технология DXi была популярна в 2001—2004 гг., особенно в программных продуктах Cakewalk, но со временем проиграла «войну форматов» технологии VST от Steinberg.
DirectSetup: часть, ответственная за установку DirectX.
DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, кодировщики/декодировщики)
Direct2D: интерфейс вывода двухмерной графики
Изначально нацеленный на разработку видеоигр, DirectX стал популярен и в других областях разработки программного обеспечения. К примеру, DirectX, наряду с OpenGL, получил очень широкое распространение в инженерном/математическом ПО.
В 1994 году Microsoft была практически готова выпустить следующую версию Windows — Windows 95. Главным фактором, определяющим, насколько популярна будет новая ОС, являлся набор программ, которые можно будет запускать под её управлением. В Microsoft пришли к выводу, что, пока разработчики видят MS-DOS более подходящей для написания игровых приложений, коммерческий успех новой ОС весьма сомнителен.
MS-DOS позволяла разработчику получить прямой доступ к видеокарте, клавиатуре/мыши/джойстику и прочим частям системы, в то время как Windows 95, с её защищённой моделью памяти, предоставляла более стандартизованный, но в то же время весьма ограниченный и накладный доступ к устройствам. Microsoft нуждалась в новом способе дать разработчику всё, что ему необходимо. Айслер (Eisler), Сэйнт Джон (St. John), и Энгстром (Engstrom) решили эту проблему, назвав само решение DirectX.
Первый релиз DirectX был выпущен в сентябре 1995 года, под названием «Windows Game SDK».
Ещё до появления DirectX, Microsoft включила OpenGL в ОС Windows NT. Direct3D позиционировался как замена OpenGL в игровой сфере. Отсюда берёт своё начало «священная война» между сторонниками кросс-платформенной OpenGL и доступной лишь в Windows (в том числе Windows NT) Direct3D. Так или иначе, остальные части DirectX очень часто комбинируются с OpenGL в компьютерных играх, так как OpenGL как таковой не подразумевает функциональность уровня DirectX (например, доступ к клавиатуре/джойстику/мыши, поддержка звука, игры по сети и т. д.).
DirectX является базой для Xbox API. Xbox API схож с DirectX 8.1, но обновление версии, как и на других консолях того времени, невозможно.
В 2002 году Microsoft выпустила DirectX 9 с улучшенной и расширенной поддержкой шейдеров. С 2002 года DirectX неоднократно обновлялся. В августе 2004 года в DirectX была добавлена поддержка шейдеров версии 3.0 (DirectX 9.0c).
В апреле 2005 интерфейс DirectShow был перемещён в Microsoft Platform SDK.