Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Графические системы класса 3D





Core System - первый проект (ANSI) по стандартизации базисной графической сиетемы. Функциональное описание было опубликовано в 1977 году. На этот проект были замкнуты усилия многих разработчиков графических средств в течение последующих 5 лет. Построен на концепции рисующего элемента (2D и 3D) и обеспечивает работу только с линиями, маркерами и текстами. Для управления параметрами проектирования используется аналогия с камерой. Поддерживается сегментация. После появления стандартов GKS-3D и PHIGS проект Core System потерял свою актуальность.

GKS-3D - расширенный вариант GKS (ISO, 1987), позволяющий работать с трехмерными графическими объектами. В этот проект включены следующие дополнительные (по отношению к GKS) возможности:

- Функции вывода дополнены семью 3D-примитивами - те же, что в GKS с приставкой 3D и набор заполняемых областей 3D. Для последнего примитива введены атрибуты контура, аналогичные атрибутам линий. Введен атрибут для управления алгоритмами удаления скрытых линий и граней. Введены 3D-преобразования 3D-нормализация, видовое преобразование, 3D-преобразование рабочей станции. Видовое преобразование позволяет производить параллельное и центральное проецирование.

Функции сегментации расширены возможностью работы с 3D-сегментами. Введено преобразование 3D-сегментов.

- Функции ввода дополнены двумя логическими устройствами для ввода координат 3D и линий 3D.

PHIGS - альтернативный по отношению к GKS-3D стандарт (ANSI-1986, ISO-1989), обеспечивающий возможность интерактивных манипуляций с иерархически структурированными графическими объектами. Получил дальнейшее развитие в проектах PHIGS+ и РЕХ. Сравнительные с GKS-3D характеристики следующие:

