Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕрограммные методы создани€ изображений. Ѕиблиотека 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 служат хорошим фундаментом дл€ изложени€ теоретических и практических аспектов предмета.

ќсновы OpenGL

ќсновные возможности

 

ќписывать возможности OpenGL мы будем через функции его библиотеки. ¬се функции можно разделить на п€ть категорий:

‘ункции описани€ примитивов определ€ют объекты нижнего уровн€ иерархии (примитивы), которые способна отображать графическа€ подсистема. ¬ OpenGL в качестве примитивов выступают точки, линии, многоугольники и т.д.

‘ункции описани€ источников света служат дл€ описани€ положени€ и параметров источников света, расположенных в трехмерной сцене.

‘ункции задани€ атрибутов. — помощью задани€ атрибутов программист определ€ет, как будут выгл€деть на экране отображаемые объекты. ƒругими словами, если с помощью примитивов определ€етс€, что по€витс€ на экране, то атрибуты определ€ют способ вывода на экран. ¬ качестве атрибутов OpenGL позвол€ет задавать цвет, характеристики материала, текстуры, параметры освещени€.

‘ункции визуализации позвол€ет задать положение наблюдател€ в виртуальном пространстве, параметры объектива камеры. «на€ эти параметры, система сможет не только правильно построить изображение, но и отсечь объекты, оказавшиес€ вне пол€ зрени€.

Ќабор функций геометрических преобразований позвол€ют программисту выполн€ть различные преобразовани€ объектов Ц поворот, перенос, масштабирование.

 

ѕри этом OpenGL может выполн€ть дополнительные операции, такие как использование сплайнов дл€ построени€ линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображени€ми на уровне пикселей и т.д.

»нтерфейс OpenGL

 

OpenGL состоит из набора библиотек. ¬се базовые функции хран€тс€ в основной библиотеке, дл€ обозначени€ которой в дальнейшем мы будем использовать аббревиатуру GL. ѕомимо основной, OpenGL включает в себ€ несколько дополнительных библиотек.

 

ѕерва€ из них Ц библиотека утилит GL(GLU Ц GL Utility). ¬се функции этой библиотеки определены через базовые функции GL. ¬ состав GLU вошла реализаци€ более сложных функций, таких как набор попул€рных геометрических примитивов (куб, шар, цилиндр, диск), функции построени€ сплайнов, реализаци€ дополнительных операций над матрицами и т.п.

 

OpenGL не включает в себ€ никаких специальных команд дл€ работы с окнами или ввода информации от пользовател€. ѕоэтому были созданы специальные переносимые библиотеки дл€ обеспечени€ часто используемых функций взаимодействи€ с пользователем и дл€ отображени€ информации с помощью оконной подсистемы. Ќаиболее попул€рной €вл€етс€ библиотека GLUT (GL Utility Toolkit). ‘ормально GLUT не входит в OpenGL, но de facto включаетс€ почти во все его дистрибутивы и имеет реализации дл€ различных платформ. GLUT предоставл€ет только минимально необходимый набор функций дл€ создани€ OpenGL-приложени€. ‘ункционально аналогична€ библиотека GLX менее попул€рна. ¬ дальнейшем в этом пособии в качестве основной будет рассматриватьс€ GLUT.

 

–ис. 1 ќрганизаци€ библиотеки OpenGL

 

 роме того, функции, специфичные дл€ конкретной оконной подсистемы, обычно вход€т в ее прикладной программный интерфейс. “ак, функции, поддерживающие выполнение OpenGL, есть в составе Win32 API и X Window. Ќа рисунке схематически представлена организаци€ системы библиотек в версии, работающей под управлением системы Windows. јналогична€ организаци€ используетс€ и в других верси€х OpenGL.

јрхитектура OpenGL

 

‘ункции OpenGL реализованы в модели клиент-сервер. ѕриложение выступает в роли клиента Ц оно вырабатывает команды, а сервер OpenGL интерпретирует и выполн€ет их. —ам сервер может находитьс€ как на том же компьютере, на котором находитс€ клиент (например, в виде динамически загружаемой библиотеки Ц DLL), так и на другом (при этом может быть использован специальный протокол передачи данных между машинами).

 

GL обрабатывает и рисует в буфере кадра графические примитивы с учетом некоторого числа выбранных режимов.  аждый примитив Ц это точка, отрезок, многоугольник и т.д.  аждый режим может быть изменен независимо от других. ќпределение примитивов, выбор режимов и другие операции описываютс€ с помощью команд в форме вызовов функций прикладной библиотеки.

 

ѕримитивы определ€ютс€ набором из одной или более вершин (vertex). ¬ершина определ€ет точку, конец отрезка или угол многоугольника. — каждой вершиной ассоциируютс€ некоторые данные (координаты, цвет, нормаль, текстурные координаты и т.д.), называемые атрибутами. ¬ подавл€ющем большинстве случаев кажда€ вершина обрабатываетс€ независимо от других.

 

— точки зрени€ архитектуры графическа€ система OpenGL €вл€етс€ конвейером, состо€щим из нескольких последовательных этапов обработки графических данных.

 

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

 

— точки зрени€ разработчиков, OpenGL Ц это набор команд, которые управл€ют использованием графической аппаратуры. ≈сли аппаратура состоит только из адресуемого буфера кадра, тогда OpenGL должен быть реализован полностью с использованием ресурсов центрального процессора. ќбычно графическа€ аппаратура предоставл€ет различные уровни ускорени€: от аппаратной реализации вывода линий и многоугольников до изощренных графических процессоров с поддержкой различных операций над геометрическими данными.

 

–ис. 2. ‘ункционирование конвейера OpenGL

 

OpenGL €вл€етс€ прослойкой между аппаратурой и пользовательским уровнем, что позвол€ет предоставл€ть единый интерфейс на разных платформах, использу€ возможности аппаратной поддержки.

 

 роме того, OpenGL можно рассматривать как конечный автомат, состо€ние которого определ€етс€ множеством значений специальных переменных и значени€ми текущей нормали, цвета, координат текстуры и других атрибутов и признаков. ¬с€ эта информаци€ будет использована при поступлении в графическую систему координат вершины дл€ построени€ фигуры, в которую она входит. —мена состо€ний происходит с помощью команд, которые оформл€ютс€ как вызовы функций.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2016-11-18; ћы поможем в написании ваших работ!; просмотров: 1037 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—вобода ничего не стоит, если она не включает в себ€ свободу ошибатьс€. © ћахатма √анди
==> читать все изречени€...

614 - | 562 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.016 с.