ИЗОБРАЖЕНИЕ СТРОК СИМВОЛОВ
Существует два способа обработки строк символов, когда они “проходят по конвейеру наблюдения” к полю просмотра. Простейший метод сохраняет постоянный размер символов. Этот метод можно реализовать с растровыми символами. В то же время, наравне с другими примитивами можно преобразовывать и эскизные шрифты; достаточно преобразовать определенные положения отрезков в формах эскизных символов. Затем при обработке других примитивов сцены применяются алгоритмы определения точечных изображений преобразованных символов.
РАСЩЕПЛЕНИЕ ЭКРАНА И НЕСКОЛЬКО УСТРОЙСТВ ВЫВОДА
Выбирая на сцене различные отсекающие окна и соответствующие поля просмотра, можно одновременно отображать несколько объектов, несколько частей изображения или различные проекции одной сцены. Кроме того, эти проекции можно располагать в различных частях одного окна на экране дисплея или в нескольких окнах на экране. В конструкторских приложениях, например, можно отображать каркасную проекцию объекта в одном поле просмотра, при этом выводя на экран в другом поле просмотра полностью визуализированное изображение объекта. Кроме того, в третьем поле просмотра можно указывать другую информацию или выводить меню.
Помимо этого, можно параллельно использовать несколько устройств вывода в одной системе, и для каждого устройства можно задать пару “отсекающее окно-поле просмотра”. Отображение на выбранное устройство вывода иногда называется преобразованием рабочей станции. В этом случае поля просмотра могут задаваться в координатах конкретного устройства вывода, или же каждое поле просмотра можно задавать в единичном квадрате, который затем отображается на выбранное устройство вывода. В некоторых графических системах для этого применяется пара функций рабочей станции. Одна функция используется для задания отсекающего окна для выбранного устройства вывода, определяемого числом рабочей станции, а другая - для задания поля просмотра, соответствующего этому устройству.
ФУНКЦИИ ДВУХМЕРНОГО НАБЛЮДЕНИЯ OpenGL
В действительности стандартная библиотека OpenGL не имеет функций, специально предназначенных для двухмерного наблюдения, поскольку данный пакет разработан преимущественно для трехмерных приложений. Однако основная библиотека OpenGL содержит функцию поля просмотра, а существующие процедуры трехмерного наблюдения можно использовать на двухмерной сцене. Кроме того, OpenGL Utility (GLU) содержит двухмерную функцию для задания отсекающего окна, a GLUT - функции, предназначенные для обработки окон на экране дисплея. Следовательно, данные двухмерные процедуры и функцию OpenGL поля просмотра можно использовать во всех необходимых операциях наблюдения.
РЕЖИМ ПРОЕКТИРОВАНИЯ OpenGL
Прежде чем выбирать отсекающее окно и поле просмотра в OpenGL, нужно установить подходящий режим построения матрицы преобразования из внешних координат в экранные. С помощью OpenGL нельзя задать отдельную двухмерную систему наблюдения, как показано на рис. 6.4, и как часть проективного преобразования нужно указать параметры отсекающего окна. Следовательно, вначале нужно выбрать режим проектирования. Для этого используется та же функция, которая применялась для установки режима проекции модели для геометрических преобразований. Затем к проекционной матрице применяются следующие команды, определяющие отсекающее окно и поле просмотра.