Автор работы: Пользователь скрыл имя, 07 Ноября 2012 в 01:57, реферат
Сейчас трёхмерные изображения можно увидеть везде, начиная от компьютерных игр и заканчивая системами моделирования в реальном времени. Раньше, когда трёхмерная графика существовала только на суперкомпьютерах, не существовало единого стандарта в области графики. Все программы писались с «нуля» или с использованием накопленного опыта, но в каждой программе реализовывались свои методы для отображения графической информации. С приходом мощных процессоров и графических ускорителей трёхмерная графика стала реальностью для персональных компьютеров. Но в тоже время производители программного обеспечения столкнулись с серьёзной проблемой – это отсутствие каких-либо стандартов, которые позволяли писать программы, независимые от оборудования и операционной системы.
Введение
1. OpenGL. Общая характеристика
1.1 Основные возможности OpenGL
1.2 Дополнительные библиотеки OpenGL
1.3 Эволюция OpenGL
2. DirectX. Общая характеристика
2.1 Основные компоненты DirectX
2.2 Возможности DirectX
2.3 Эволюция DirectX
3. Сравнительный анализ OpenGL и DirectX
Заключение
Список использованной литературы
Министерство образования
Белорусский государственный университет информатики и радиоэлектроники
РЕФЕРАТ
на тему «Сравнение возможностей графических систем OpenGL и DirectX»
Минск 2012
Содержание
Введение
1. OpenGL. Общая характеристика
1.1 Основные возможности OpenGL
1.2 Дополнительные библиотеки OpenGL
1.3 Эволюция OpenGL
2. DirectX. Общая характеристика
2.1 Основные компоненты DirectX
2.2 Возможности DirectX
2.3 Эволюция DirectX
3. Сравнительный анализ OpenGL и DirectX
Заключение
Список использованной литературы
Введение
Сейчас
трёхмерные изображения можно увидеть
везде, начиная от компьютерных игр
и заканчивая системами моделирования
в реальном времени. Раньше, когда
трёхмерная графика существовала только
на суперкомпьютерах, не существовало
единого стандарта в области
графики. Все программы писались
с «нуля» или с использованием
накопленного опыта, но в каждой программе
реализовывались свои методы для
отображения графической
Одними из первых таких стандартов, существующих и по сей день, являются OpenGL и DirectX, сравнительный анализ которых является целью выполнения данного реферата.
графический компьютерный разработчик мультимедийный
1. OpenGL. Общая характеристика
OpenGL – это графический стандарт в области компьютерной графики. На данный момент он является одним из самых популярных графических стандартов во всём мире. Ещё в 1982 г. в Стенфордском университете была разработана концепция графической машины, на основе которой фирма Silicon Graphics в своей рабочей станции Silicon IRIS реализовала конвейер рендеринга. Таким образом была разработана графическая библиотека IRIS GL. На основе библиотеки IRIS GL, в 1992 году был разработан и утверждён графический стандарт OpenGL. Разработчики OpenGL - это крупнейшие фирмы разработчики как оборудования так и программного обеспечения: Silicon Graphics, Inc., Microsoft, IBM Corporation, Sun Microsystems, Inc., Digital Equipment Corporation (DEC), Evans & Sutherland, Hewlett-Packard Corporation, Intel Corporation и Intergraph Corporation.
OpenGL переводится как Открытая Графическая Библиотека (Open Graphics Library), это означает, что OpenGL – это открытый и мобильный стандарт. Программы, написанные с помощью OpenGL можно переносить практически на любые платформы, получая при этом одинаковый результат, будь это графическая станция или суперкомпьютер. OpenGL освобождает программиста от написания программ для конкретного оборудования. Если устройство поддерживает какую-то функцию, то эта функция выполняется аппаратно, если нет, то библиотека выполняет её программно.
С точки зрения программиста OpenGL – это программный интерфейс для графических устройств, таких как графические ускорители. Он включает в себя около 150 различных команд, с помощью которых программист может определять различные объекты и производить рендеринг. Говоря более простым языком, вы определяете объекты, задаёте их местоположение в трёхмерном пространстве, определяете другие параметры (поворот, масштаб, и др.), задаёте свойства объектов (цвет, текстура, материал, и др.), положение наблюдателя, а библиотека OpenGL позаботится о том, чтобы отобразить всё это на экране. Поэтому можно сказать, что библиотека OpenGL является только воспроизводящей (Rendering), и занимается только отображением 3D объектов, она не работает с устройствами ввода (клавиатуры, мыши). Также она не поддерживает менеджер окон.
OpenGL имеет хорошо продуманную внутреннюю структуру и довольно простой процедурный интерфейс. Несмотря на это с помощью OpenGL можно создавать сложные и мощные программные комплексы, затрачивая при этом минимальное время по сравнению с другими графическими библиотеками.
В некоторых библиотеках OpenGL (например под X Windows) имеется возможность изображать результат не только на локальной машине, но также и по сети. Приложение, которое вырабатывает команды OpenGL называется клиентом, а приложение, которое получает эти команды и отображает результат – сервером. Таким образом можно строить очень мощные воспроизводящие комплексы на основе нескольких рабочих станций или серверов, соединённых сетью.
1.1 Основные возможности OpenGL
Ниже рассмотрим основные возможности, которые предоставляет библиотека OpenGL в распоряжение программиста:
Геометрические и растровые примитивы. На основе геометрических и растровых примитивов строятся все объекты. Из геометрических примитивов библиотека предоставляет: точки, линии, полигоны. Из растровых: битовый массив (bitmap) и образ (image)
Использование В-сплайнов. B-сплайны используются для рисования кривых по опорным точкам.
Видовые и модельные преобразования. С помощью этих преобразований можно располагать объекты в пространстве, вращать их, изменять форму, а также изменять положение камеры из которой ведётся наблюдение.
Работа с цветом. OpenGL предоставляет программисту возможность работы с цветом в режиме RGBA (красный-зелёный-синий-альфа) или используя индексный режим, где цвет выбирается из палитры.
Двойная буферизация. OpenGL предоставляет как одинарную, так и двойную буферизацию. Двойная буферизация используется для того, чтобы устранить мерцание при мультипликации, т.е. изображение каждого кадра сначала рисуется во втором (невидимом) буфере, а потом, когда кадр полностью нарисован, весь буфер отображается на экране.
Наложение текстуры. Позволяет придавать объектам реалистичность. На объект, например шар, накладывается текстура (изображение), в результате чего наш объект теперь выглядит не просто как шар, а как разноцветный мячик.
Сглаживание. Сглаживание позволяет скрыть ступенчатость, свойственную растровым дисплеям. Сглаживание изменяет интенсивность и цвет пикселей около линии, при этом линия смотрится на экране без всяких зигзагов.
Освещение. Позволяет задавать источники света, их расположение, интенсивность, и т.д.
Атмосферные эффекты. Например, туман, дым. Всё это также позволяет придать объектам или сцене реалистичность, а также «почувствовать» глубину сцены.
Прозрачность объектов.
Использование списков изображений.
1.2 Дополнительные библиотеки OpenGL
Несмотря на то, что библиотека OpenGL предоставляет практически все возможности для моделирования и воспроизведения трёхмерных сцен, некоторые из функций, которые требуются при работе с графикой, отсутствуют в стандартной библиотеке OpenGL.. Например, чтобы задать положение и направление камеры, с которой будет наблюдаться сцена, нужно самому рассчитывать модельную матрицу, а это далеко не все умеют. Поэтому для OpenGL существуют так называемые вспомогательные библиотеки.
Первая из этих библиотек называется GLU. Эта библиотека стала стандартом и поставляется вместе с главной библиотекой OpenGL. В состав этой библиотеки вошли более сложные функции, например для того чтобы определить цилиндр или диск потребуется всего одна команда. Также в библиотеку вошли функции для работы со сплайнами, реализованы дополнительные операции над матрицами и дополнительные виды проекций.
Следующая библиотека, также широко используемая – это GLUT. Это также независимая от платформы библиотека. Она реализует не только дополнительные функции OpenGL, но и предоставляет функции для работы с окнами, клавиатурой и мышкой. Для того чтобы работать с OpenGL в конкретной операционной системе (например Windows или X Windows), надо провести некоторую предварительную настройку и эта предварительная настройка зависит от конкретной операционной системы. С библиотекой GLUT всё намного упрощается, буквально несколькими командами можно определить окно, в котором будет работать OpenGL, определить прерывание от клавиатуры или мышки и всё это не будет зависеть от операционной системы. Библиотека предоставляет также некоторые функции, с помощью которых можно определять некоторые сложные фигуры, такие как конусы, тетраэдры, и многие другие предметы сложной формы
Есть ещё одна библиотека похожая на GLUT, называется она GLAUX. Это библиотека разработана фирмой Microsoft для операционной системы Windows. Она во многом схожа с библиотекой GLUT, но немного отстаёт от неё по своим возможностям. И ещё один недостаток заключается в том, что библиотека GLAUX предназначена только для Windows, в то время как GLUT поддерживает много операционных систем.
Существуют и другие дополнительные библиотеки для OpenGL. Все они добавляют что-то своё или ориентированы на какую-то платформу. Например, существует такая библиотека как GLX – это расширение для X Windows, позволяющее использовать в X Windows OpenGL. GLX предоставляет не только локальный рендеринг, но и рендеринг по сети.
1.3 Эволюция OpenGL
Библиотека не может быть разработана раз и навсегда - она должна развиваться, отражая последние тенденции в области компьютерной графики, особенно эволюцию специализированных устройств (видеокарт) с аппаратной поддержкой графических функций.
Развитие стандарта OpenGL осуществляется специальной структурой, известной как Architectural Review Board (ARB) – Комитет по пересмотру архитектуры. Комитет состоит из представителей основных компаний, заинтересованных в развитии и использовании библиотеки. В их числе 3D Labs, SGI, Apple, NVIDIA, ATI, Intel, id Software и, конечно, Microsoft.
C начала 90-х годов прошлого века OpenGL используется в различных областях индустрии и науки. Архитектура библиотеки получилась настолько удачной, что уже на протяжении более десяти лет она остается стабильной и предсказуемой. OpenGL де-факто является стандартом в области программирования графики. Но в этом скрыт и ее недостаток. ARB работает довольно медленно – любое изменение стандарта требует множества согласований, документов и так далее. В силу этого OpenGL развивается небольшими темпами. Правда, до последнего времени с этим не было проблем, поскольку изначально библиотека предназначалась для быстрых рабочих станций профессионального уровня, которые обновляют не часто. Однако сейчас даже недорогие видеокарты стоимостью $100 превзошли уровень профессиональных монстров пятилетней давности стоимостью в тысячи долларов. И при этом обновление их возможностей происходит в среднем раз в год. Фактически OpenGL не поспевает за индустрией, поэтому игровые разработчики вынуждены использовать так называемый механизм расширений (extensions), чтобы получить доступ к новейшим функциям видеокарт.
Рисунок 1 – Эволюция OpenGL
На данный момент OpenGL прошла путь от версии 1.0 до версии 1.4 (и это за десять лет). Версия 2.0, обещающая революционные изменения, находится в процессе стандартизации. Развитие графической аппаратуры вышло за пределы исходной спецификации. Вторая версия OpenGL призвана поднять планку и вновь создать стандарт для компьютерной графики на десятилетия. Помимо прочего OpenGL 2.0 включает в себя возможность программирования всего графического конвейера на языке высокого уровня.
2. DirectX. Общая характеристика
DirectX – это набор определенных инструментов и технологий, который используют разработчики игр и мультимедийных приложений для того, чтобы обеспечить взаимодействие между драйверами устройств и операционной системой.
2.1 Основные компоненты DirectX
Практически все части DirectX API (интерфейса программирования приложений) представляют собой наборы COM-совместимых объектов.
В целом, DirectX подразделяется на:
2.2 Возможности DirectX
Рассмотрим современные достижения на примере DirectX 11. Одна из проблем, вставших сегодня перед разработчиками игр, связана с гибкостью шейдеров и их масштабируемостью, поскольку из-за этого они все больше усложняются. Например, если при выполнении какой-либо задачи необходимы несколько шейдеров, зачастую используется большой uber-шейдер, потому что он объединяет все шейдеры, которые могут понадобиться в этой задаче, в одной части кода.
Однако, обратной стороной этого подхода является то, что он приводит к возникновению невероятно сложных шейдеров, которые не только не превосходят по эффективности (в плане производительности) отдельные шейдеры, но они также очень плохо поддаются отладке. Другим решением этой проблемы является написания множества специализированных шейдеров, которые покрывают не только все возможные сценарии работы, но и различные классы аппаратных средств.
Информация о работе Сравнение возможностей графических систем OpenGL и DirectX