Стандартные методы отсечения многоугольниками описаны в публикациях [190, 343]. Общие методы отсечения многоугольников произвольной формы многоугольными окнами произвольной формы представлены в работах [380, 381].
Операции наблюдения OpenGL обсуждаются в руководстве [400]. Процедуры окон GLUT рассмотрены в книге [174], а дополнительную информацию по GLUT можно найти на Web-сайте http: //reality. sgi . com/opengl/glut3/glut3 . html.
ГЛАВА 7
Трехмерное наблюдение
двухмерных графических приложениях операции наблюдения переводят точку в глобальной системе координат в пиксель на плоскости устройства вывода. Используя прямоугольные границы окна отсечения и окна просмотра, пакеты двухмерной графики усекают сцену и отображают ее в координаты устройства. Трехмерные операции наблюдения, однако, сложнее, поскольку теперь есть несколько альтернатив построения сцены и получения ее проекций на устройства вывода.
ОБЗОР КОНЦЕПЦИЙ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ
При моделировании трехмерной сцены каждый объект обычно определяется набором поверхностей, формирующих замкнутый контур вокруг внутренней части объекта. Кроме того, в некоторых приложениях может потребоваться задать информацию о внутренней структуре объекта. Помимо процедур, генерирующих проекции .поверхностных деталей объекта, в графических пакетах иногда есть процедуры вывода на экран внутренних компонентов или поперечных сечений объемного объекта. Функции наблюдения обрабатывают описания объекта с помощью набора процедур, которые в конечном счете проецируют объекты на заданную поверхность дисплея. Множество таких процессов в трехмерном наблюдении, как процедуры отсечения, подобны аналогам в двухмерном “конвейере наблюдения”. Однако трехмерное на-
Рис. 7.1. Система координат, в которой формируется выбранная проекция трехмерной сцены блюдение включает несколько задач, которые отсутствуют в двухмерном. Например, дополнительно требуются процедуры проектирования, переводящие сцены в проекцию на плоской поверхности; нужно определять видимые части сцены; кроме того, чтобы изображение было реалистичным, нужно учитывать эффекты освещения и характеристики поверхностей.
НАБЛЮДЕНИЕ ТРЕХМЕРНОЙ СЦЕНЫ
Чтобы получить изображение трехмерной сцены, определенной во внешних координатах, вначале задается система наблюдения, или параметры “камеры”. Данная система координат определяет положение и ориентацию плоскости наблюдения (или плоскости проекции), соответствующей плоскости пленки камеры (рис. 7.1). Затем описания объектов переводятся в координаты системы наблюдения и проецируются на плоскость наблюдения. Проекцию объекта на устройстве вывода можно сгенерировать в каркасной (контурной) форме, как показано на рис. 7.2, или можно применить методы создания эффектов освещения и визуализации поверхностей и получить реалистичное затенение видимых поверхностей.
ПРОЕКЦИИ
В отличие от изображения, даваемого камерой, проекцию сцены на плоскость наблюдения можно выполнять разными способами. Один метод получения описания тела на плоскости наблюдения заключается в проектировании точек поверхности объекта вдоль параллельных линий. Данная схема, называемая параллельной проекцией, используется в инженерных и архитектурных чертежах для представления объекта набором проекций, на которых показаны точные размеры объекта (рис. 7.3).