- Набор примитивов и атрибутов аналогичен имеющимся в GKS-3D. Поддерживается несколько цветовых моделей - RGB, CIE (Commission Internationale de l'Eclairage), HSV (Hue-Saturation-Value), HLS (Hue-Lightness-Saturation). Вместо 3D преобразования нормализации введено модельное преобразование.

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

PHIGS+(или PHIGS-PLUS) - проект расширения PHIGS (ISO/ANSI Draft 1990), направленный на обеспечение основных требований прикладных программ в области - освещения, полутоновой закраски и эффективного описания сложных поверхностей. Для этих целей в PHIGS+ включен следующий набор примитивов:

- набор полилиний с данными,

- кривая нерационального В-сплайна,

- кривая нерационального В-сплайна с данными,

- полигональная область с данными, набор полигональных областей с данными,

- набор треугольников с данными,

- полоса треугольников с данными, набор четырехугольных ячеек с данными,

- поверхность нерационального В-сплайна,

- поверхность нерационального В-сплайна с данными.

Примитивы, имеющие суффикс "с данными" позволяют включить дополнительную информацию, являющуюся частью определения примитива. Например, в случае набора треугольников для каждой грани и/или вершины можно задать комбинации цвета, нормаль и прикладные данные. Далее, существует механизм управления, позволяющий определить, какие данные следует использовать, а какие пропустить во время отображения. PHIGS+ различает переднюю и заднюю поверхности грани на основе геометрической нормали. Различные значения цвета и другие атрибуты могут быть определены для передней и задней граней. Для вычисления освещенности кроме геометрических характеристик задаются отражательные свойства поверхности, а также расположение источников цвета и их характеристики.

OpenGL. Современные графические ускорители (видеоадаптеры) обладают большим набором возможностей и высокой производительностью, но при этом они часто имеют и серьезные внутренние различия. Для того чтобы эффективно работать с такими ускорителями, не привязываясь к особенностям какого-либо конкретного устройства, обычно применяются библиотеки, предоставляющие некоторый унифицированный интерфейс к нему.

На сегодняшний день для персональных компьютеров существует два таких интерфейса: OpenGL, уже более 10 лет являющийся стандартом, и Direct3D, предложенный и поддерживаемый компанией Microsoft.

Одним из наиболее известных графических интерфейсов является OpenGL. Этот интерфейс в виде библиотеки графических функций представляет собой открытый стандарт, разработанный и утвержденный в 1992 г. девятью фирмами, среди которых были Digital Equipment Corp., Evans & Sutherland, Hewlett Packard Co., IBM Corp., Intel Corp., Silicon Graphics Inc., Sun Microsystems и Microsoft. В основу стандарта легла библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc. Этот стандарт поддерживается многими операционными системами (в том числе и Windows), а также производителями графических акселераторов.

Другим известным графическим интерфейсом является DirectX с подсистемой трехмерной графики Direct3D, а также подсистемой DirectDraw, которая обеспечивает, в частности, непосредственный доступ к видеопамяти. Этот интерфейс разработан Microsoft и предназначен только для Windows.

В отличие от OpenGL, который сразу разрабатывался для функционирования с графическими ускорителями, Direct3D был изначально ориентирован на программный рендеринг. Кроме того, Direct3D фактически не является стандартом в строгом смысле этого слова – это лишь некоторый интерфейс, объявленный и полностьюконтролируемый компанией Microsoft.

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

С самого начала OpenGL разрабатывался как эффективный, аппаратно - и платформенно-независимый интерфейс. Он не включает в себя специальных команд, привязанных к какой-либо конкретной операционной системе. Для выполнения операций работы с окнами и организации ввода-вывода существуют дополнительные библиотеки.

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

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

Работа с OpenGL основывается на модели клиент-сервер. Приложение выступает в роли клиента - оно генерирует команды, а сервер OpenGL выполняет их.

Библиотека OpenGL поддерживает различные палитровые режимы, позволяет работать в режимах непосредственного задания цвета High Color и True Color.

Для облегчения работы с OpenGL, и в частности работы с окнами и вводом, удобно использовать библиотеку glut. Эта кросс-платформенная библиотека позволяет легко создавать переносимые приложения, использующие OpenGL. Библиотека glut (OpenGL Utility Toolkit) является прозрачным интерфейсом для написания переносимых программ, использующих OpenGL и взаимодействующих с оконной системой. Она позволяет писать программы на ряде языков, включая C++, Delphi.

Для рисования геометрических объектов OpenGL организует несколько буферов: буфер изображения (фрейм-буфер), буфер глубины (z-буфер), буфер трафарета и аккумулирующий буфер.

Библиотека OpenGL может выводить точки, линии, полигоны и битовые изображения. Под линией в OpenGL понимается отрезок, заданный своими начальной и конечной вершинами. Под гранью (многоугольником) подразумевается замкнутый выпуклый многоугольник с несамопересекающейся границей.

Все геометрические примитивы задаются в терминах вершин. Каждая вершина задается набором чисел.

OpenGL работает с однородными координатами (x, y, z, w). Если координата z не задана, то она полагается равной 0. Если координата w не задана, то она полагается равной единице.

В процессе построения изображения координаты вершин подвергаются различным преобразованиям (видовым, проектирования, перспективного деления и др.). В OpenGL существуют две матрицы для преобразования координат точки: матрица моделирования (modelview matrix) и матрица проектирования (projection matrix). Первая служит для задания положения объекта и его ориентации, а вторая отвечает за выбранный способ проектирования. Кроме того, существует матрица преобразования текстурных координат (texture matrix). Имеется набор различных процедур, умножающих текущую матрицу (моделирования или проектирования) на матрицу выбранного геометрического преобразования. Если последовательно указано несколько преобразований, то в результате текущая матрица будет последовательно умножена на матрицы соответствующих преобразований.

Чтобы задаваемые объекты могли быть нарисованы, необходимо задать способ проектирования. Преобразование проектирования определяет, как объекты будут проецироваться на экран и какие части объектов будут отсечены как не попадающие в поле зрения. OpenGL поддерживает два вида проектирования: параллельное и перспективное. Поле зрения при перспективном преобразовании является усеченной пирамидой. В случае параллельного проектирования полем зрения является прямоугольный параллелепипед.

OpenGL поддерживает модель освещенности, в которой свет приходит из нескольких источников, которые по отдельности могут быть включены или выключены. Кроме того существует еще и общее фоновое освещение (ambient). Для правильного освещения объектов необходимо для каждой грани задать материал, обладающий определенными свойствами. Материал может испускать свой собственный свет, рассеивать падающий свет во всех направлениях (диффузное отражение) или отражать свет в определенных направлениях подобно зеркалу. Пользователь может определить до восьми источников света, каждый со своими свойствами (цвет, расположение, направление).

Линия или заполненная грань может быть нарисована одним цветом (плоское закрашивание) или путем интерполяции цветов в вершинах (закрашивание методом Гуро).

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







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.